Skip to content

Release features

Which features ship, the shared release config, development previews and Coming Soon status.

Last updated

release-features.json at the repository root is the single release catalog. Change a feature's released boolean there, then rebuild the app and website. There is no runtime override in a shipped app. Changing the file affects future releases and updates; it cannot change an already installed binary.

Inventory#

IDFeatureIncludesRequires
sidebarSidebar & chatsChat list, live status, grouping, pins, labels, selection, subagents and peeking—
tasksTasksTask board, PR checks and task planssidebar
searchSearchChat search, full text and command palettesidebar
composerNew chat composerNew chats, app/model/folder choices and attachmentssidebar
voiceVoice dictationDictation, recognition, cleanup, Polish, history and floating microphone—
voiceLearningVoice corrections & learningRatings, word and phrase corrections, dictionary learningvoice
agentsAgentsAgent library, editing, creation and launchingcomposer
skillsSkillsSkill library, delivery, drift repair and pinssidebar
workflowsWorkflows & check-insPlanning, steps, runs, startup questions, scheduling, check-ins and doctorcomposer
notesNotes & sessionsText/voice notes, sessions, search, export and dragging packages—
captureCapture (Coming Soon) & browser DOM (Coming Soon)Screen crops, selection overlay, browser DOM (Coming Soon), AX picker and browser adapternotes
windowsWindow layouts & BasketBasket, layouts, moving windows together and saved setupssidebar
handoffHandoff, fork & follow-upsHandoff between apps, forks and follow-up messagescomposer
limitsPlan limits & usageClaude/Codex plan limits and local system usage—
notificationsNotifications & soundsDesktop notifications, notification sounds and badges—
integrationsHooks, MCP & agent actionsLive hooks, MCP/control tools, plugin install and agent actionssidebar
cloudCloud chatsClaude/Codex cloud chats and cloud composer destinationscomposer

Release behavior#

  • ./build.sh --distribution and --distribution-dry-run compile immutable release switches from this file. Disabled features have no active entry points or startup work. Capture (Coming Soon)'s picker, DOM (Coming Soon) resolver and overlay implementation are compiled out, and its browser extension files are not bundled. Existing notes and screenshots (Coming Soon) are kept; disabling a feature never deletes user data.
  • Regular developer builds and E2E test copies keep all features available for ongoing development. The public website always uses the release catalog, not developer availability.
  • The build rejects unknown IDs, missing booleans, invalid dependencies and cycles. Disabling a parent requires disabling its children too; the build does not silently change your choices.
  • python3 app/scripts/check-release-features.py lists release status. web/scripts/sync-content.mjs copies the same catalog for website builds, including standalone deployments. Do not edit that generated copy.
  • Public pages show a shared Coming Soon notice, feature-specific previews, and availability labels in documentation, content prose, metadata and search results. Disabled features are previews, not claims about the installed release.
  • Licensing, updates, privacy controls and core settings are infrastructure, not optional feature flags.

Checking a change#

Release builds bypass SwiftPM manifest caches, so changing only the JSON still recompiles the correct switches. For direct SwiftPM checks after changing the catalog, pass --manifest-cache none --disable-build-manifest-caching.

Run native tests in both development and PAIRBAR_DISTRIBUTION modes, compile the app in distribution mode, run the website's tests and type check, and inspect the app resources for disabled adapters. Verify every newly added feature has a catalog entry and gates at its UI, startup and action owners.