Add HD realtime voice and stabilize scheduled CI - #109
Merged
Conversation
dimavrem22
marked this pull request as ready for review
September 7, 2026 20:25
|
| Filename | Overview |
|---|---|
| audio.py | Introduces streaming PCM16 resampling, partial-sample buffering, and legacy μ-law conversion scoped to each call. |
| realtime.py | Negotiates 24 kHz realtime PCM and converts inbound and outbound audio according to the call start descriptor. |
| adapter.py | Adds HD call negotiation, hosted-completion admission control, and stronger action-execution and exact-message guidance. |
| tests/ci/install_hermes.sh | Bounds installer downloads and execution time while retaining retry behavior. |
| .github/workflows/scheduled-failure-report.yml | Checks out trusted default-branch reporting scripts before posting scheduled failure notifications. |
| pyproject.toml | Adds the Python 3.13 audioop compatibility dependency. |
| uv.lock | Locks audioop-lts and adjusts Python-version resolution markers without changing the pre-existing aiohttp version. |
Sequence Diagram
sequenceDiagram
participant Inkbox as Inkbox Call
participant Bridge as Realtime Bridge
participant OpenAI as Realtime Session
Inkbox->>Bridge: Start frame with media format
Bridge->>Bridge: Configure per-call converters
Inkbox->>Bridge: 16 kHz PCM or legacy 8 kHz μ-law
Bridge->>OpenAI: Resampled 24 kHz PCM
OpenAI->>Bridge: 24 kHz PCM response
Bridge->>Inkbox: Negotiated call-format audio
OpenAI-->>Bridge: Audio done or interruption
Bridge->>Bridge: Reset outbound conversion state
Reviews (5): Last reviewed commit: "Restore unassisted hosted voice completi..." | Re-trigger Greptile
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Executive Summary
Add HD realtime calling and repair scheduled CI reliability.
Description
The call upgrade selects mono signed little-endian PCM16 at 16 kHz. Each call owns independent streaming converters, selected from its start-frame format; legacy calls retain 8 kHz μ-law compatibility. Output conversion state resets at audio completion and interruption, including incomplete samples.
Text-channel prompts distinguish schema discovery from execution through the host’s deferred tool bridge, while retaining direct calls when tools are directly exposed. Scheduled reporting now checks out trusted default-branch scripts before execution. Live host installation has bounded download and execution attempts. Concurrent completion events claim their call before transcript retrieval, preventing duplicate post-call turns. Exact message bodies and their punctuation are preserved verbatim across initial and correction prompts without repeating accepted sends. Hosted voice tests issue the original request once, with reminders and re-asks disabled; transcript, action-persistence, correlation, and exactly-once delivery assertions remain unchanged.
Reason
Realtime calls should preserve wideband audio, and a transient installation stall or ambiguous live request should not prevent CI from exercising the plugin or reporting failures.
Decisions
Testing
126e7a3, including real/mock channels, all five A2A scenarios, all four voice scenarios, external events, and the final gate.uv run pytest -q: 617 passed, 25 skipped locally (host-contract and authenticated live lanes require their CI environments).uv run ruff check .,bash -n tests/ci/install_hermes.sh, andgit diff --check: passed.tool_callexecutes it exactly once.pcm_s16le/16000diagnostic as well as two-way speech and disabled built-in speech processing; legacy fallback cannot satisfy the HD proof.