Odysseus Voice Orb v0.3.0-beta.1
Pre-release
Pre-release
Odysseus Voice Orb v0.3.0-beta.1 is the maintained-fork beta for guided setup and bounded, explicit Tailnet model discovery. It preserves the v0.2 camera/media contract and normal Odysseus conversation when no worker is configured.
What changed
Check voice setup.now returns structured status and spoken guidance from the same server snapshot.- Readiness covers the configured model, STT, TTS, and exactly three optional fixed workers:
pc-codex,hermes, and disabled-by-defaultvps-codex. - Worker-cluster wording appears only when at least two explicitly configured workers pass their bounded health checks.
- Credentials remain in Settings or mounted token files and are never spoken.
- Tailnet discovery is an explicit two-step admin action: list redacted peers, then probe a selected peer.
- Peer lists expose 1-5 short-lived opaque IDs; selected probes use fixed model-list ports and never return raw IPs, URLs, tokens, or upstream error bodies.
- Discovery never performs agent discovery, blind subnet scans,
tailscale up, ACL/Funnel changes, device enrollment, or bind-address changes. - Selected-peer responses are streamed under a 512 KiB cap, 1.5-second per-I/O timeout, 3-second wall-clock deadline, no redirects, and JSON-only negotiation.
Verification
- Release workflow: all metadata, dependency, full-history secret-scan, public-scrub, compile, unit, Compose, browser, Docker, Trivy, and publication gates passed.
- CPython 3.11: 4,666 passed, 4 skipped, 8 warnings.
- Chromium: 5 fake-device lifecycle cases passed; foreground, voice, media, and setup contracts passed.
- Physical Logitech C920 gate: expected label observed, one bounded JPEG captured, every track ended, controller returned to idle, and no video-device handle remained.
- Blocking Trivy scan found no HIGH/CRITICAL release-candidate vulnerability.
- The complete public delta reapplied cleanly to canonical upstream
devatc80462e4621c1a3360e5441843bb83b4691a8766, followed by compile, four Node contracts, and 25 focused Python tests.
Immutable artifacts
- Source:
f726621efe9d313f6d49bc5eb3c6de4c32316a36 - OCI index:
ghcr.io/madpanda3d/odysseus@sha256:816f68c9b5cc4d093abd4be6e015822280d6d269f9ea8821c3c33ce444991017 linux/amd64:sha256:0d5a566485712c5dd0e0057161a92dd3d01e3e74efb006787d07b4c7146966e1linux/arm64:sha256:c77fbe56b2464fa2690ae82d9a38ae3ae68c855b4296cbf01db3100b54ea317e- Anonymous registry readback returned HTTP 200 for the tag, immutable index, and both architecture manifests; header and raw-body digests matched exactly.
Compatibility and rollback
This remains an AGPL-3.0-or-later maintained fork, not an installable plugin. The compatibility record is based on canonical upstream c80462e4621c1a3360e5441843bb83b4691a8766; plugin_abi remains null, and no database migration is introduced.
Roll back to voice-orb-v0.2.0-alpha.1 to retain the camera/media slice without beta setup/discovery, or to voice-orb-v0.1.0-alpha.2 for the camera-free release.