Program: implement VivoxTest #95

Closed
opened 2026-08-08 08:24:35 +00:00 by hugo · 1 comment
Owner

Objective

Port the Vivox validation program over the native Rust Vivox protocol adapter.

Deliverables

  • Preserve account/connector/session/participant control flows and useful diagnostics.
  • Keep proprietary service/SDK prerequisites explicit; do not ship or invoke the C# implementation.
  • Provide a fake TCP/control server and scripted events for CI.

Validation

  • CLI and fake-service workflows pass offline.
  • Opt-in live validation redacts credentials/tokens.
  • Teardown closes pipes, sessions, and tasks.

Prerequisite

The library behavior required by the program is implemented and its translated parity tests pass.

Project constraints

  • Programs must use the native Rust public API; no CLR, C# process, bridge, RPC, or fallback.
  • Provide deterministic offline/fake validation before opt-in live or device tests.
  • Never log/store credentials or capability tokens, and keep destructive/spending actions separately opt-in.
  • Update program/source completeness, docs, and workspace validation evidence.
## Objective Port the Vivox validation program over the native Rust Vivox protocol adapter. ## Deliverables - Preserve account/connector/session/participant control flows and useful diagnostics. - Keep proprietary service/SDK prerequisites explicit; do not ship or invoke the C# implementation. - Provide a fake TCP/control server and scripted events for CI. ## Validation - CLI and fake-service workflows pass offline. - Opt-in live validation redacts credentials/tokens. - Teardown closes pipes, sessions, and tasks. ## Prerequisite The library behavior required by the program is implemented and its translated parity tests pass. ## Project constraints - Programs must use the native Rust public API; no CLR, C# process, bridge, RPC, or fallback. - Provide deterministic offline/fake validation before opt-in live or device tests. - Never log/store credentials or capability tokens, and keep destructive/spending actions separately opt-in. - Update program/source completeness, docs, and workspace validation evidence.
hugo added this to the 11 - Programs and live-grid validation milestone 2026-08-08 08:24:35 +00:00
hugo added the enhancement label 2026-08-08 08:24:35 +00:00
Author
Owner

Implemented in da4afec and pushed to main.

Native Rust implementation:

  • Added a bounded async Vivox XML/TCP control client with request correlation, connector/account/session state, device enumeration, participant events and volume control, opaque secret handles/URIs, safe rejection diagnostics, and idempotent reverse-order teardown.
  • Replaced the VivoxTest stub with credential-gated live grid/capability validation. The proprietary daemon is only connected to at a supplied endpoint and is never bundled, located, started, or invoked. Live audio has its own --allow-session-audio gate.
  • Added a scripted in-process loopback control server that validates the complete ten-action connector/account/session/participant/logout/shutdown sequence and supports scripted rejection events.
  • Added CLI, protocol, translated compatibility, documentation, and completeness/parity updates.

Issue-scoped verification:

  • 3 Vivox protocol unit tests passed.
  • 2 VivoxTest module unit tests passed.
  • 4 VivoxTest CLI/fake-service tests passed, including secret-redaction and teardown cases.
  • vivox_protocol_semantics and extension_shims compatibility tests passed.
  • Strict Clippy passed for the adapter, program/CLI targets, and compatibility case.
  • Rust mapping, API shim, and surface/parity checks passed (0 pending/unreviewed).
  • cargo check --workspace --all-targets --locked -j 1 passed.

Live validation remains opt-in because no user credentials or proprietary Vivox service were supplied; the gated live path compiles and uses the same tested native control API.

Implemented in da4afec and pushed to main. Native Rust implementation: - Added a bounded async Vivox XML/TCP control client with request correlation, connector/account/session state, device enumeration, participant events and volume control, opaque secret handles/URIs, safe rejection diagnostics, and idempotent reverse-order teardown. - Replaced the VivoxTest stub with credential-gated live grid/capability validation. The proprietary daemon is only connected to at a supplied endpoint and is never bundled, located, started, or invoked. Live audio has its own --allow-session-audio gate. - Added a scripted in-process loopback control server that validates the complete ten-action connector/account/session/participant/logout/shutdown sequence and supports scripted rejection events. - Added CLI, protocol, translated compatibility, documentation, and completeness/parity updates. Issue-scoped verification: - 3 Vivox protocol unit tests passed. - 2 VivoxTest module unit tests passed. - 4 VivoxTest CLI/fake-service tests passed, including secret-redaction and teardown cases. - vivox_protocol_semantics and extension_shims compatibility tests passed. - Strict Clippy passed for the adapter, program/CLI targets, and compatibility case. - Rust mapping, API shim, and surface/parity checks passed (0 pending/unreviewed). - cargo check --workspace --all-targets --locked -j 1 passed. Live validation remains opt-in because no user credentials or proprietary Vivox service were supplied; the gated live path compiles and uses the same tested native control API.
hugo closed this issue 2026-08-11 14:10:48 +00:00
Sign in to join this conversation.