Repository navigation
fix: a handoff to a worker reads as done, and work an agent waits on shows an hourglass, not a live turn's spinner - #183
Conversation
…one, not working Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… sidebar and its tab, not a live turn's spinner Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… line as the sidebar's Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@Stener1 is attempting to deploy a commit to the seanbrydonio's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
I can't add the |
|
After, on a real box. I built berthd from this branch merged onto v0.3.30 and installed it on my Linux box (a hand-built binary; the app's box upgrade replaces it). Then I replayed the same real turn through the box's own turn check (`turn-check-replay.sh`: a stand-in `claude` session, the turn as its transcript, and the UserPromptSubmit and Stop hooks through `berthd hook`). Provider `typesafe-ai/jev` on AI Gateway, 3 runs each:
The UI scenario (`drive.mjs turn-check-indicator`) and `e2e/sidebar-turn-check.spec.ts` + `e2e/dashboard-turn-check.spec.ts` also pass on that merged tree. |
Main's handoff wording (cosscom#183) changed the request these six replays were recorded for. Recorded again against the real provider; every verdict is the one it was. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Summary
A session whose agent handed its work to a separate worker ("I've started a worker to fix it, so you can close this session… I turned off its notifications to this session") kept showing as working. Two causes:
agent_state: finished+unfinished) with the same spinner as a live turn. Only the dashboard card said "Waiting on its work".A new turn clears
unfinishedon the box (turns.go), so the spinner comes back while it runs.Evidence
Turn check on the real model (
TestTurnCheckLive, new, skipped unlessBERTH_TURNCHECK_LIVE_KEY_FILEandBERTH_TURNCHECK_LIVE_MODELare set; CI never calls a provider). Same fixtures,typesafe-ai/jevon AI Gateway:On a real box, the real turn (
.claude/skills/verify-berthd/scripts/turn-check-replay.sh, new: a throwaway location, a stand-inclaudesession, the turn as its transcript, the UserPromptSubmit and Stop hooks throughberthd hook). Before, on the installed v0.3.30 build, 2 of 2 runs:The after run on a build with this branch is in a comment below.
App (
drive.mjs turn-check-indicator, mock fixtures, no console errors;e2e/sidebar-turn-check.spec.tsasserts the same):Before, the sidebar's order-export row and its tab drew the blue spinner.
Checks (local; fork PRs need a maintainer for CI):
go vet ./...✅;go test -race ./...✅ exceptinternal/leadline/apiTestDetach, which failed once under the full suite's load and passes 5/5 alone (a package this PR doesn't touch).pnpm typecheck:plugins,check:titles,check:type,check:grid,check:csp,check:themes,test(incl. newderive.test.tscases),build,tsc -p e2e✅.e2e/sidebar-turn-check.spec.ts+e2e/dashboard-turn-check.spec.ts✅. Docs build ✅. Codex review and adversarial review: no findings.Merge Danger
Door: two-way
Prompt text and a UI indicator; no data or schema. Revert to undo.
Blast Radius: classification
Every box's turn check uses the new wording, so a borderline delegated turn could now read as done (it then shows as done instead of working; nothing is lost and no prompt is held). The live replay keeps a delegated-and-waiting turn at working 0.99–1.00. In the app,
sessionState()is unchanged, so counts, the dashboard's columns and notifications are untouched; only the glyph changes.🤖 Generated with Claude Code