Commit Graph

11 Commits

Author SHA1 Message Date
ealmeida 6251e0d28c feat(observabilidade): 3 detectores cruzados worklog × sessions
- #7 actions_never_executed: acções P1/P2 em disc #33 há ≥14 dias pendentes
- #8 skill_narrative_vs_data: skill reportada problemática em worklogs
  mas com outcome=completed nas sessões (≥3 matches)
- #9 worklog_pattern_frequency: tokens recorrentes (≥3 worklogs) em patterns_text
- Integrados em detectPatterns() como secção opcional quando worklogs > 0

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 03:07:25 +01:00
ealmeida 11f9833aac feat(observabilidade): tabela worklog_comments + parser HTML + importer MCP
- Schema worklog_comments (id, discussion, parent, datas, staff, campos parseados em JSON)
- Parser HTML tolerante (h2/h3/h4) extrai title, task_ref, duration, work_items,
  files_modified, problems, patterns_text, actions
- Módulo worklog-import com paginação MCP get_discussion_comments
- Helper mcp-client.ts partilhado (gateway MCP JSON-RPC + SSE)
- Dep runtime: node-html-parser

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 03:07:09 +01:00
ealmeida ac4e9c6f35 fix(observabilidade): parser extrai skills de tool_result.content (string e array)
Antes: skills_invoked vazio em 1608/1608 sessões porque detectSkillInvoked
apenas era aplicado ao text extraído de content[type=text]. A string
'Launching skill: X' vive dentro de tool_result.content (string ou array
de text blocks), que era ignorada.

Fix: adicionar helper extractResultText(r) que trata ambos os casos e
aplicar detectSkillInvoked + detectHook também ao tool_result. Após
re-indexação full, 526/1616 sessões têm agora skills detectadas e o
detector de padrões devolve 6 padrões (vs 2 baseline), incluindo
skills_with_high_error_rate reais.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 02:20:24 +01:00
ealmeida 2a523a505e feat(observabilidade): tabela patterns + 6 detectores SQL
Adiciona tabela 'patterns' à BD sessions (UNIQUE por week_iso+pattern_key)
e helpers upsertPattern/getPatternsByWeek/getConsecutiveWeeks no SessionsDb.

Módulo patterns.ts implementa 6 detectores heurísticos para deteccão semanal:
  1. skills_with_high_error_rate (ratio > 0.2, severity warning|action)
  2. tools_low_efficiency (tool_calls/event_count médio > 0.5)
  3. skill_tool_pairs (top 5 co-ocorrências)
  4. duration_outliers (sessões > p95 com outcome != completed)
  5. abandoned_sessions (event_count<3 AND outcome=unknown, >=5)
  6. growing_complexity (avg tool_calls actual > anterior*1.3)

5 testes cobrem detector de erro, abandonadas, consecutive_weeks,
idempotência do upsert e toPatternRecord.

Refs Fase 6A · Desk #2059 · Project #65

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 02:17:21 +01:00
ealmeida 80a5f3bf42 feat(observabilidade): watcher chokidar incremental 2026-04-23 01:19:21 +01:00
ealmeida 7a13d21caa fix(observabilidade): stub watcher sai limpo com exit 0 para Task 9 systemd 2026-04-23 01:01:42 +01:00
ealmeida 296819df63 feat(observabilidade): indexer full scan + CLI + stub watcher 2026-04-23 00:57:46 +01:00
ealmeida 3bfec245c7 perf(observabilidade): synchronous=NORMAL e upsertMany transaccional 2026-04-23 00:56:07 +01:00
ealmeida a2ce1fa41d feat(observabilidade): wrapper SQLite com schema, upsert e filtros 2026-04-23 00:53:05 +01:00
ealmeida bd954f4841 fix(observabilidade): stream cleanup, outcome logic e NaN guard no parser 2026-04-23 00:50:33 +01:00
ealmeida 26b631bbd6 feat(observabilidade): parser JSONL com detecção de tool_calls e skills 2026-04-23 00:46:58 +01:00