Shannon: headless claude --print stream-json channel (replace tmux puppeteering)#65
Open
peteromallet wants to merge 6 commits into
Open
Shannon: headless claude --print stream-json channel (replace tmux puppeteering)#65peteromallet wants to merge 6 commits into
peteromallet wants to merge 6 commits into
Conversation
3-milestone epic to replace Shannon tmux-puppeteering with a headless claude --print stream-json channel. Validated by two DeepSeek panels, a live Phase-0 spike, and two Codex high-abstraction reviews. Cap-not-governor, tmux kept, API path wired-but-not-walked. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
… + typed rate_limit field Manual commit: the chain marked M1 done but did NOT commit (local_commit_sha null) — the shadow completion contract false-greened on 18 ENV-ONLY test failures (subprocess 'python -m megaplan' ModuleNotFoundError because the worktree isn't pip-installed; NOT M1 regressions). M1's deliverable is correct: WorkerResult.rate_limit added (_impl.py), consumer audit + result_metadata, and all 346 changed-area tests pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
… + drift defense Manual commit: chain paused on env-only execute blocks (T14 flaky test_pipeline_resume 2/3-pass non-regression; T15 'Not logged in' auth_error on a LIVE claude --print proof in the headless codex-exec context). M2's deliverable is verified: shannon_stream.py (headless --print stream-json worker, additive+flag-off), shannon_session.py, the drift- defense conformance test + .github CI workflow. Tests: test_workers_shannon_stream 22 passed; worker+session+dispatch 34 passed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ed shadow + cutover (tmux kept) Manual commit (chain reached plan state 'done' through execute->review but didn't commit/finalize — the recurring no-commit pattern). Deliverable verified (109 tests pass): Part A turn_cap.py (blunt concurrency cap); Part B shannon-stream-api-proof-record.json (auth/billing axis proof); Part C channel_shadow.py + channel_parity.py (sampled shadow, reuses bakeoff); Part D cutover flag in _impl.py/shannon_stream.py + babysit ground-truth doc rewrite. tmux RETAINED (vendor/shannon/index.ts + workers/shannon.py NOT deleted). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Happy-path conformance proves it works; Level 4 covers what actually breaks in production: shadow-mode parity on real work, unattended auth, the cap under contention, fail-fast on death, real tool execution, long-session soak, version drift. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces Shannon's tmux-puppeteering of the interactive `claude` TUI with a headless `claude --print` stream-json channel, behind a uniform engine-invocation seam, plus a concurrency cap and a wired-but-unwalked API-billing escape hatch. Closes the failure classes in ticket `01KTVV4ANX9MVKBFPRZX6F1AEH`.
Validated up front by two DeepSeek panels, a live Phase-0 spike, and two Codex high-abstraction reviews. Design: `docs/shannon-stream-channel-plan.md`.
Milestones (each committed, hard-verified)
Invariants held
Notes for review
🤖 Generated with Claude Code