Skip to content

Releases: MADPANDA3D/odysseus

Odysseus Voice Orb v0.3.0-beta.1

Pre-release

Choose a tag to compare

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-default vps-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 dev at c80462e4621c1a3360e5441843bb83b4691a8766, 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:0d5a566485712c5dd0e0057161a92dd3d01e3e74efb006787d07b4c7146966e1
  • linux/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.

Odysseus Voice Orb v0.2.0-alpha.1

Pre-release

Choose a tag to compare

User-initiated camera and allowlisted local media for the maintained Odysseus Voice Orb fork, based on upstream c80462e4621c1a3360e5441843bb83b4691a8766. This remains a fork release, not a plugin.

Camera and media boundary

  • Exact single-purpose commands open/close the browser camera, describe one current frame, or play one bundled manifest ID.
  • Frames are JPEG/PNG only, no larger than 1024×576 and approximately 1 MiB decoded; MIME, base64, magic bytes, and dimensions are validated.
  • Raw frame bytes stay in browser/request memory and are not written to history, diagnostics, uploads, caches, or logs.
  • Camera tracks stop on Close Eyes, End Voice, errors, permission loss, track end, page hide, hidden-page transition, pending-permission invalidation, and media-mode switches.
  • The bundled demonstration is a checksummed same-origin silent abstract WebM dedicated under CC0 1.0; arbitrary URLs and undeclared media are rejected.

Verified release gates

  • Release Python suite: 4,656 passed, 4 skipped.
  • Four fake-device browser lifecycle cases passed; focused foreground, voice, and media contracts passed.
  • Compose validation, public/media scrub, full-history secret scan, dependency audit, Docker build, and blocking HIGH/CRITICAL Trivy scan passed.
  • A transient GitHub cache-export failure was retried without changing the tag or bypassing a gate; the final workflow attempt is fully green.
  • Native Linux amd64 and arm64 images were joined into one OCI index and anonymously read back from GHCR.

Immutable container

ghcr.io/madpanda3d/odysseus@sha256:e256a8535edc6e6fd602e06887581bca5ef239750f4f5a1412270f6231af5508

Platform manifests: linux/amd64sha256:7269a2f0fb6dd0ae1427f795b2a824530a1ca4af02db0cdcd3fabfdada77f7a5; linux/arm64sha256:111d2cb1fca2dfce2bc11f8e106305f4821e69fa7a92a6a3a713bb93f07cd8e9. Pin the index digest in deployments.

No database migration is introduced. voice-orb-v0.1.0-alpha.2 remains the camera-free rollback point.

Odysseus Voice Orb v0.1.0-alpha.2

Pre-release

Choose a tag to compare

Supported camera-free Voice Orb alpha, ported from upstream Odysseus c80462e4621c1a3360e5441843bb83b4691a8766.

Security and compatibility

  • Removes the optional bundled Docker CLI that blocked alpha.1 at the Trivy gate.
  • Backfills determinable legacy voice-session owners and keeps unresolved orphan sessions fail-closed.
  • Keeps authentication enabled for shared, LAN, proxy, and container deployments.
  • Adds no database migration; rollback is the previous immutable source tag or image digest.

Verified release gates

  • 4,649 pytest cases passed; 4 skipped; 8 warnings.
  • Two fake-device Playwright lifecycle cases passed.
  • Compose validation, public scrub, full-history secret scan, dependency audit, Docker build, and blocking HIGH/CRITICAL Trivy scan passed.
  • Native Linux amd64 and arm64 images were joined into one OCI index.

Immutable container

ghcr.io/madpanda3d/odysseus@sha256:82bbb72f65b0ff59e668f8eedcbf02cdc76b4c1b85c17ee041c6d10a0bad9754

Anonymous registry readback returned HTTP 200 and resolved the release tag to that exact digest with linux/amd64 and linux/arm64 manifests. Pin the digest in production; the source/container tag is the discovery label.

Install and rollback details are in docs/voice-orb/install.md; release gates and provenance are in docs/voice-orb/release.md. Alpha.1 remains immutable but did not publish a container image.