Skip to content

Changelog

What's new in Bossanova.

v1.65.0

v1.65.0

Account management gets a big upgrade

You can now refresh an account’s credentials in place using boss account refresh, without removing and re-adding the account. This matters because sessions, scheduled jobs, and account bindings all reference the account by ID, so deleting and re-adding would break those connections. The refresh command accepts a token directly or from a file, and can optionally run a quick verification after saving.

The switch-account picker (in both the terminal UI and web) is also smarter now. It shows each account’s health status and cooldown state before you pick, and grays out accounts that are unavailable so you do not waste a round-trip finding out after the fact. When registered accounts are present, the picker no longer surfaces the local default credentials as an option, since that entry was rarely the right choice and caused confusion.

Features

  • Auto-rotation for long-running plan sessions. When a usage cap is hit during a running plan, Boss can now automatically rotate to the next eligible account and continue, instead of stopping and waiting.
  • Chat renames now stick. If you rename a chat inside Claude using /rename, the new name now shows up in the Boss session list immediately. Previously the list would keep showing the original name.
  • Codex device authorization errors now tell you what to do. When boss account add codex fails because the “Enable device code authorization for Codex” setting is off in ChatGPT, Boss now detects this and tells you exactly which setting to enable and where, instead of showing a raw error or timing out silently.
  • Account rotation verification guide. A new guide in the docs walks through verifying that your account rotation setup is working end-to-end, with an optional script that runs the mechanical checks locally.

Improvements

  • Starting a new session no longer interrupts you with an account picker. Boss picks the best available account automatically, the same way the web UI already did. You can still pass --account if you want to choose manually.
  • Setting up a Claude account (boss account add claude) no longer shows duplicate banners and spinner fragments from the underlying Claude CLI. You see one clean progress message instead.
  • boss account ls now shows full account IDs and gives clearer messages when account verification fails.
  • Comprehensive docs for the boss-* skill suite are now published, covering what each skill does, how to configure it, headless and scheduled use, and how to write repo-local extensions. A migration guide covers moving from the older bs-* skill names.

Fixes

  • Fixed an issue where GitHub webhook events could be routed to the wrong repository when multiple repos shared a similar origin URL.
  • Fixed an issue where sending a message in a session could lose the correct command prefix, causing the message to be misrouted.
  • Fixed an issue where accounts with a failed health status could be selected in the switch picker, leading to an error only visible after the switch was attempted.
  • Fixed an issue where the unmanaged local credentials entry appeared in the switch picker alongside registered accounts, acting as a confusing duplicate option.
v1.64.0

v1.64.0

Automated Account Rotation

Boss can now automatically switch coding-agent sessions to a different account when one hits a usage cap, without any manual intervention. For headless runs (cron jobs and implementation tasks), Boss detects the cap on exit, cools down the exhausted account, picks the next eligible one, and resumes the run from where it left off. For live chat sessions, Boss detects the cap from the pane output and respawns the chat under the new account, posting a notice in the conversation (“switched to account-name, previous account resets ~15:00”). When all accounts are cooling down, Boss parks the session and notifies you once with a resume time.

You can also switch accounts manually from the TUI, the web UI, or with boss account switch , and the conversation resumes under the new account rather than starting fresh.

The full rotation picture also includes: a per-account audit trail of every switch (trigger, from/to account, reset time, outcome) visible in session detail; a global kill-switch in TUI settings and the CLI; and a clear “usage-limited (resets ~15:00)” badge on any session or chat that is waiting out a cap.

