Files
rutster/crates
opencode controller 2154f66483
Some checks failed
CI / fmt (pull_request) Successful in 1m1s
CI / clippy (pull_request) Successful in 1m57s
CI / test (1.85) (pull_request) Successful in 4m21s
CI / test (stable) (pull_request) Successful in 4m50s
CI / deny (pull_request) Failing after 1m14s
test(rutster): slice-3 realtime brain integration test (spec §7.4 + §7.5)
Three end-to-end tests exercising the full slice-3 stack in-process:
MockRealtimeBrain + brain-process-equivalent shim (riding on the public
run_openai_pump library function) + spawn_tap_engine + TapAudioPipe.
No subprocess, no real OpenAI credentials, no browser.

- audio_round_trip_pushes_pcm_and_receives_canned_response (§7.5 #3):
  push PcmFrame via TapAudioPipe -> engine -> brain shim ->
  run_openai_pump -> translator -> input_audio_buffer.append ->
  MockRealtimeBrain -> canned response.audio.delta -> translator ->
  audio_out tap frame -> TapAudioPipe.next_pcm_frame. Catches any break
  in the audio pipeline; completes in ms.
- function_call_hangup_dispatches_and_closes_session (§7.4 + §7.5 #3):
  ToolRegistry.dispatch("hangup") -> HangupTool.call -> AppState::close
  -> session removed from DashMap, returns Ok({channel_state: Closing}).
  Drives the registry via the public Arc<Mutex<ToolRegistry>> handle on
  TapConn (in-process drain_function_calls is private to session_map,
  its behavior is covered by session_map.rs:451's inline test).
- s4_brain_sends_session_update_with_turn_detection_null_end_to_end
  (§7.5 #7): the brain process equivalent sends session.update with
  turn_detection: null on pump startup (run_openai_pump's first action).
  MockRealtimeBrain rejects non-null with a typed OpenAI-shaped error
  (mock.rs:150). Stack comes up without WS errors + engine
  reconnect_attempts stays 0 -> S4 honored end-to-end through the
  actual translator.

Note: AGENTS.md says browser-driven e2e is deferred post-slice-1, so
the test pushes PCM directly through TapAudioPipe (the slice-2
tap_integration.rs harness pattern), not via a real str0m peer.

Files added: crates/rutster/tests/realtime_integration.rs (new test).
Files modified: crates/rutster/Cargo.toml adds rutster-brain-realtime
(mock feature) as dev-dep so the test can drive run_openai_pump +
MockRealtimeBrain in-process; Cargo.lock regenerated.

Seam test honored: loop_driver.rs and rtc_session.rs untouched.

All 91 workspace tests green. cargo fmt --all --check +
cargo clippy --all --all-targets -- -D warnings clean.
2026-07-01 01:47:22 -04:00
..