Diagnostic intelligence layer for servers, services, and devices — log ingest, FTS search, and MCP-native diagnostics
https://circuitforge.tech/software/turnstone
- Add `incidents` table to SQLite schema (id, label, started_at, ended_at,
notes, created_at, severity)
- Extract `ensure_schema()` from ingest pipeline so tables are always
created at startup, not only during ingest
- New `app/services/incidents.py`: create/list/get/delete + time-window
entry association (FTS keyword search + raw window fallback)
- New `entries_in_window()` in search.py: plain SQL scan for incident
detail when keyword FTS returns nothing
- REST endpoints: POST/GET /api/incidents, GET/DELETE /api/incidents/{id}
- Incident detail returns up to 100 associated log entries sorted by
timestamp, prioritising FTS keyword hits then ERROR/CRITICAL then all
|
||
|---|---|---|
| .github/copilot | ||
| app | ||
| patterns | ||
| scripts | ||
| tests | ||
| web | ||
| .gitignore | ||
| .mcp.json | ||
| manage.sh | ||