Features

  • Usage-cap detection. Boss now recognizes when an agent hits a usage cap, both when a headless run exits and when a live chat shows a limit banner. The reset time is parsed and shown wherever session status appears.
  • Usage-limited badge. Sessions and chats that are waiting out a cap show a warning badge with the estimated reset time in the TUI and web session list and detail views.
  • Manual account switching. You can now switch a running session or chat to a different account from the TUI, the web UI, or the CLI. The conversation resumes under the new account.
  • Auto-rotation for headless runs. Cron jobs and implementation runs that hit a cap are automatically restarted under the next available account, with a steering notice prepended to the resumed prompt.
  • Auto-rotation for live chats. Interactive chat sessions that hit a cap are automatically respawned under the next eligible account, with an in-chat notice.
  • Rotation audit log. Every rotation decision is recorded and shown in session detail so you can see what happened and when.
  • Rotation kill-switch. Auto-rotation can be disabled globally from TUI settings or the CLI.
  • Skills renamed to boss-*. The five built-in dev skills (bs-plan, bs-implement, bs-review, bs-epic, bs-proof) are now named boss-plan, boss-implement, boss-review, boss-epic, and boss-proof. Behavior is unchanged; the new names ship through the existing public distribution path.
  • Skill generalization foundations. Tracker integration, plan publishing, and several internal skill behaviors are now driven by pluggable adapters and a declarative config file (.boss-skills.json), making the skills usable in repos beyond Bossanova’s own setup. This release lays the groundwork; more consuming-repo support follows in later releases.
  • boss-implement runs without a connected Boss daemon. The implementation skill now degrades gracefully when run outside a managed Boss session, using its own branch and PR rather than requiring daemon-injected setup.
  • Plan description versioning. Plans emitted by boss-plan now carry a version marker, and boss-implement will reject plans whose format version it does not recognize, preventing silent drift between the two skills.

Improvements

  • boss-epic rollup fix. An epic whose children mix not-started and in-progress states now correctly shows as “In Progress” rather than being pulled down to the least-advanced child’s state.
  • Busy sessions stay “working”. A Claude session running a background shell command that keeps the pane static was sometimes reported as idle. Boss now recognizes the “N shell(s) still running” and “esc to interrupt” indicators and keeps the session marked as working.
  • Enter opens cron job editing. In the Scheduled Jobs list, pressing Enter now opens the highlighted job for editing, the same as pressing e.
  • Faster incremental formatting. make format-affected now formats only the files changed since main, rather than walking the entire repo. This makes it practical to run during development; CI’s full format check is unchanged.

Fixes

  • Fixed an issue where starting a Codex chat inside a session originally created as a Claude session would fail because the Codex CLI received a Claude model name it could not recognize.
  • Fixed an issue where the merge gate would permanently block a pull request that had an empty automated review comment, even after the underlying issue was resolved.
  • Fixed an issue where MCP tools were unavailable in local development sessions due to the dev daemon starting in the wrong location.
  • Fixed an issue where the public changelog was silently not written on each release due to an incorrect repository reference in the generation script.
v1.63.0

v1.63.0

/bs-epic: run an entire Linear epic hands-off

Boss can now orchestrate a full Linear epic unattended. Point /bs-epic at a parent issue (or a list of ticket IDs) and it builds the dependency graph, implements up to four tickets in parallel in separate worktrees, serializes merges in the right order, and repairs failing PRs automatically before moving on. Progress is reported back to the parent Linear issue as work completes.

Sessions dispatched by /bs-epic now survive a Boss restart, because they run in tmux rather than as child processes of the daemon. Attaching to a running session for a look no longer stalls or crashes it.

Features

  • Account management. You can now register additional Claude and Codex accounts with boss account add claude or boss account add codex. Boss walks you through the credential flow, validates and live-tests the account, and stores credentials in your OS keyring. Registered accounts are listed via boss account list and available as MCP tools. This lays the foundation for account rotation across long-running jobs.

  • Automatic Linear board tidy. A new scheduled skill, bs-sweep-tidy-linear, automatically closes Linear tickets whose PRs have all merged, and rolls epic parent states forward to match their least-advanced open child. Ambiguous cases are escalated for human review; everything clear-cut is handled mechanically.

  • Proof: multi-scene coverage with an independent judge. PR proof now supports multiple named scenes per surface, each with its own evidence gate and chapter marker in the recorded video. A separate judge model (with no shared history with the implementation agent) grades the evidence against the required proof bullets and writes the comment headline. This replaces the previous self-graded verdict. An opt-in liveAgent mode runs select scenes against a real Claude Code session rather than fixture data.

  • send_chat_message can now submit. Passing submit: true on send_chat_message delivers the message and presses Enter, verified. Previously the text would land in the composer but never execute, silently breaking unattended repair and recovery flows.

