Changelog
Every release, newest first.
-
- — Anthropic OAuth and OpenAI Codex providers integrate into the LLM pipeline, supporting in-app sign-in, automatic token refresh, and credential lifecycle management.
- — Voice sessions boot signed-out rather than crashing if credentials are missing, allowing the system to prompt for sign-in instead of failing session setup.
- — Out-of-pipeline text agents, filler generation, and drift analysis now route through OAuth providers, preventing failures on subscription-only accounts.
- — The LLM test endpoint and model fetching respect the active OAuth provider, ensuring accurate diagnostics without manual API key entry.
- — OAuth status displays precise expiration timestamps, refresh capability, and credential durability, distinguishing between managed stores, borrowed CLI logins, and static environment tokens.
- — macOS Keychain acts as a fallback credential source for Claude Code, with a 30-second cache preventing subprocess overhead on high-frequency model calls.
- — Identity system prompts are strictly formatted to match Anthropic’s byte-exact requirements, resolving false rate-limit errors caused by malformed prefix blocks.
- v0.2.166 2026-07-27
- — The drawer footer displays the current version and a linked studio wordmark across every tab.
- — The studio link routes through the system browser via IPC, keeping the app interface intact.
- — The version string reads directly from the Tauri build configuration instead of a hardcoded constant.
- — The download page syncs the latest release instead of silently serving a stale version.
- — First-run documentation clarifies the multi-minute initial unpack and the required language model setup.
- v0.2.165 2026-07-17
- — Bounds degenerate tool loops on the voice path to prevent infinite spinning on identical requests.
- — Forces speech synthesis after three repeated tool-call round-trips to eliminate dead air.
- — Applies escalating nudge at two repeats before disabling tool calling entirely at three.
- — Configures the brake per backend, using `tool_choice: "none"` for OpenAI-compatible APIs and schema withholding for Ollama and MLX.
- — Introduces `agent/tool_loop.py` as a pure, testable policy module with no Pipecat dependencies.
- — Supports environment-tunable thresholds via `VOICE_TOOL_LOOP_NUDGE_AT` and `VOICE_TOOL_LOOP_STOP_AT` to match existing iteration caps.
- — Uses greater-than-or-equal comparisons for thresholds because request-only edits do not persist notes in history for the model to reference.
- — Pins tests across all four backends to ensure the guard is reached and does not rot in isolation.
- v0.2.164 2026-07-16
- — Local Smart Turn now enables by default, replacing fixed silence hangover with semantic turn-end detection to reduce per-turn latency.
- — Listener-acks automatically activate when the audio engine confirms active echo cancellation, preventing false triggers during speaker bleed.
- — Backchannel responses now respect the active TTS backend, suppressing on non-Fish paths where timing would be incorrect.
- — Per-stage latency metrics surface in sidecar logs, splitting time-to-first-audio across STT, LLM, and TTS components.
- — A new `LOG_LATENCY=0` flag silences the latency observer when detailed timing data is not required.
- — Pipecat upgraded to 1.5.x, ensuring compatibility with the new latency instrumentation and local smart turn analyzer.
- — The lockfile refreshes stale dependencies, including parakeet-mlx and zeroconf, to maintain a clean build environment.
- v0.2.160 2026-07-16
- — Sidecar process trees now terminate cleanly on quit, preventing orphaned workers and port leaks
- — Stale pyapp environment directories are automatically reaped on boot to reclaim disk space
- — The setup wizard now validates LLM connectivity before allowing progression, catching unreachable endpoints early
- — YAML configuration now takes precedence over environment variables across all subsystems, eliminating silent overrides from stale .env lines
- — API key validation now warns loudly when credentials are missing or unresolved, instead of silently failing with 401 errors
- — Kokoro TTS gracefully falls back to the default voice when the configured voice is incompatible, preventing silent audio failure
- — Session full-text search uses incremental indexing instead of rebuilding the entire index on every write, maintaining consistent latency regardless of session count
- — Kokoro TTS synthesis and speaker-gate inference run on dedicated executors, keeping the main event loop responsive during audio processing
- — Application routes are decomposed into domain-specific routers under `server/routers/`, reducing app.py complexity
- — A new diagnostics endpoint bundles runtime configuration and metrics for bug reports, with secrets automatically redacted
- — Packaging tests now verify that all top-level packages are included in distribution builds, preventing runtime import errors
- v0.2.159 2026-07-12
- — Drop-in `personas/<slug>.md` files now define voice, LLM overrides, orb presets, and system prompts.
- — A new Quick-tab picker and manager dialog let you create, edit, duplicate, and delete personas without touching the filesystem.
- — Voice commands like "put on the chef" or "switch to Sage" now hot-swap the active persona mid-session.
- — Failed LLM generations automatically retry on a configured backup endpoint before the user notices.
- — Dead or unreachable LLM endpoints now trigger a spoken error instead of leaving the orb stuck in a thinking state.
- — The `set_orb_visual` handler validates variants and palettes server-side, preventing the frontend from persisting invalid states.
- — Tool schemas now render live options at schema build time so voice routing matches current vocabulary without a restart.
- — LLM fallback, micro-tier, and router keys now persist correctly through the settings UI and persona files.
- — The active persona pointer and orb configuration round-trip through the config store without stripping nested keys.
- v0.2.146 2026-06-26
- — Persist all Orb tab edits, including sliders, colors, and palette selections, to the server-side configuration.
- — Ensure immediate persistence for discrete actions like variant swaps or preset loads to prevent data loss on reload.
- — Implement automatic configuration flushing during page visibility changes and window unloads.
- — Synchronize parameter hydration to ensure saved settings are correctly applied when switching variants or palettes.
- — Rename "Push-to-talk" to "Tap to talk" to accurately reflect the toggle-based interaction model.
- — Hide the wake word option from activation pickers and disable the on-device model catalog.
- — Temporarily remove the Edison variant from the available orb registry.
- v0.2.145 2026-06-24
- — Async delegate and orchestrate responses drop automatically when a user interrupts, preventing out-of-turn narration.
- — Dead tool handlers and unimplemented persona traits drop from the LLM prompt to reduce context noise.
- — Micro-acknowledge prompts simplify by dropping restrictive negative constraints that smaller models ignore.
- — The orb variant picker removes the "Premium" badge to align with open-source customization.
- v0.2.144 2026-06-24
- — The `set_orb_visual` tool is disabled to prevent unstable orb styling, and the related settings toggle is removed.
- — The update changelog now opens in a centered modal that properly renders markdown formatting instead of a raw text popover.
- v0.2.143 2026-06-24
- — The voice agent can now restyle the orb’s variant, palette, and parameter knobs live, with no reload required.
- — A toggle in Agent → Behavior disables the agent’s orb control capability, letting you turn it off at any time.
- — How-to, Reference, and Explanation overview pages now group content by domain (Voice & conversation, The orb, etc.) to match the sidebar structure.
- — Inside each documentation section, the sidebar groups pages by domain instead of an alphabetical flat list, with unplaced pages falling into a “More” group.
- — Post-paywall audit: removed stale billing references, clarified the `premium` flag as legacy, and listed three previously missing how-to guides in the overview.
- — The hero section now features a “Try the orb editor →” call-to-action, giving instant access to the zero-install interactive showcase.
- — Orphaned `/unlock` and `/unlock/success` pages, tied to a discontinued $9 unlock, have been removed to avoid confusion.
- v0.2.142 2026-06-24
- — Removes all entitlement gates and paywalls from the Orb settings panel and drawer.
- — Restores the Orb tab to the main application drawer for easier access.
- — Adds a direct link from the Orb settings to the full web-based editor.
- — Enables full panel collapsing to maximize stage workspace.
- — Adds a floating toggle button to expand or hide the editor panel.
- — Introduces icon-based header actions for Import, Export, Documentation, and Bug reporting.
- — Implements persistent panel width and state via localStorage.
- — Exposes Orb authoring capabilities via WebMCP tools, allowing AI agents to programmatically manipulate shaders, controls, bindings, and metadata.
- — Provides a comprehensive toolset for agentic workflows, including `get_orb_state`, `set_fragment_shader`, and `add_binding`.
- — Integrates real-time validation and WebGL compilation checks to provide immediate feedback during automated authoring sessions.
- v0.2.141 2026-06-22
- — Replaces static command checks with a real handshake probe to ensure delegates are functional before dispatch.
- — Implements process group reaping to prevent orphaned subprocesses and sidecar leaks when a dispatch is cancelled or timed out.
- — Adds synchronous SIGKILL capabilities to ensure immediate termination of the entire agent process tree.
- — Increases stdout and StreamReader line limits to 32 MB to accommodate large ACP messages.
- — Adds round-trip logging for initialization and session turns to improve sidecar diagnostics.
- — Augments the sidecar PATH on macOS to ensure binaries from Homebrew, nvm, and asdf are discoverable.
- — Strips existing Claude environment variables during delegate launch to prevent session conflicts when running within Claude Code.
- — Ensures the ACP client correctly inherits the user's login shell PATH for reliable binary resolution.
- v0.2.140 2026-06-13
- — Replaces manual workflow dispatching with native GitHub workflow chaining to eliminate token permission errors.
- — Implements conditional triggers to ensure marketing site deployments only occur following successful release builds.
- — Ensures the marketing site only updates after the release assets are successfully uploaded and the changelog is committed.
- v0.2.139 2026-06-13
- — The marketing site deployment now triggers only after the desktop installer and updater manifest are successfully uploaded.
- — The release process uses API-based workflow dispatch to prevent authentication conflicts and recursion during the changelog update.
- v0.2.138 2026-06-13
- — Automates the synchronization of the marketing site to ensure the live changelog reflects the latest version immediately.
- v0.2.137 2026-06-13
- — The shader panel is now resizable via a draggable divider to accommodate long GLSL lines.
- — Added window-level pointer listeners to ensure smooth dragging when moving over the preview canvas.
- — Keyboard navigation allows for resizing the panel, with width persisting across sessions.
- — Default panel width is increased to 680px to improve initial visibility.
- — Added links to the web-based orb editor in the global navigation and footer.
- — Included a call-to-action on the homepage for the in-browser design tool.
- — The release process now skips version bumps when a release pull request is already open to prevent CI failures.
- — Orphaned remote branches are automatically cleaned up during the release preparation phase.
- v0.2.136 2026-06-11
- — Prevents the listening window from auto-closing while the system is processing tool calls or delivering spoken responses.
- — Maintains an active listening state through concurrent background tasks to ensure uninterrupted conversation flow.
- — Surfaces the wake listen-window duration slider directly under activation style cards for easier access.
- — Implements a dual-input busy signal to track both bot speech and in-flight tool execution independently.
- — Adds a safety timeout to the busy state to prevent the microphone from remaining open indefinitely if a task completion event is missed.
- — Improves echo guard logic to treat recent playback as active conversation, preventing premature window closure.
- v0.2.134 2026-06-11
- — Migrates the application splash and loading screens to the official design system components.
- — Synchronizes boot sequence animations and brand elements with the standard design system shell.
- — Removes redundant logo displays during the boot gate phase to streamline the startup visual flow.
- — Implements CSS token support for consistent dark mode rendering based on system preferences.
- — Fixes a Docker build error by ensuring necessary workspace packages are included in the web build stage.
- v0.2.132 2026-06-10
- — Redacts provider API keys from the `/api/config` endpoint to prevent cleartext exposure.
- — Implements SSRF protection for LLM probes by rejecting cloud-metadata and link-local targets.
- — Offloads DNS resolution to a separate thread to prevent blocking the main event loop during LLM testing.
- — Uses constant-time comparison for inbox ingest tokens to mitigate timing attacks.
- — Adds immediate exception logging for failed native pipeline tasks to prevent silent crashes.
- — Moves full speech transcripts from INFO to DEBUG logs to ensure user privacy in shared log files.
- — Reduces CPU usage by replacing a busy-looping SSE bus with an asynchronous wait mechanism.
- — Pauses the Orb render loop and audio polling when the application window is hidden to save GPU and battery.
- — Ensures Parakeet STT features are correctly bundled in macOS DMG releases.
- — Enables automatic fallback to Whisper if the primary STT backend fails to load.
- v0.2.131 2026-06-10
- — Prevents silence during long-running asynchronous tool execution by ensuring the presence loop continues until task completion.
- — Suspends spoken status updates when the agent is paused waiting for human-in-the-loop user input.
- — Adjusts tool classification to ensure multi-step orchestration tasks trigger appropriate audio reassurance.
- — Removes premium customization and developer-only UI surfaces from standard production builds.
- — Transitions developer tools to an opt-in configuration via build flags to ensure clean distribution bundles.
- v0.2.130 2026-06-10
- — Enables agents to discover nearby A2A delegates via mDNS/Bonjour, local port scanning, and Tailscale peer probes.
- — Adds a "Discoverable on your network" toggle in Delegate settings to allow external access via 0.0.0.0 binding.
- — Implements automatic deduplication to prevent co-located agents from appearing multiple times in the discovery panel.
- — Provides a streamlined workflow to add discovered agents as delegates using prefilled connection details.
- — Introduces a deterministic presence harness to measure "dead air" gaps during long-running tool executions.
- — Establishes a centralized presence policy to ensure consistent user feedback when async delegates or slow sync tools are active.
- — Adds automated reporting for latency deviations against defined presence SLAs.
- v0.2.129 2026-06-09
- — Implements a grounding guardrail that prevents agents from fabricating capabilities or routing requests to mismatched agents in the fleet.
- — Forces agents to admit when no suitable specialist exists rather than attempting to force-fit an unrelated tool or agent.
- — Permits agents to answer directly using existing knowledge without over-hedging on general reasoning or conversational tasks.
- — Expands the evaluation harness to simulate the full voice tool surface, including orchestration and routing schemas.
- — Introduces a deterministic decision harness to measure routing accuracy, grounding integrity, and response brevity.
- — Enables scenario-based testing against specific fleet configurations to catch regressions in agent delegation logic.
- v0.2.128 2026-06-08
- — Implements a top-level microphone mute that overrides wake-word detection and push-to-talk to ensure no audio is processed when muted.
- — Fixes an issue where the stall watchdog would trigger recovery audio after a user had already cancelled a turn.
- — Adds new commands to manage the hardware mute state via the AudioEngine.
- — Enables hot-swapping of LLM providers and models in the live session without requiring a restart or audio reconnection.
- — Unifies frontend plugin, widget, and variant registries into a single primitive to improve state management stability.
- — Optimizes registry lookups to prevent unnecessary render loops in the web client.
- v0.2.127 2026-06-08
- — Implements auto-discovery for plugins, widgets, and orb variants via filesystem globs, removing the need to manually update central import lists.
- — Introduces a stable `@/sdk` web surface to provide explicit registration functions and types for extensions.
- — Establishes `config/widgets.yaml` as the single source of truth for widget definitions, synchronizing the agent and web registries.
- — Adds comprehensive contribution guides and in-folder documentation for plugins, widgets, orb variants, and agents.
- — Moves transient status management from a specific plugin into core shared services to prevent cross-plugin dependency fragility.
- — Resolves an issue where saving persona configurations would silently strip `behavior` settings due to validation filtering.
- — Prevents silent failures by adding CI guards that validate starter orb IDs against the registered variant registry.
- — Ensures widget parameters are passed through a generic `props` object to allow new widgets to function without modifying tool schemas.
- — Transitions the project to the Apache-2.0 license to support inbound contributions and provide explicit patent grants.
- v0.2.126 2026-06-07
- — Ensures the application bundle is correctly built during release cycles to allow the updater to serve valid artifacts and manifest files.
- v0.2.125 2026-06-07
- — Implements an in-app update mechanism that notifies users of available versions via a non-intrusive notification pill.
- — Provides a one-click "Update & Restart" workflow to download, install, and relaunch the application.
- — Automates the generation and signing of update manifests to ensure secure delivery of desktop builds.
- — Adds support for selecting specific audio output devices within the application settings.
- — Enables persistent selection of output hardware, allowing the app to bypass system-wide default changes.
- — Resolves issues where voice processing or acoustic echo cancellation (AEC) fails when the system default is set to a USB interface.
- v0.2.124 2026-06-07
- — Provides granular progress updates during the initial 80-second import phase to prevent the appearance of a frozen state.
- — Automates changelog synchronization between GitHub releases and marketing documentation to ensure consistency.
- — Hosts macOS DMG assets directly within this repository's releases for more direct access.
- v0.2.123 2026-06-06
- — Smoother first launch — the loading screen shows real progress and no longer looks stuck while ORBIS warms up.
- — Setup remembers you're set up — it won't re-ask about on-device voice on a Mac you've already configured.
- — Choosing on-device voice now downloads the speech models right then, with a progress bar — instead of stalling your first conversation.
- — Allowing the microphone during setup starts voice right away — no restart needed.
- v0.2.122 2026-06-06
- — Microphone keeps working when your audio output is a USB interface (no more silent mic on a Scarlett or USB DAC).
- — Status pill shows real speaking and thinking states, with cleaner delegation labels.
- — ORBIS is now open source: build it from source or browse the code on GitHub.
- v0.2.121 2026-06-05
- — Voice settings open cleanly — no more microphone-indicator flicker
- — Polished the on/off toggle switches
- — Packaging fix — developer-only tools are no longer included in the released app
- v0.2.118 2026-06-04
- — Redesigned settings — a Quick tab with at-a-glance status and your most-used controls
- — Switch between orb presets right from the Quick tab
- — Tidier voice settings — wake-word setup folds out of the way
- v0.2.117 2026-06-04
- — Barge-in — interrupt ORBIS mid-sentence (headphones)
- — "Hey Orbis" wake-word activation, fully on-device
- — Choose on-device or cloud speech models during setup
- — Signed + notarized — the app opens cleanly on download
Get the latest signed build on the Download page .