turnstone/tests
pyr0ball 0497d0ad60 feat: live watch mode — tail journald/docker/podman sources continuously (#4)
Adds background watcher that tails active log sources and ingests entries
in near-real-time, keeping the DB fresh without manual ingest runs.

- app/watch/watcher.py: Watcher + WatchSource using subprocess + select
  loop; flushes every 10s or 100 lines; syncs FTS index every 3 flushes
- patterns/watch.yaml: declarative source config (journald/docker/podman)
- app/rest.py: lifespan context manager starts/stops watcher on app
  startup/shutdown; GET /api/watch/status + POST /api/watch/reload
- web/src/views/DashboardView.vue: live/manual indicator chip + stale
  banner copy adapts to whether live watching is active
- tests/test_watch_watcher.py: 16 tests covering config load, command
  building, docker timestamp stripping, orchestrator lifecycle

Closes #4
2026-05-11 15:34:13 -07:00
..
__init__.py feat: initial Turnstone POC — ingest, FTS search, MCP server 2026-05-08 12:12:34 -07:00
test_ingest_dmesg.py feat: syslog and dmesg parsers with graceful journald fallback 2026-05-11 06:57:38 -07:00
test_ingest_qbittorrent.py fix: support hotio qBittorrent 5.x log format (N/I/W/C single-char level) 2026-05-11 05:55:40 -07:00
test_ingest_syslog.py feat: syslog and dmesg parsers with graceful journald fallback 2026-05-11 06:57:38 -07:00
test_services_diagnose.py fix: correct time_detected logic, immutable sort pattern, add diagnose() test 2026-05-11 09:08:24 -07:00
test_services_llm.py feat: LLM reasoning layer — Ollama summarization on diagnose results 2026-05-11 11:35:07 -07:00
test_watch_watcher.py feat: live watch mode — tail journald/docker/podman sources continuously (#4) 2026-05-11 15:34:13 -07:00