Improvements

  • /bs-epic now runs up to four repair rounds per ticket before giving up, up from two. Tickets that need a few CI passes to go green are less likely to be abandoned prematurely.
  • Boss now detects when a session’s agent has hit a login wall and surfaces it as a distinct attention state, so unattended drivers can react rather than wait indefinitely.
  • bs-implement now injects the PR tag and force-pushes before waiting for CI, so CI runs once instead of twice per implementation.
  • bs-implement now finalizes as BLOCKED (not “ready to review”) when it hits the time cap with a required item still unaddressed. This prevents a merged-looking PR from failing the merge gate later.
  • The bs-review PR comment now includes an expandable Test Coverage section and labels the follow-up action block with a count of Linear issues to create.
  • When creating a session for a ticket that already has an active session, Boss now tells you explicitly (via an attached_existing signal) rather than silently reusing the existing one and ignoring the new prompt. Unattended drivers use this to send a repair command into the existing session instead of spinning up a duplicate.
  • Boss now prevents duplicate sessions for the same Linear ticket. Previously, rapid or concurrent dispatches could create multiple sessions and PRs for one ticket.
  • merge_session now tells you which specific gate blocked the merge (CI, review, conflict, base sync, etc.) rather than a generic “PR is not passing” message.
  • Merges no longer fail because your primary checkout has uncommitted changes. Boss syncs the base branch in the background and completes the merge regardless.
  • The repair loop no longer counts a pass as an attempt when no new commit was pushed. Repair attempts also reset on a clean green, so a previously stuck session no longer stays falsely BLOCKED.
  • A session that had a stale “fix loop exhausted” error now clears it automatically once the PR goes green and mergeable.

Fixes

  • Fixed an issue where sessions that finished merging still showed a red “finalize failed” error. Once a PR is merged or closed, any leftover finalize hint now clears.
  • Fixed an issue where a headless session killed by a Boss restart would silently appear as green (passing CI on an effectively empty PR). These sessions now show a distinct non-green “orphaned” state.
  • Fixed an issue where attaching to a running headless session showed a confusing stall instead of an actionable message.
  • Fixed an issue where Boss tools could report errors from stale tool definitions after a rebuild, with no indication that a chat restart was needed. Boss now detects the mismatch and tells you to restart the chat.
  • Fixed an issue where unattended sessions could stall silently because the prompt was delivered to the composer but never submitted.
  • Fixed an issue where the boss CLI path advertised to an agent session was sometimes empty, causing any command that relied on it to fail immediately.
  • Fixed an issue where MCP tool calls could fail with a connection error during the brief window when Boss restarts. Calls now retry automatically and recover without surfacing the error.
  • Fixed an issue where locally-built clients were rejected by the server due to an API version mismatch. A deploy ordering guard now prevents this class of skew from reaching production.
  • Fixed an issue where a project working directory with a trailing slash could break session resume.
v1.62.0

v1.62.0

Boss’s background work is now faster and less expensive

Boss runs a lot of work in the background on your behalf: implementing tickets, sweeping for security issues, running mutation tests, planning, and more. In this release, all of those workflows have been restructured so that heavy, context-heavy steps run in isolated sub-tasks instead of piling up on one long-running thread. The result is that cron runs and automated sweeps consume meaningfully less context per turn, mechanical steps like CI polling and commit stamping are handled by lighter-weight models, and large reference material is loaded on demand rather than loaded every single turn.

None of this changes what Boss does. It changes how efficiently it does it, which matters both for cost and for reliability on long sessions.

Improvements

  • Fewer stuck repairs. Fixed a long-standing issue where the repair system could permanently wedge behind a chat session that had died silently at its prompt. Boss now uses its internal session tracker (rather than file timestamps) to decide when a stuck chat can be replaced, so a dead session no longer blocks repair indefinitely. Separately, start refusals (where a new repair is blocked because another is already running) are now counted as “blocked” rather than “failed”, so the failure counter and backoff timer no longer inflate from situations that were not actually failures.
  • Faster detection of dead sessions. When a background agent goes idle without finishing, Boss now detects and cleans it up quickly rather than waiting up to 30 minutes to notice.
  • Review routing is more reliable. The outcome of an automated code review is now written to a file and read back from there, rather than parsed from the agent’s returned prose. A confused or incomplete summary can no longer cause Boss to route the wrong way after a review.
  • Review round limits can be tuned. The maximum number of review rounds Boss runs is now configurable via an environment variable (BS_REVIEW_MAX_ROUNDS), so you can cap it lower for automated or scheduled runs if needed.

