feat(chat): configurable dialog auto-dismiss window — stop claude's 60s picker timeout from killing manual-run questions #125
No reviewers
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Cloonar/coding-lab!125
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "afk/124"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #124
What
Manual sessions no longer lose undriven AskUserQuestion/ExitPlanMode pickers to Claude Code's 60s self-resolve. A new
dialog_timeout_minutessetting (typed int, floor 0, deliberately not seeded) controls the window: absent/0 = effectively never (2^31−1 ms ≈ 24.8 days),1= upstream 60s parity, N = N minutes. AFK runs are untouched — upstream's unattended auto-advance stays, by design.Step-1 spike (gate) — both hypotheses confirmed live
Recorded on #124 (2026-07-10, 2.1.198): a
--settingsfileenvblock withCLAUDE_AFK_TIMEOUT_MS=5000self-resolved the picker at +5.033s (afkTimeoutMs:5000in the transcript), and2147483647held byte-identical past +92s with zero timeout events. The primary settings-env mechanism ships; the pre-authorized spawn-env fallback was not needed.How
provider.LiveSignals):Setup(runID, dir, opts SetupOpts)—opts.DialogTimeout > 0makes the claudecode adapter emit"env":{"CLAUDE_AFK_TIMEOUT_MS":"<ms>"}in the same per-run settings file as the §9 hooks, clamped to 2^31−1 ms (JS setTimeout instant-fire hazard). Zero opts → payload byte-identical to before. Codex has no LiveSignals — untouched.CLAUDE_AFK_COUNTDOWN_MSuntouched.internal/instance):dialogTimeout(ctx, kind)resolves the setting forRunKindManualonly; both AFK kinds pass zero.minso 0 = never is saveable; hint documents next-spawn semantics).Proof
go build ./...,go test ./...,gofmt,golangci-lint run— all green/0 issues.tsc --noEmit && vite buildclean.afkTimeoutMs:5000, PostToolUse cleared the spool. Dialog capture and the timeout override coexist in one file.🤖 Generated with Claude Code