0xWheatyz
|
f3acc57015
|
feat(db,control): dormant headless-runner schema, stream parser, and fixtures (phase 1)
Groundwork for replacing tmux-TUI agent runs with worker-owned
'claude -p --output-format stream-json' subprocesses (Postgres as the
single source of truth; no shared files between workers):
- migration 0008: workers (heartbeat registry), agent_runs (one row per
headless invocation), agent_events (persisted stream-json event log),
session_archives (tar.gz'd claude session per agent for cross-worker
--resume); agents gains session_id/worker_id, commands gains
target_worker; 'crashed' joins the agent status vocabulary
- control/headless.py: munged-path helper, argv builders, tolerant
stream parser, archive/materialize round-trip, RunSupervisor + launch
(nothing calls it yet - runner config still defaults to tmux)
- repository: run/event/archive/worker accessors; claim_next_command
learns target_worker pinning and type exclusion for full slots
- tests/fixtures/fake_claude.py: scripted stream-json stand-in binary
- scripts/validate_claude_headless.sh: manual real-binary validation
checklist (resume-on-clean-HOME linchpin, hook behavior under -p)
No behavior change; suite 245 -> 270 green.
|
2026-07-21 22:41:46 -04:00 |
|