Fixes

  • Fixed an issue where a connection error could appear briefly when restarting Boss.
  • Fixed an issue where the mutation sweep and debt sweep could fail to parse certain tool output formats correctly, causing them to miss findings.
  • Fixed an issue where repair-blocked hints in the UI were displayed the same way as repair failures, making it hard to tell the difference.
v1.61.0

v1.61.0

boss cron: manage scheduled work from the command line

Boss now has a boss cron command group, so you can view and manage your cron jobs directly from the CLI without switching to the web interface.

Features

  • boss-mcp is now available via Homebrew and the curl installer. If you use Boss as an MCP service, you can install and update it the same way you install Boss itself.

  • Web pages now have descriptive titles. Browser tabs, bookmarks, and history entries show meaningful names instead of a generic app title.

  • Code review gets a second opinion. The bs-review helper now runs a cross-agent review pass in both directions, so more issues are caught before a pull request merges.

Improvements

  • Archiving a session no longer loses its status when you navigate away. If you press Escape while a session is being archived, Boss keeps tracking the archive in progress and shows the correct status when you come back.

  • Proof videos now include a caption bar. When Boss records a TUI proof video, the agent caption bar is burned into the footage, making it easier to follow what happened during each step.

Fixes

  • Fixed an issue where the setup screen showed a stuck spinner instead of animating during session initialization.
  • Fixed an issue where the session screen showed two blank lines above a warning message instead of one.
  • Fixed an issue where the setup screen showed a double space before the word “initializing”.
v1.60.0

v1.60.0

Keyboard navigation in the command launcher

The shortcut launcher in the web app now works with the keyboard. You can arrow up and down through the list of commands and press Enter to run one, without reaching for the mouse.

Improvements

  • When Boss automatically verifies that a change works, it now interacts with the relevant part of the page directly rather than doing a generic walkthrough. This makes verifications faster to review and more meaningful.

Fixes

  • Fixed an issue where running a task in the background could interfere with an active session, causing the run to fail.
v1.59.0

v1.59.0

Smarter planning, a built-in code reviewer, and a keyboard shortcut launcher

Boss can now plan and implement work in dependency order. When the planner writes a ticket, it checks whether any other in-progress tickets touch the same parts of the codebase. If they do, it links them as blockers in Linear automatically. When picking the next ticket to implement, Boss skips anything blocked by unmerged work and goes straight to the first task that is ready to go. This means less churn from rebase conflicts and fewer wasted cycles on work that would just need to be redone.

A new review step (bs-review) now runs automatically as part of implementation. It looks at the finished changes from multiple angles, including code quality and web output, and leaves review notes before the PR is submitted.

Features

  • Keyboard shortcut launcher in the web UI. Press ? to open a searchable list of available shortcuts. You can also browse to them via a trigger in the app header.
  • Jump to the Linear ticket from a session. Press l in the session list to open the ticket linked to the selected session directly in Linear.
  • Captions on proof videos. When Boss records a proof of its work, the current action is now shown as a caption overlay on the video, in both the web and terminal views. This makes it much easier to follow what Boss was doing at each step.
  • New keyboard shortcuts in the web session view. Press n to start a new chat and d to delete a chat without reaching for the mouse.

Improvements

  • The setup flow for new users has been cleaned up and is easier to follow.
  • Boss now builds your project’s setup scripts using your login shell, which means environment variables and shell configuration are loaded correctly. Fish shell users should see fewer agent startup failures.
  • When an agent pane fails to start, Boss shows the exact command that was used, which makes it easier to figure out what went wrong.
  • The planning and implementation steps now share an understanding of which tickets are blocked, so the cron scheduler no longer wakes up and finds nothing it can actually start.
  • Sessions that finish outside of a scheduled run now correctly advance to their final state instead of staying stuck mid-implementation.

