mirror of
https://github.com/openai/codex.git
synced 2026-11-13 06:45:07 +00:00
## What changed - Add `codex-realtime-webrtc` with a length-prefixed, 256-byte JSON control protocol for `hello`, `ready`, `close`, and `closed` messages. - Add a hardened `codex-voice-host` binary that validates protocol and build compatibility, handles orderly shutdown and parent pipe loss, and exposes its build commit. - Keep this initial foundation limited to process lifecycle management; it does not open audio devices, load native plugins, negotiate WebRTC, or enable voice in the TUI. ## Testing - Exercise the helper as a subprocess, covering handshake, explicit close, parent pipe loss, malformed frames, incompatible builds, and invalid message order. GitOrigin-RevId: 6d8d7dd7ba5c4886879882d79314d235f6ab7cf4
18 lines
1.0 KiB
Markdown
18 lines
1.0 KiB
Markdown
# Private voice helper foundation
|
|
|
|
`codex-voice-host` establishes the inherited-pipe lifecycle for the proposed
|
|
bundled voice process. It does not open devices, load native plugins, negotiate
|
|
WebRTC, or enable voice in the TUI. The existing CLI is unchanged.
|
|
|
|
Frames are a big-endian u32 length followed by at most 256 bytes of JSON. The
|
|
parent sends `hello` with protocol `1` and the helper's exact `buildCommit` before
|
|
receiving `ready`. It then sends `close` and receives `closed` before process exit.
|
|
Unknown fields, incompatible builds, invalid order and oversized frames fail
|
|
closed without echoing input. EOF exits even when the main worker cannot progress.
|
|
|
|
Bazel stamps the binary with `STABLE_GIT_COMMIT`. Cargo builders must provide the
|
|
same variable; an unstamped source build reports `dev` via `--build-commit` and is
|
|
not a distributable build identity. The client/control crate has no native audio
|
|
dependencies. Installed-package resolution, native loading, media/privacy controls
|
|
and actual audio proof belong to the subsequent integration stages.
|