Skip to content

Changelog

What's new in Bossanova.

v1.72.0

v1.72.0

Merging status is now visible

When Boss is in the process of merging a pull request, the session list now shows a “Merging” status so you can see what’s happening without having to guess. Previously there was no indicator during this step, which made it easy to think nothing was going on.

Features

  • Boss now warns when a blocker is itself blocked. When Boss auto-links a blocking ticket during planning, it will flag if that blocker is transitively stuck behind something else. This surfaces hidden bottlenecks before they quietly stall your work.
  • API docs are now versioned and published. Each release of the Bossanova API now has its own reference page, along with an API changelog so you can track what changed between versions.

Improvements

  • TUI proof recordings are more reliable and easier to watch. Captions are now synced to the video clock and burned along the bottom of the frame, stale captions no longer linger between scenes, and video files are properly normalized so they play back correctly.
  • Boss now exits with an error when a TUI proof is incomplete or a scenario is missing, rather than silently succeeding. This makes broken proof runs much easier to catch.

Fixes

  • Fixed an issue where the web app could show Boss as offline after the background service restarted, even though everything was running fine.
  • Fixed an issue where a stalled terminal connection could get stuck in a state where Boss appeared online but was not actually sending output. The stuck state is now detected and cleared automatically.
  • Fixed an issue where reconnecting to a session could behave incorrectly after a failed or partial connection attempt.
  • Fixed an issue where database conflicts during session updates could cause writes to fail silently instead of retrying.
v1.71.0

v1.71.0

Accounts Management in the TUI

You can now manage your Claude and Codex accounts directly from the Boss terminal interface, without leaving the TUI. The new Settings → Accounts screen lets you view all connected accounts, see their health status, cooldown state, and last-test results, and edit labels, email, or priority inline. You can also register new accounts, run a live connection test, and safely disable or remove accounts you no longer need, all from the keyboard.

Features

  • Account registration flows in the TUI. You can add a new Claude or Codex account without switching to the web UI. The registration flow runs natively in the terminal.
  • Account detail and editing. Select any account to see its full details, including status, usage columns, and timestamps. Edit fields inline and save without leaving the screen.
  • Disable and remove accounts from the TUI. Both actions include a confirmation prompt so you do not accidentally remove an account that is still in use.
  • Account health and cooldown visibility. The accounts list and detail screen now surface health state, cooldown timers, and last-test error details so you can see at a glance why an account might not be getting work.
  • Clearer rotation status when no account is available. When Boss cannot assign work because no account is eligible (for example, all are disabled or unhealthy), it now reports that specifically rather than giving a generic “no capability” message. This shows up in the TUI and the accounts list.
  • boss repair start command. If auto-repair stops running, you can now restart it from the command line with boss repair start instead of having to restart the whole service. Boss also re-arms repair automatically after a restart.

Improvements

  • When you finish editing a cron job and return to the list, the job you just edited is highlighted so you can see exactly what changed.
  • Emptying the trash now shows a live progress count so you know it is working on a large deletion rather than sitting silently.
  • Boss now avoids starting a new session for a ticket whose pull request has already merged, catching cases where work would otherwise be duplicated.
  • Cron sessions that got stuck mid-flight during a previous interrupted run are now cleaned up automatically on startup.
  • If a chat session gets stuck waiting on a question for more than 15 minutes, auto-repair can now move past it instead of stalling indefinitely.
  • Stopping or restarting Boss no longer accidentally terminates plugin processes belonging to other running Boss instances on the same machine.
  • The docs now include an upgrade guide and a note that Boss automatically picks up a .env file in your worktree.

Fixes

  • Fixed an issue where session titles were sometimes derived from internal metadata lines rather than the actual content of the conversation.
  • Fixed an issue where restarting Boss could briefly show a false connection error.
  • Fixed an issue where switching to a different user account could leave the previous session in an inconsistent ownership state.
v1.70.0

v1.70.0

Plugin verification

Boss now checks that any plugin it loads is signed and unmodified before running it. If a plugin binary does not pass the integrity check, Boss will refuse to run it. This is a quiet but meaningful safety improvement: you no longer have to take on trust that the tools Boss executes are the ones that were shipped.

Features

  • boss new is smarter about picking repositories. You can now type a short unique prefix of a repository ID and Boss will resolve it automatically. Boss also derives a session title for you when one is not provided, and rejects inputs that look like display IDs rather than silently picking the wrong thing.
  • Archiving is now concurrent. If you have several sessions to archive, Boss processes them in parallel instead of one at a time, so bulk cleanup finishes faster.
  • Boss can now handle a login without restarting. Running boss login while Boss is already running now re-registers the account correctly in the background. Previously this could leave the session in a misconfigured state until you restarted.

Improvements

  • Boss routes certain background tasks to a lighter-weight model tier, which keeps costs down without changing the results you see.
  • Boss reuses context it has already read within a session rather than re-fetching it on every turn. This reduces unnecessary work and keeps things moving.
  • The web Daemons list now shows the correct running instances across all servers. Previously it always appeared empty in production.
  • Disabled cron jobs now show their “Gated” status in a neutral grey rather than orange. Orange implied something needed attention; a disabled job is just off.
  • Fixed an issue where duplicate cron saves could occur.

Fixes

  • Fixed an issue where switching between servers could cause a false connection error during a brief authentication hiccup. Boss now retries gracefully instead of surfacing the error.
  • Fixed an issue where the tool discovery step for long-running sessions could behave differently across runs, occasionally causing tasks to start in an inconsistent state.
  • Fixed an issue where the web Daemons list was always empty, even when instances were running.
v1.69.0