Fixes

  • Fixed an issue where pressing Esc to exit a session view during archiving would leave the session in a broken state.
  • Fixed an issue where pressing Esc during an archive or merge operation could get you stuck and unable to exit.
  • Fixed an issue where attaching to a session whose underlying workspace had disappeared would show a confusing “can’t find session” error with no way out.
  • Fixed an issue where worktree setup failures would silently swallow the error output, making it hard to know why setup failed. Boss now includes that output in the error message and continues rather than stopping entirely.
  • Fixed an issue where running Boss via Homebrew could fail due to shell environment problems.
  • Fixed an issue where error rows in the session list were not highlighted clearly when selected.
  • Fixed an issue where the scheduled implementation step could occasionally get stuck due to missing tooling context.
  • Fixed an issue where rapidly changing session ownership could cause Boss to incorrectly clean up sessions that were still active.
v1.58.0

v1.58.0

Boss now brings its own tools into every agent session

When you start a coding session, Boss now makes its full set of management tools available to the agent running inside that session. This means the agent can look up session state, read settings, and take actions it previously had to guess at or skip. You do not need to configure anything; it happens automatically for every new session.

This also extends to sessions you run in detached (headless) mode. You can now send follow-up messages to a running detached session and get its status remotely, without needing to be attached to a terminal.

Features

  • More MCP tools available in-session. All the fields you can edit in the Boss interface are now also reachable by the agent through MCP tools, so the agent and the UI stay in sync.
  • boss env command. Running boss env now prints a self-describing summary of the current environment and what Boss is capable of, useful for debugging or just getting oriented.
  • Headless session control. Detached sessions now accept messages and report status remotely. Boss will also refuse to send conflicting instructions while a headless run is already active.

Improvements

  • The GitHub and merge buttons in the action bar are now gated on actual PR and check state. The GitHub link updates if a PR number appears mid-session, and the merge button only appears when checks are passing, matching what the backend will actually allow.
  • Boss now automatically archives dependabot repair sessions after their pull requests are merged, keeping the session list tidy.
  • The changelog you are reading now has a home on the website, updated with each release.

Fixes

  • Fixed an issue where single-line prompts in scheduled (cron) sessions were pasted but never submitted, causing those sessions to silently do nothing.
  • Fixed an issue where the chevron indicator on the session screen could fall out of sync when navigating with the keyboard.
  • Fixed an issue where Boss could send a chat message to the wrong session after a restart.
  • Fixed an issue where the chat-wait command returned no result if the session was already idle, or if the wait timeout was very short.
  • Fixed an issue where plugin verification could fail at startup due to a missing checksum file; the checksum manifest is now built and shipped as part of each release.
v1.57.0

v1.57.0

Features

  • Per-session and per-cron model selection. Choose the model for a session or a scheduled job from a free-text model field on the cron form; the choice threads all the way through to the agent runner.
  • boss rename. Rename a session from the CLI, with the same action exposed over MCP.
  • Full chat control via MCP, CLI, and the hosted gateway. Manage and steer chats programmatically from any of the three surfaces.
  • Clearer cron settings. Repo-settings automation toggles are grouped under an “Automations” heading, with more descriptive save/cancel labels.
  • Stronger plugin trust. Plugins are now verified against a signed, SHA-256 manifest and a trusted-path ownership check before they load.

Improvements

  • Finalize and repair errors are surfaced directly in the TUI and the web session list, so there is no more digging through logs to find out why a run stopped.
  • Session environments are hardened with canonical BOSS_* variables set on every chat, and the session-context prompt is drift-proofed.

Fixes

  • Paste now works in every TUI text field.
  • The cron list is ordered alphabetically by name.
  • Cron finalize is gated on the run actually completing, and stranded runs are recovered when a Stop-hook signal is lost.
v1.56.0

v1.56.0

Features

  • Inline repo configuration. Set a repository’s options right on the add wizard, then open straight into its settings so the add and edit forms stay in sync.
  • Agent-suggested titles. Cron finalize proposes meaningful PR and session titles instead of leaving the defaults.
  • Honest auto-merge. A clearer auto-merge label plus a per-repository “automatically fix checks” toggle.
  • Public security page. The marketing site gains a security page and footer link.

Improvements

  • Repo automation toggles are aligned across the add and edit screens.
  • A new bs-sweep-plan cron skill for scheduled planning work.

Fixes

  • A successful repo add now routes to settings even if a background refresh fails.
  • Stranded cron runs (logless or with a dead agent) are reliably reaped, and pausing a session now halts all repair, not just failing checks.