feat(observabilidade): rota /api/sessions com validação Zod
Task 5 do MVP Espelho: endpoint Express com factory createSessionsRouter(db) que expõe GET / (lista filtrável por days/project/tool/skill/q + limit/offset validados via Zod) e GET /:id (meta + eventos via parseSessionFile). Integrado em server.ts com DB aberta a partir de OBSERVABILIDADE_DB ?? DEFAULT_DB_PATH. Validação empírica: total=559 sessões (últimos 7d), detalhe com 37 eventos. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -21,6 +21,9 @@ import n8nRouter from './routes/n8n.js'
|
||||
import paperclipRouter from './routes/paperclip.js'
|
||||
import aiRouter from './routes/ai.js'
|
||||
import operationsRouter from './routes/operations.js'
|
||||
import { createSessionsRouter } from './routes/sessions.js'
|
||||
import { openSessionsDb } from './services/sessions/db.js'
|
||||
import { DEFAULT_DB_PATH } from './services/sessions/indexer.js'
|
||||
import { collectAllServerMetrics } from './services/server-metrics.js'
|
||||
import { collectMonitoringData } from './services/monitoring-collector.js'
|
||||
|
||||
@@ -133,6 +136,10 @@ app.use('/api/paperclip', paperclipRouter)
|
||||
app.use('/api/ai', aiRouter)
|
||||
app.use('/api/operations', operationsRouter)
|
||||
|
||||
// Observabilidade (Espelho) — sessões Claude Code
|
||||
const sessionsDb = openSessionsDb(process.env.OBSERVABILIDADE_DB ?? DEFAULT_DB_PATH)
|
||||
app.use('/api/sessions', createSessionsRouter(sessionsDb))
|
||||
|
||||
// Serve static files in production
|
||||
if (isProduction) {
|
||||
// __dirname is /app/api/dist, need to go up 2 levels to /app/dist
|
||||
|
||||
Reference in New Issue
Block a user