Keep the warm comms session alive, confirm every prompt, and cut the Slack feed - #35
Merged
Merged
Conversation
…d cut the Slack feed to messages worth reading Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…med replies, and housekeeping in the subsystem Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… messages on arrival, and clear sessions before feeding them Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… them from coverage Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… wait, and pin the page-retry window Co-Authored-By: Claude Opus 5.5 (1M context) <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.
Summary
Fixes the four comms problems diagnosed from the logs on 2026-09-27 and 2026-09-28.
cmux treecheck read as "workspace gone." A check cmux doesn't answer now leaves the session alone. Only cmux saying the ref is unknown, or a successful workspace list without it, counts as gone, after up to three looks.surface.send_key enterleft a prompt unsent on a never-shown--focus falseworkspace, while a"\r"throughsurface.send_textsubmitted it at once. Every boot prompt and Slack message is now confirmed in the transcript, with extra Enter presses only while the prompt box still holds the daemon's marker. A spawn whose boot prompt never lands is closed instead of being declared ready, and the session is bound to the transcript that recorded its prompt, never the newest file.Also changed
agent_session.confirm_dirnow uses Claude's real project-folder rule (every non-alphanumeric character becomes-). This also changes the pulse's dispatch check (bin/pulse.py:2116): dispatches into dotted paths such as.worktreesnow look in the folder Claude actually writes. Plain paths are unchanged.CommsSubsystemmirrors the new suppression and paging, and its unusedheartbeat_dedup_secsetting is gone.tests/conftest.pypointsCMUX_BINat a binary that doesn't exist, so a test that misses a stub can't drive the real cmux.Validation
run_python_coverage.py+check_change_coverage.py --base personal/main) passes.Known limits
🤖 Generated with Claude Code