Repository navigation
Conversation
A settle clear records a cleared marker with no fingerprint, so the timestamp-only guard swallowed every later permission/AskUserQuestion prompt until a keystroke. Mark the marker Settled and re-arm when a fingerprint is available. Real-bytes regression test, spec delta archived, gotcha added. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Merging this branch will increase overall coverage
Coverage by fileChanged files (no unit tests)
Please note that the "Total", "Covered", and "Missed" counts above refer to code statements instead of lines of code. The value in brackets refers to the test coverage of that file in the old version of the code. Changed unit test files
|
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.
Problem
Workers parked on a Claude Code permission prompt or AskUserQuestion widget often showed no needs-input indicator.
Root cause (from real session logs)
Replaying a Sketch worker's real session log (permission prompt with a "Tab to amend" footer) through the production detector showed the detection was correct: the selection shape matched, there was no working affordance, and the fingerprint was stable. The flag was swallowed by state. An earlier prompt in the same session had been cleared by the BUG-072 settle path. That clear records a cleared marker with no content fingerprint, because the tail had no prompt on it by then. The stale-re-detection guard then fell back to timestamp-only suppression. With nobody typing, the last-input timestamp never advanced, so every later prompt was suppressed until a keystroke.
Fix
ClearedMarkergainsSettled. A settled, fingerprint-less marker re-arms when the new candidacy has a fingerprint, because the signal was absent from a genuinely idle tail first. Other fingerprint-less markers keep the old suppression, so BUG-063 stays covered. The change is in the sharedagent.NeedsInputClear, so the TUI, the daemon push watcher, and the web and macOS clients all get it.Tests
TestDetectNeedsInputSticky_SettledClearDoesNotSwallowLaterPermissionPromptreplays trimmed real bytes (internal/tui/testdata/needsinput). It fails without the fix and passes with it.NeedsInputClear.make pre-pr: build, vet, fmt-check, lint-pr and test-cover-gate pass.make vulnfails on stdlib CVEs, which CI treats as advisory. The cover gate was run with the worker'sARGUS_*env unset because of the knowninternal/agentprofile-env test contamination.Spec delta archived in this PR (
idle-detection); gotcha added toevents.md.🤖 Generated with Claude Code