Skip to content

[codex] add live voice session scaffold#141

Draft
Rumblingb wants to merge 10 commits into
mainfrom
codex-live-voice-session
Draft

[codex] add live voice session scaffold#141
Rumblingb wants to merge 10 commits into
mainfrom
codex-live-voice-session

Conversation

@Rumblingb
Copy link
Copy Markdown
Owner

What changed

This adds the first production-facing live voice session seam for Ace instead of relying only on the older record-upload-transcribe-playback loop.

The change introduces:

  • a voice session manifest and LiveKit token endpoint on the edge runtime
  • Meridian-side live voice bootstrap and room connection logic
  • explicit runtime awareness in the converse surface so Ace can distinguish a true live session from the fallback batch path
  • an explicit contract that planning stays available during conversation while booking remains locked until explicit confirmation
  • LiveKit / WebRTC package wiring in the Meridian app config

Why it changed

Ace should feel like one persistent concierge presence, not a recorder stitched to a voice player. The current trust seam around payment approval was already correct, but the transport/runtime seam was still batch-shaped.

This PR creates the clean upgrade path to a persistent WebRTC voice session while preserving the current fallback behavior when live runtime credentials are unavailable.

Impact

User impact:

  • when live voice runtime is configured, Meridian can join a persistent voice room and publish microphone audio instead of only using the upload-based STT path
  • presence copy and telemetry now reflect whether Ace is truly live or on fallback
  • booking remains gated behind explicit confirmation

Developer impact:

  • LiveKit / WebRTC dependencies are now declared in Meridian
  • the edge runtime now exposes voice session readiness plus LiveKit participant token minting

Root cause

The app had a calm confirmation flow, but the actual voice runtime was still request-response oriented: local recording, server STT, then separate TTS fetch/playback. That transport shape made Ace feel older than the product promise.

Validation

  • npx tsc --noEmit -p /Users/baskar_viji/Agentpay/apps/meridian/tsconfig.json
  • npx tsc --noEmit -p /Users/baskar_viji/Agentpay/apps/api-edge/tsconfig.json
  • npx pod-install in apps/meridian/ios
  • started xcodebuild -workspace /Users/baskar_viji/Agentpay/apps/meridian/ios/Ace.xcworkspace -scheme Ace -configuration Debug -sdk iphonesimulator -destination 'generic/platform=iOS Simulator' build

Notes

  • I intentionally did not include the unrelated root package.json / package-lock.json changes that were already present in the worktree before this work.
  • The checked-in change is the cross-platform/runtime seam. The local iOS shell was updated to prove the native integration path, but that directory is not tracked in this repository.

@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 9, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
agentpay-dashboard Ready Ready Preview, Comment Apr 10, 2026 11:36am
agentpay-docs Ready Ready Preview, Comment Apr 10, 2026 11:36am

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