tpmjs/apps/web
Ajax Davis 148207bcaa feat: implement health check system (Phase 1 & 2)
Add comprehensive health monitoring for TPMJS tools that tracks both
import and execution health via Railway executor service.

## Database Schema

- Add HealthStatus enum (UNKNOWN, HEALTHY, BROKEN)
- Add HealthCheckType enum (IMPORT, EXECUTION, FULL)
- Add health fields to Tool model:
  - importHealth: tracks if tool can be loaded
  - executionHealth: tracks if tool can execute
  - lastHealthCheck: timestamp of last check
  - healthCheckError: stores error message
- Add HealthCheck audit table for full history

## Core Service

Create health-check-service.ts with 5 functions:
1. checkImportHealth() - Tests tool loading via /load-and-describe
2. checkExecutionHealth() - Tests execution via /execute-tool
3. generateTestParameters() - Creates minimal test params by type
4. performHealthCheck() - Full check with database updates
5. performBatchHealthCheck() - Processes tools in batches

Features:
- 30-second timeout per check
- Skips execution if import fails
- Batch processing (5 concurrent, 1s delays)
- Full audit trail in HealthCheck table

## API Endpoints

/api/sync/health-check (POST):
- Daily cron job at 2am UTC
- Checks all tools in database
- Requires CRON_SECRET auth
- Logs results to SyncLog table
- Max duration: 5 minutes

/api/tools/broken (GET):
- Lists all tools with broken health status
- Filters by importHealth='BROKEN' OR executionHealth='BROKEN'
- Includes package metadata
- Orders by lastHealthCheck DESC

## Configuration

- Add RAILWAY_EXECUTOR_URL to env.ts
- Add daily cron job to vercel.json
- Use db:push for schema changes (existing production data)

Next: Manual trigger endpoint + health filtering + UI components

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 16:03:21 +10:00
..
src feat: implement health check system (Phase 1 & 2) 2025-12-04 16:03:21 +10:00
.gitignore fix(ci): skip Lefthook installation in CI/Vercel environments 2025-11-30 05:00:00 +10:00
eslint.config.mjs fix(lint): configure Biome to properly ignore build directories 2025-11-26 22:49:45 +10:00
next-env.d.ts fix: use deployed /api/tools endpoint with client-side filtering and streamline git hooks 2025-12-04 13:43:19 +10:00
next.config.ts fix: remove VM2 sandboxing to resolve Next.js build errors 2025-11-30 00:57:32 +10:00
package.json feat: add dynamic tool loading system with Railway executor 2025-12-04 08:25:53 +10:00
postcss.config.js feat: add complete monorepo structure and all packages 2025-11-25 21:59:40 +10:00
tailwind.config.ts fix: preserve streamed output and add markdown rendering to playground 2025-11-30 19:28:53 +10:00
tsconfig.json feat(sync): implement Phase 3 Sync Workers with Vercel Cron integration 2025-11-28 02:57:54 +10:00
vercel.json fix(vercel): run install command from monorepo root to access workspace packages 2025-11-30 05:07:28 +10:00