Skip to content

feat: opening a prepared review parks a live agent on it - #90

Merged
fiddur merged 2 commits into
developfrom
inbox-live-attendant
Sep 3, 2026
Merged

feat: opening a prepared review parks a live agent on it#90
fiddur merged 2 commits into
developfrom
inbox-live-attendant

Conversation

@fiddur

@fiddur fiddur commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Component 3 of #79, the part that was never built: "one click … parks a live agent on it to answer questions."

  • Attendant per opened review. After /open/:id brings the session up, the daemon parks on it with this CLI's own agent await (the page then shows an agent listening). Each request it hands over runs the configured prepare command 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.
  • Answers and amendments only. The prompt forbids the loop, code changes and GitHub; inbox sessions now start with --review, so the server enforces the same.
  • Config. live (default true) and liveTimeoutMinutes (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, and serverArgs carrying --review.

Bumps to 0.10.17.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Bwp5QefjsjMFeq6CK6cT6w

fiddur and others added 2 commits September 3, 2026 15:37
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
@fiddur
fiddur marked this pull request as ready for review September 3, 2026 13:47
@fiddur
fiddur merged commit 859223a into develop Sep 3, 2026
2 checks passed
@fiddur
fiddur deleted the inbox-live-attendant branch September 3, 2026 13:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant