feat: opening a prepared review parks a live agent on it - #90
Merged
Conversation
The inbox epic's last piece: one click brings the session up and leaves an agent listening. The daemon parks on the session with `agent await`; each question the reader asks runs the configured agent command once, credential-stripped as for preparation but in the reviewer's own data directory, told to answer or amend and never to change code or reach the forge. The wait is re-armed before the answer runs, so the page never shows the gap. The agent leaves when the page is closed or the session is gone, and the daemon takes it down with itself. Inbox sessions start with --review, so the server refuses edits as well. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bwp5QefjsjMFeq6CK6cT6w
A request that comes back unanswered — a timed-out run, an agent that exited without closing it — would be handed to the same attendant by the server's stale-claim reclaim, and run again, indefinitely. On a timeout, and when a request is handed over a second time, the attendant closes it with an aside saying the agent could not answer. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bwp5QefjsjMFeq6CK6cT6w
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.
Component 3 of #79, the part that was never built: "one click … parks a live agent on it to answer questions."
/open/:idbrings the session up, the daemon parks on it with this CLI's ownagent await(the page then shows an agent listening). Each request it hands over runs the configuredpreparecommand once with a prompt carrying the request as data, in the reviewer's own data directory so the reply lands in the opened session, with the forge's credentials stripped as for preparation. The wait is re-armed before the answer runs, as the live skill asks, so a second question queues rather than finding nobody. Exit 3 re-arms, exit 4 (page closed) or any failure ends the attendant; the daemon stops all of them on shutdown.--review, so the server enforces the same.live(default true) andliveTimeoutMinutes(default 10). One log per review:logs/<worktree>.live.log, appended.Tests: the attendant loop against scripted outcomes (re-arm before answer, page-closed, failure, idempotent ensure),
parseAwaitOutcome, the prompt, the config keys, the open route parking an agent, andserverArgscarrying--review.Bumps to 0.10.17.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Bwp5QefjsjMFeq6CK6cT6w