fix(afk): confirm herdr supervisor-pane submit for claude composer#368
Open
atqamz wants to merge 3 commits into
Open
fix(afk): confirm herdr supervisor-pane submit for claude composer#368atqamz wants to merge 3 commits into
atqamz wants to merge 3 commits into
Conversation
A blocked pre-Enter baseline (an away-mode supervisor pane parked on a tool/permission prompt) fell to the composer-clear fallback, which returns unknown on a claude dialog screen with no composer row, so a landed escalation submit read as unconfirmed and the daemon redelivered it every cycle. Confirm a blocked baseline on a blocked->working transition only, via a working-only mode of wait_for_working, never composer content.
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
/afksupervise daemon on a herdr backend redelivered an already-handled escalation into the supervisor pane every cycle. Root cause:blockedis the one pre-Enter agent status that both clears the daemon's pre-type busy guard (classify_agent_status: blocked->idle) and reads submit-active (classify_submit_agent_status: blocked->busy), so a blocked baseline (a supervisor pane parked on a tool/permission prompt) routed submit-confirmation to the composer-clear fallback, andfm_backend_herdr_composer_statereturnsunknownon a claude dialog screen with no composer row - so a landed submit read as unconfirmed and got retyped forever.fm_backend_herdr_send_text_submitbranches on the raw pre-Enter status; ablockedbaseline confirms via native agent-state on ablocked->workingtransition only (new working-only mode offm_backend_herdr_wait_for_working), never composer content - consistent with the 2026-07-07 native-agent-state approach. idle/done and working/unreadable baselines are unchanged.fm_test_base_path()test helper for restricted-PATH tests,"$BASH"in the herdr/zellij version-check tests, and anorca.shJSON.parseguard that exits cleanly on bad stdin.Test plan
not ok ... got 'unknown'(the exact misclassification); restored -> both new tests pass. Added totests/fm-backend-herdr.test.sh: a blocked->working baseline confirmsemptyand never callspane read; a stays-blocked baseline readspendingso the buffer is preserved (no false confirm that would drop the escalation).bin/backends/herdr.shshellcheck-clean.