daemon: auto-accept EnterWorktree's permission-root relocation prompt for registry-verified trees - #316
Merged
Conversation
Recognized only when the reason line and the proceed question are both on screen, so a transcript quoting the dialog never draws a keypress. The worktree path is reassembled across wrapped lines and returned for the caller's registry check. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The relocation prompt's own path is checked against the injected registry predicate before any key goes out (unregistered = zero keys), and pinned across every re-read of the cursor walk so a changing screen can stop the driver but never steer it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Runs ahead of the RT-196 trust accept and needs neither job.tree nor its flag: the dialog's own path checked against the worktree registry is the provenance. Gated on panes.relocationAutoAccept (default on), read from the pane family because the reconciler shares the switch. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Accepted prompts stay silent, a prompt the daemon may not answer sends one click-to-focus notification and no gate, and everything else keeps the attention-gate path unchanged. One attempt per blocked episode. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The dep resolves panes.relocationAutoAccept per attempt (a settings flip needs no restart), drives the registry-gated accept on the pane's own socket, and maps unregistered/stuck/unchecked to the notify-only path. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Warning Review limit reachedNext included review available in 57 minutes. View limit detailsLimit details: You’ve used the included review currently available. Your 82 included PR review attempts over the past 7 days set your current allowance at 1 review per hour. Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab. Review configuration: ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (13)
Comment |
Pre-merge review defeated the whole-screen parse with executed probes: a transcript quote above an ordinary permission prompt drew a blind Enter, a quote naming a registered path masked a dialog naming another, blanket whitespace stripping collapsed a spaced path into a registered one, and a numbered transcript list shifted the option walk. Everything now reads from the last contiguous options block and the body above it up to the box top; wraps rejoin without inventing or removing characters; and the resolves-to real path, when the dialog shows one, must pass the registry check too and is pinned across re-reads. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…alone An unreadable screen proved nothing, so it no longer notifies as a stuck relocation prompt or suppresses the attention gate for the episode. The reconciler stands down entirely for panes an active herd job owns, so one dialog can never be driven by both seams, and clear() drops the agent's relocation memo. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ions The re-verification pass showed a partial capture with the box top scrolled off letting transcript text inside the fallback window supply the path. No box top now fails closed (the real dialog always paints boxed), and the last reason match in the body wins, with resolves-to read only from that match onward. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Collaborator
Author
|
@coderabbitai review |
|
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.
EnterWorktree's permission-root relocation prompt blocks panes constantly, and the folder-trust auto-accept does not recognize it, so a human clears each one by hand (live specimens today: board wrapper panes on gl worktrees).
The dialog names the worktree path in its own body, which gives it the provenance the trust dialog lacks: the parser (anchored on the reason line verified byte-for-byte against the installed Claude Code binary, plus the proceed question, so a transcript quoting the dialog never draws a keypress) extracts the path across wrapped screen lines, and the driver answers Yes only when that exact path is in rt's own worktree registry. The path is re-pinned on every cursor re-read, so a changing screen can stop the driver but never steer it. Same single-key, cursor-verified walk as the trust dialog.
Wired into both detection paths:
Gated on panes.relocationAutoAccept (machine scope, default on), resolved per attempt so a settings flip needs no daemon restart; rt-client dist rebuilt.
Verified: full unit suite green, plus the covering e2e files (herd-watchdog, reconciler) and repo-purity.
🤖 Generated with Claude Code