v1.69.0

Smarter account management and automatic failover

Boss now manages multiple Claude accounts more actively. When one account is near its usage limit, Boss can automatically switch to a healthier account mid-session, so your work keeps moving without manual intervention. A local proxy handles the credential switching transparently, meaning the Claude session running in your terminal sees a valid key at all times without you touching any config.

Boss also now picks the best available account from the start, choosing accounts with more headroom rather than defaulting to whichever one was used last.

Features

  • Automatic account rotation. When an account hits an auth error or approaches its usage cap, Boss can now switch to another account automatically. Sessions continue without you needing to manually intervene or restart.
  • Utilization-aware account selection. Boss now picks the account with the most remaining capacity when starting a session, rather than always defaulting to the same one.
  • Proactive rotation (opt-in). There is a new opt-in setting that lets Boss rotate away from an account before it actually hits its cap, reducing the chance of a mid-task interruption. This is off by default.
  • /boss switch is now credit-free. Typing /boss switch inside a Claude session no longer consumes credits to process the command. Boss intercepts it directly.
  • Usage-limit detection. Boss can now recognize when Claude’s interface is showing a usage-limit banner, which helps it decide when to rotate to another account.
  • boss settings --managed-accounts flag added for configuring managed account behavior from the command line.
  • Linear API key from your project. If your repository has a LINEAR_API_KEY in its .env file, Boss now passes it into sessions automatically. You no longer need to set it globally.

Improvements

  • Account IDs are now shown in full in CLI output rather than being truncated.
  • The account list screen has an improved layout.
  • Boss now logs a diagnostic at startup when account rotation lanes are unavailable, making it easier to understand why rotation might not be working.
  • When Homebrew updates Claude’s installation path, Boss now detects and corrects the stale path automatically rather than failing silently.
  • Sessions that are created for planning work (with no code changes expected) now complete cleanly instead of being flagged as errors.

Fixes

  • Fixed an issue where chats between agents could be assigned to the wrong account, potentially causing auth failures.
  • Fixed an issue where sessions created before managed accounts were configured could be left without an account binding, causing them to miss rotation.
  • Fixed an issue where an account that cannot be verified due to a missing runner was shown as failed rather than temporarily unavailable.
  • Fixed an issue where tmux startup errors were not surfaced clearly, making terminal launch failures hard to diagnose. Boss now auto-recovers a missing TERM setting and shows the real error when launch fails.
  • Fixed an issue where a chat session running alongside others could pick up the wrong account’s credentials.
  • Fixed an issue where restarting Boss could leave a session showing as active when its status was actually stale.
v1.68.0

v1.68.0

Improvements

  • Boss now reads Claude usage more reliably. Previously, usage could appear lower than it actually was if certain setup activity wasn’t counted correctly. That gap is now closed, so what you see in the product reflects your actual consumption.
  • Starting and restarting Boss is more stable. Boss now waits a bit longer for its background process to fully come up or shut down before reporting a problem, which means you’re less likely to see a false connection error when restarting.
v1.67.0

v1.67.0

Account usage is now visible in Boss

You can now see how much of your AI usage quota is left for each connected account, directly from the boss account ls command and the MCP list_accounts tool. Boss checks usage for both Claude and Codex accounts and shows utilization levels alongside reset times. Pass --refresh (or refresh in MCP) to fetch the latest numbers live rather than returning the cached snapshot.

This also fixes a significant bug where Boss could incorrectly decide that a freshly-switched account was at its limit. When Boss rotates to a new account, it now checks that account’s actual usage before marking it as exhausted. Previously, a banner left over from the previous account could trigger a false alarm, causing a cascade where all accounts got incorrectly cooled down.

Improvements

  • boss skills sync is now a standalone command. Running it refreshes your skills without going through an interactive menu, which makes it usable in scripts and makes edits to repo-level skills take effect in live sessions without a restart.
  • Upgrading Boss from within the app now shows a spinner while the upgrade is in progress, so it no longer looks frozen.
  • After triggering a restart from the upgrade screen, Boss waits for the connection to come back before showing any status. Previously it would sometimes flash a misleading “cannot connect” error immediately after restart.

Fixes

  • Fixed an issue where rotating to a new AI account could cause a cascade of false “account exhausted” signals, eventually marking all accounts as unavailable when they were actually fine.
  • Fixed an issue where plugins could stop responding after an unexpected exit. Boss now automatically restarts them and resumes any work that was in progress.
  • Fixed an issue where adding an account that was already registered could produce errors or duplicate entries.
  • Fixed an issue where Codex chat transcripts were sometimes not captured correctly.
  • Fixed an issue where cached usage data could be dropped during a probe outage instead of being preserved.
v1.66.0

v1.66.0

Account switching works the way you expect it to

Boss manages accounts per provider now. When you switch accounts, Boss looks only at the accounts registered for that provider rather than mixing everything together. If you reference an account label that exists under a different provider, you get a clear error instead of a silent wrong-match. New sessions also bind to your registered accounts based on your current rotation settings, so work goes to the right account from the start.

Improvements

  • Scheduled sweeps (debt and mutation) now skip entirely when there is already an open PR in progress for that sweep, avoiding unnecessary work when nothing new would be found.
  • Chat sessions you rename explicitly now keep that name after a restart. Previously an explicit rename could silently revert.
  • Diagnostic information shown during smoke checks is now redacted before it surfaces, so sensitive details stay out of logs.

Fixes

  • Fixed an issue where restarting after a recent release could trigger retry failures for certain operations that had already completed.
  • Fixed an issue where account switching could silently match the wrong account when an ambiguous label existed across providers.
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.