Uh oh!
There was an error while loading. Please reload this page.
feat(desktop): add a dev-only harness for driving app state without live sessions - #650
feat(desktop): add a dev-only harness for driving app state without live sessions#650charleslpan wants to merge 1 commit into
Conversation
…ive sessions A new control channel lets a developer push synthetic session state and override the input-capture boolean from the command line, without waiting for a real agent session to finish, error, or stop for permission. The harness follows the same gate as AgentTraceWriter: it is constructed only for an unpackaged live run (app.isPackaged false, sendsNetwork true, LUKE_DEV_HARNESS_SOCK set), so a packaged build carries nothing to switch off and fixture/evidence runs are unaffected. run.sh sets the socket path by default, parallel to how it sets LUKE_TRACE_DIR. pnpm dev:emit session waiting # push a waiting session pnpm dev:emit session error # push an error session pnpm dev:emit session finished # push a finished session pnpm dev:emit capture on # override: another app holds the mic pnpm dev:emit capture off # override: mic is free Session commands feed into a synthetic SessionProviderAdapter registered directly with sessionRegistry, which triggers the full notice/announcement path — the same real voice call that a live session would. The capture command calls an onCaptureCommand callback; on this branch it logs to stderr, and a branch with the call-quiet gate wires it to CallQuietGate.setCapturing in one line. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The latest updates on your projects. Learn more about Vercel for GitHub.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit cff1683. Configure here.
| } | ||
| this.#options.onSessionChanged(); | ||
| return { ok: true }; | ||
| } |
There was a problem hiding this comment.
Harness sessions never trigger announcements
High Severity
#applySession installs the requested status as the first observation, so SessionNoticeTracker seeds it silently and never emits a notice. A later waiting observation also has no activity or recap question, so sessionNoticeAnnouncement drops the NEEDS_INPUT path. Completions only speak through reviewSessionAttention, which the harness refresh never starts.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit cff1683. Configure here.


Summary
DevHarness, a Unix-socket control channel constructed only for unpackaged live runs (same gate asAgentTraceWriter), so a packaged build carries nothing to switch offpnpm dev:emitCLI (scripts/dev-emit.mjs) that connects to the socket and sends one JSON command, then exits withokor an error messagedesktop-app.tsafter the agent-trace section; session commands feed a syntheticSessionProviderAdapterdirectly intosessionRegistry, which triggers the full notice/announcement path without any provider; capture commands call an injected callback (logged to stderr on this branch, wirable toCallQuietGate.setCapturingin one line when the call-quiet branch lands)run.shexportsLUKE_DEV_HARNESS_SOCKby default (parallel toLUKE_TRACE_DIR); the CLI defaults to.build/dev-harness.sockrelative to repo root sopnpm dev:emitworks from any terminal in the repo without extra setupTesting the call-quiet feature end to end
With the
charleslpan/daegubranch merged, wire the capture override indesktop-app.ts:Then, in one terminal:
./scripts/run.sh # start the app (signs in, enables voice)In a second terminal:
To test that a finished session still announces when the mic is clear:
pnpm dev:emit session finished # speaks immediately if no hold is activeTest plan
./scripts/check.shclean (lint, typecheck, 848 tests pass, build succeeds)./scripts/verify.sh— requires macOS; cannot run in this Linux cloud environment. The harness is gated to!app.isPackaged && runMode.sendsNetwork, so fixture and evidence runs are unaffected and visual evidence is unchanged../scripts/run.sh,pnpm dev:emit session waiting→ session row appears, announcement fires (requires macOS + signed-in account)pnpm dev:emit capture on/off→[dev-harness] capture override: on/offin stderr (main branch stub)🤖 Generated with Claude Code
Open workspace in Conductor
Open in Alchemize
Automated visual evidence
Download the deterministic macOS evidence · workflow run
cff16836e36efed3e811b12997e6704bc52715e9smoke