circuitforge-core/circuitforge_core
pyr0ball a54a530493 feat: agent watchdog — persist known nodes + auto-reconnect after coordinator restart
closes #15

- NodeStore: SQLite persistence for known agent nodes
  (~/.local/share/circuitforge/cf-orch-nodes.db)
  - upsert on every register(); prune_stale() for 30-day cleanup
  - survives coordinator restarts — data readable by next process

- AgentSupervisor.restore_from_store(): reload known nodes on startup,
  mark all offline; heartbeat loop brings back any that respond

- AgentSupervisor.register(): persists to NodeStore on every call

- cli.py coordinator: NodeStore wired in; restore_from_store() called
  before uvicorn starts

- cli.py agent: one-shot registration replaced with persistent reconnect
  loop (daemon thread, 30 s interval) — coordinator restart → nodes
  reappear within one cycle with no manual intervention on agent hosts

- 16 new tests: NodeStore (8) + AgentSupervisor watchdog (8)
2026-04-02 22:01:55 -07:00
..
config feat: add config module and vision router stub 2026-03-25 11:08:03 -07:00
db feat(orch): replace Ouro/vllm-Docker with generic HF inference server; add ProcessSpec 2026-04-02 15:33:08 -07:00
documents feat: hardware detection, cf-docuvision service, documents ingestion pipeline 2026-04-02 18:53:25 -07:00
hardware feat: hardware detection, cf-docuvision service, documents ingestion pipeline 2026-04-02 18:53:25 -07:00
llm fix: TTL sweep, immutability, service-scoped release, logger in orch alloc 2026-04-02 12:55:38 -07:00
pipeline feat: add wizard and pipeline stubs 2026-03-25 11:09:40 -07:00
resources feat: agent watchdog — persist known nodes + auto-reconnect after coordinator restart 2026-04-02 22:01:55 -07:00
tasks fix(scheduler): join batch worker threads in shutdown() 2026-04-01 11:21:30 -07:00
tiers fix(core): SQLite timeout=30, INSERT OR IGNORE migrations, parameterize tier unlockables 2026-03-31 10:37:51 -07:00
vision feat: add config module and vision router stub 2026-03-25 11:08:03 -07:00
wizard feat: add wizard and pipeline stubs 2026-03-25 11:09:40 -07:00
__init__.py feat: scaffold circuitforge-core package 2026-03-25 11:02:26 -07:00