Skip to content

feat(voice): add scoped Live Voice work sessions - #1161

Merged
vastsa merged 13 commits into
mainfrom
codex/live-voice-v1
Sep 29, 2026
Merged

vastsa merged 13 commits into
mainfrom
codex/live-voice-v1

Conversation

@vastsa

@vastsa vastsa commented Sep 28, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Add an explicitly authorized, call-scoped work-session binding with bounded context sharing and opaque, expiring project/session selection references.
  • Route Codex, Gemini Live, and OpenAI Realtime work requests through the existing Live and AgentHost/Host flow. Preserve request, operation, user-message, queue, and turn identities; reject stale steer/stop targets and deduplicate provider requests.
  • Return bounded work status and terminal results through the Live panel and feedback scheduler while preserving existing permission prompts.
  • Add deterministic provider-wire → coordinator → AgentHost admission/terminal → feedback fixtures for Codex Live, Gemini Live, Realtime GA, and Realtime compat-v1.
  • Record a case-level W2-001—W2-096 evidence audit with Direct / Partial / Gap status.

Candidate

  • Branch: codex/live-voice-v1
  • Head: 0a08b2873a3e
  • Latest origin/main: 8fcca3d25c98, included through merge commit 4afe31c4a317; pnpm check:pr-base passes.

Validation

  • node --test test/live-work-provider-integration.test.mjs (from apps/desktop): 4 passed.
  • pnpm -r --if-present test: all workspace suites passed; desktop 3,173 and docs 11 passed.
  • pnpm build:js, pnpm --filter @pi-desktop/desktop typecheck, and pnpm lint: passed.
  • pnpm docs:check: passed; 83 English/Chinese specification pairs and 530 pages verified.
  • cargo fmt --check, cargo test -p host-core --locked (670 passed), and cargo clippy -p host-core --all-targets --locked: passed.
  • pnpm check:agent-policy, pnpm check:pr-base, and node scripts/check-architecture.mjs: passed.
  • GitHub checks at the current head all pass: Docs, latest-base, JS build/typecheck/lint/architecture/tests, and Rust format/lint/tests.
  • Build warnings remain for VitePress highlighting and large chunks; docs check reports existing ADR format notes.

Acceptance limits

  • The W2 audit maps 18 Direct, 49 Partial, and 29 Gap cases. The new fixture uses real protocol parsers/encoders, the coordinator, and AgentHost admission/terminal APIs; its LiveWorkPort, Runtime prompt, and provider transports are fixtures. The production Main bridge mapping and concrete socket/WebRTC adapters remain untested.
  • M01—M16 and real Codex OAuth, Gemini Live, Realtime GA/compat, and physical audio-device journeys are NOT RUN. No real provider credentials or paid endpoints were used. Merged as 902d41ad1a76.

Add a main-process-owned Live Voice lifecycle with provider adapters,
scoped microphone access, media transport, and renderer controls.

Persist compatible settings and document the protocol so sessions
can be configured without changing dictation behavior.
Copilot AI lite review requested due to automatic review settings September 28, 2026 00:38

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Replace the Composer Dictation surface with Live Voice while preserving stored Dictation settings. Align the call panel with shared surfaces and connect the existing configurable voice shortcuts to the call lifecycle.

Escape now cancels only an in-progress startup, and the shortcut settings and specs describe the Live Voice behavior.
Include the current main base in the Live Voice candidate before updating its pull request.
Refresh the shared Live Voice branch against the current target before the remote update, preserving the public PR history.

This brings the candidate forward without rewriting the existing branch.
Keep spoken work inside the selected Desktop session and Host queue rather than creating a parallel agent path. Preserve request and turn identity so admission, cancellation, and stop controls stay scoped to the originating call.
@vastsa vastsa changed the title feat(voice): add Live Voice sessions feat(voice): add scoped Live Voice work sessions Sep 28, 2026
Complete the second-phase selection and feedback paths while keeping the call bound to its original work session and gating speech on activity. Record the verified scope and remaining acceptance gaps with regression coverage.
Keep composer integration fixtures representative after the latest-main merge added the Live Voice toolbar control and plugin preload listeners. Refresh delivery evidence with the validated integration base and workspace results.
The protocol codecs and Host admission had separate evidence, which left the work handoff difficult to review. Add one deterministic fixture for each Live profile and record the exact W2 coverage boundaries so the remaining gaps stay visible.
The evidence report still described the remote checks as pending after they had completed. Record the exact checked code head and separate those results from the manual provider and device journey that remains unrun.
@vastsa
vastsa merged commit 902d41a into main Sep 29, 2026
4 checks passed
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.

2 participants