Changelog
See the full changelog at /changelog.
Quick links
- Sidekick Lite — Claude provider, core features.
- Sidekick Pro — Cursor + Codex providers.
Sidekick Lite
[Unreleased]
Changed
- The web cabinet now separates Lite and Pro downloads into accessible tabs and initially shows only the four newest compatible releases per edition, with an explicit control to expand or collapse the rest of the release archive.
- The Asset Store installer now installs fresh copies and upgrades directly, but asks before reinstalling the same version, replacing an unknown/custom version, or downgrading any managed Lite/Pro package; downgrade prompts show the installed and target versions with a compatibility warning, cancellation removes only the installer bootstrap, and successful installs are verified at the exact requested version while externally managed UPM packages remain untouched.
[2.6.2] - 2026-08-02
Fixed
-
Rebuilding the Agent Host after unrelated repository commits no longer produces a different DLL solely because the .NET SDK embedded the current Git revision, avoiding a false same-version payload-change failure in Build Agent Host.
-
Claude sign-in now runs through the installed Claude CLI (
claude auth login) and verifiesclaude auth status; Sidekick no longer writes or interprets Claude OAuth tokens in Keychain or.credentials.json, preventing a successful Sidekick-only login that the CLI still treated as signed out. -
Agent Host startup, attach, shutdown and reload recovery no longer block the Unity main thread; cancelled or stale startup generations cannot commit a turn or overtake quarantined output, and duplicate sends are rejected before a second user message is appended.
-
Agent Host token files on POSIX are now written through a restrictive atomic temp-file transaction: mode 0600 is verified before the secret payload is written, and an atomic same-directory rename replaces the old token without a world-readable write window; any failure prevents daemon launch.
-
Persisted context-attachment envelopes now carry an explicit schema version; legacy and current envelopes remain readable, unknown schema versions or malformed inner payloads are isolated per attachment, and a bad attachment no longer aborts draft or conversation persistence.
-
Proprietary asset notices and the current Lite architecture snapshot are now synchronized with the release templates and the actual six-asmdef assembly layout.
-
Windows headless launches now resolve canonical npm node-backed
.cmdshims directly tonode.exeplus their fixed script prefix, preserving caller arguments byte-for-byte and failing closed for malformed/custom shims; the interactivecmd /kterminal path remains an explicit residual. -
Claude stream output lines that are malformed JSON or lack a non-empty
typeare now retained only as raw diagnostics instead of appearing as assistant text. -
Account-token sign-out and successful macOS Keychain writes now scrub the legacy plaintext token from Claude’s config while preserving foreign CLI keys; Windows secret-file ACLs grant the current user access even when a different owner is recorded.
-
CLI launches no longer warn about cmd.exe
%VAR%expansion for lone or ordinary%characters; the warning is reserved for percent-delimited patterns. -
The Sending report dialog’s loading indicator now actually spins. Its ring only faded and scaled in place, which read as a stalled upload; the rotation is layered on top of that breathing pulse, which is unchanged.
-
Hardened CLI response streaming against a rare background-thread timing issue that could cause output to silently stop appearing mid-session, and removed an unused legacy code path that carried the same risk.
-
If the agent host daemon stops responding while connecting or starting a turn, Sidekick now fails that turn quickly instead of freezing the Editor — previously an unresponsive daemon could hang the Editor with no recovery but force-quit.
-
The generated MCP config — which can include server credentials such as HTTP headers or environment variables — now defaults to
Library/Sidekick.Mcp/instead of your project folder, keeping it out of version control by default; a copy left behind at the old location by a previous version is removed automatically. If you use authenticated MCP servers and previously committedSidekick/mcp-config.generated.json, treat those credentials as exposed and rotate them — removing the file now does not remove it from your repository’s history. -
Hardened the shell fallback used to launch the CLI (and the generated macOS “log in” script) so that CLI paths, arguments, and working directories are always safely quoted — closing a shell-injection edge case and a crash (“Unfinished quote”) that could previously occur if a path or argument ended in a backslash.
-
The sign-in callback is no longer logged with its full URL. The login authorization code and state used to be written to Sidekick’s diagnostics log (and, for future problem reports, the captured session log) verbatim; only the request method, path, and which parameters were present are recorded now.
-
Your Sidekick license key and account session token are no longer stored inside the Claude CLI’s own config file — they now live in a dedicated Sidekick-owned file, encrypted at rest on Windows (DPAPI) and owner-only on macOS/Linux. Existing keys migrate automatically the next time Sidekick reads them. Every credential file Sidekick writes (Claude’s included) is now locked down to owner-only access before any content is written, closing a brief window where a new credential file was readable by other accounts.
-
Hardened provider switching against a rare race where a session already in flight could briefly consult another provider’s settings instead of its own — most likely when switching providers quickly, closing a Sidekick window mid-session, or running multiple Sidekick windows side by side.
-
Editing a very large file (over 1 MB) no longer triggers a full synchronous read on the main thread just to compute a diff preview’s starting line number; files over that size now show a generic diff header instead of momentarily hitching the Editor.
-
A restored Scene View screenshot chip with no recorded camera rotation no longer shows (and sends to the model) a false “unrotated” reading — the rotation line is now omitted instead of displaying a fabricated 0°,0°,0°.
-
Fixed an Editor hang: a Scene View screenshot chip left sitting in the composer could freeze the Editor (and grow memory without bound) whenever its draft was saved — reopening the window, switching CLI providers, or a script recompile. The chip’s camera position/rotation metadata is now stored in a plain, bounded format.
-
Opening a conversation (or looking up its token usage) no longer reads the whole session transcript into memory at once. Claude CLI sessions can grow to tens or hundreds of megabytes with long tool output, and loading one used to momentarily spike memory by the size of the file on the Editor main thread; conversations are now read line-by-line instead, with identical results.
[2.6.1] - 2026-07-28
Added
-
Screenshot sources are now extensible. Scene View and Game View captures moved behind a capture-source registry, and the composer’s + menu and the
/screenshot-scene//screenshot-gamepalette commands are generated from it — so a newly registered source (including ones added by Sidekick Pro) shows up in the menu and the palette without any UI changes. Existing entries, labels and slash commands are unchanged. -
Docked Tasks panel above the composer. A collapsible card sits directly on top of the input box, tracking the agent’s tasks live as it creates and updates them (TaskCreate/TaskUpdate) or revises its to-do list — a header with a completed/total counter and mini progress bar, expanding to one row per task with per-status styling (pending, in-progress with a spinner, completed, cancelled). Long lists scroll within the panel instead of crowding out the chat, keeping the running task in view, and the panel folds itself back to the header once everything is done. Task tool calls also render as a compact inline card in the chat, and when the panel is collapsed a brief toast announces tasks starting and completing.
-
Report a problem. A new “Report a problem” action — available from Project Settings ▸ Sidekick and the command palette (Report a Problem…) — opens a modal where you can describe an issue, attach screenshots or text/log files, and optionally include the current session’s captured logs (on by default, with an inline preview of the exact text sent). Submissions get a Report ID you can reference in follow-up.
-
Automatic error report prompt. When Sidekick’s own code logs an unexpected error — a thrown exception, a failed CLI/agent-host process, or a relayed CLI error — a dismissible banner now appears inline in the chat offering to report it, pre-filled with a short error summary and session logs included by default, so you don’t have to go looking for Project Settings or the command palette. It shows one banner at a time; dismiss it and the next error shows a fresh one.
-
Internal diagnostics log. Sidekick now writes its own diagnostics to a size-rotated log file at
Library/Sidekick.Logs/sidekick.log, kept separate from your project and editor logs, with an Open Logs Folder button in Project Settings ▸ Sidekick. This lays the groundwork for one-click problem reporting. -
“Log Prompt/Response Content” setting (off by default). A new toggle in Project Settings ▸ Sidekick opts in to capturing raw prompt/response content — what you send to the CLI and what it streams back — under a dedicated
PromptIOlog category. Left off, that content never touches the diagnostics log.
Changed
- Verbose Logging now also controls Sidekick’s Unity Console output. Warnings and errors always show; info and verbose diagnostics appear in the Console only when Verbose Logging is enabled — the internal log file captures everything regardless.
- Raw prompt/response content is no longer logged by default. It is now gated behind the new Log Prompt/Response Content setting (off by default) rather than Verbose Logging, so enabling Verbose Logging alone no longer writes prompt/response text to disk.
- All sub-agent chat drill-ins are now a Sidekick Pro feature. Opening an agent’s chat (tray chip or the ↗ button on a Task card), expanding a lane’s activity/transcript section, and loading sub-agent transcripts now require Sidekick Pro — the drill-in views and the transcript reader live in the Pro package and register through a capability seam, replacing the 2.6.0 rule that only live agent chats were gated while finished transcripts stayed viewable. On Lite, tray chips show a lock and every drill-in opens the Pro paywall; sub-agent event attribution (agent activity never floods the main chat), the Active Agents tray, and Task cards with live status badges and final summaries remain included.
Fixed
- A Pro paywall opened for a relocated feature (such as sub-agent chats) that an older, already-installed Pro package doesn’t provide now shows an Update Pro dialog — a one-click in-place upgrade — instead of the full-price Buy dialog. The paywall reads live feature availability, so this also covers in-chat MCP management when a stale Pro package is present.
- Public package documentation is now separated from private plans and runbooks. Git/UPM installs retain the bundled HTML guide and Lite contributor architecture, Asset Store installs fall back to the hosted guide when
Documentation~is unavailable, and the OSS publisher excludes internal docs plus local IDE/build artifacts.
[2.6.0] - 2026-07-16
Added
-
Active Agents tray with tab-style switching between the main chat and each sub-agent’s own chat. A collapsible chip row below the conversation header lists every spawned agent; clicking a chip jumps to that agent’s dedicated chat view. The main timeline is hidden while an agent tab is open and the composer is locked with a contextual hint; clicking the breadcrumb ↩ returns to the main chat. Conversation switches auto-return to the main tab.
-
Redesigned sub-agent lanes: status badges, live activity, open-chat navigation. Each Task tool card now shows a status badge (RUNNING / QUEUED / DONE / FAILED), a pulsing dot for live runs, up to six recent tool-use activity rows, a summary card when complete, and a ↗ button that opens the agent’s full chat view. Clicking the lane header toggles the expanded activity section.
-
Live sub-agent chats are a Pro feature on Lite; finished agent transcripts stay viewable. Running and queued agent tabs show an upgrade prompt on Lite; completed and failed transcripts are always accessible.
-
Sub-agent chats are now first-class. When Claude delegates work to sub-agents (the Task/Agent tool), their activity no longer floods the main conversation as if the assistant said it. Each spawned agent renders as a collapsible lane on its Task tool card — agent type, task description, live status, and token/tool stats — and expands into the agent’s own transcript (messages, tool calls, thinking). Background agents keep streaming into their lanes after the main turn ends, the Active Agents tray shows how many agents are still running, task notifications flip lanes to done/failed, and the follow-up turn the CLI starts automatically after a notification now renders as a normal assistant turn instead of being silently dropped. Interrupting the session marks still-running agents as interrupted. Historical conversations get the same treatment: sub-agent transcripts stored by the CLI are discovered per session and lazy-loaded when a lane is expanded. Permission prompts raised by a sub-agent are labeled with the requesting agent. Claude is the only provider currently known to emit the required sub-agent event stream.
-
MCP status & management moved into the chat. The chat status bar now has an MCP chip. With Sidekick Pro installed it opens a live panel listing each configured server with its status, scope, transport, and — for connected servers — the tools it exposes, plus full per-server management for Claude (enable/disable, reconnect, authenticate with browser OAuth, clear stored auth, and restart the CLI session) over the running Agent Host session — no separate process just to read status. Without Pro, the chip opens a short upgrade prompt. Live MCP management is a Sidekick Pro feature (see the Pro changelog); the MCP page in Project Settings now focuses on server configuration and points you to the chat.
-
Plans now resolve inline in the chat instead of a separate dialog. When the assistant proposes a plan, it appears as an expandable plan card (a
plan.mddocument you can expand to full screen) with Accept, Adjust, and Deny controls right on the card. Adjust opens a feedback field so you can ask for changes without leaving the conversation; Deny keeps the assistant planning. The card remembers its decision as you scroll. This now covers both Claude’s “exit plan mode” approval and Codex’s “implement this plan” prompt; for engines whose plan approval offers only fixed choices (Cursor), the Adjust field is hidden rather than silently dropping what you type. -
Large clipboard pastes become file attachments. Pasting text above a configurable size (default 3 000 characters) into the composer no longer floods the input field: the text is saved to a temporary
.txtfile and attached as a context chip — showing character and line counts — that the agent reads with its own file tools, while a short bracketed reference is inserted at the caret. Chips survive domain reloads, provider switches, and saved conversation history; clicking one opens the file. The threshold lives in Project Settings ▸ Sidekick (set it to 0 to disable the diversion), and orphaned paste temp files older than a week are cleaned up once per Editor launch.
Changed
- Sidekick sessions now run through Agent Host as the only in-editor runtime path. The legacy runtime toggle and silent in-process fallback path are gone: when the daemon cannot start or reconnect after a Unity domain reload, Sidekick now surfaces an explicit runtime error instead of quietly resuming through a different launch mode.
- Claude Plan/Act switching now uses the live permission-mode channel when possible, so entering or leaving Plan mode no longer interrupts the running session unless the selected permission mode still requires a relaunch.
- Reworked the Extended Thinking toggle for Claude. It is now a true reasoning master switch — on emits
--thinking adaptive(plus the selected effort), off emits--thinking disabled— and is enabled by default. The separate Max Thinking Tokens field has been removed (reasoning depth is driven by effort). Changing the model now applies live to a running session; changing effort or the thinking toggle resumes the session on the next turn so the new launch flags take effect without losing the conversation. - Local command output in chat (e.g.
/cost,/model,/context) now renders as a distinct, muted notice block instead of masquerading as an assistant reply, and embedded ANSI color codes are stripped. - The MCP page in Project Settings now focuses on server configuration (adding/editing servers, config source, recommendations). Live status and the external-servers inventory that used to live there have moved to the chat status-bar panel; the page now points you to it.
- Claude now runs through the same shared session-backend path as Codex and Cursor: the provider scope constructs one persistent session client that serves turns, the live MCP control channel, and session lifetime. The legacy
ProcessManager-owned client-creation path (and with it the composition gap that broke Codex/Cursor startup — see Fixed) has been removed, so the Agent Host process-host factory has a single injection point for every provider.
Fixed
- Context chips for files outside the project (e.g. the temp files created for large clipboard pastes) no longer log
Invalid AssetDatabase patherrors to the Unity console: asset icon lookup, ping/select, and open-asset actions now skip AssetDatabase entirely for non-project paths and fall back to the generic file icon. - Permission prompts, AskUserQuestion overlays, and plan-approval cards you had already answered no longer reappear after a Unity domain reload. The Agent Host intentionally replays the in-flight turn after a mid-turn reload (most commonly triggered by approving an edit to a
.csfile), but answered control requests are now journaled in reload-surviving storage and suppressed on replay — while requests that were still unanswered at reload time correctly re-prompt. Session-scoped “Always allow” decisions also survive domain reloads now instead of silently resetting on every recompile. - Modified Enter in the chat composer now inserts a newline without dropping focus or losing the caret, so
Shift/Ctrl/Cmd/Alt+Enterbehaves consistently with the active text field instead of bouncing focus out of the composer. - Codex and Cursor sessions failed to start through the Agent Host runtime: opening the chat logged repeated
no process host factory was injectedcomposition errors and the CLI immediately exited with code -1. Shared provider session clients now receive the Agent Host process-host factory at the runtime lease seam before the session can start. - Several sub-agent chat bugs: a message’s thinking/text blocks or batched tool results sharing one CLI-assigned uuid no longer collapse to a single entry in a sub-agent’s lane; array-form tool_result content (a list of text blocks) now parses instead of silently dropping the whole message; attributed user-role text from a sub-agent now renders instead of being dropped; a model/thinking/effort relaunch on a live session no longer aborts otherwise-healthy running sub-agents; a sub-agent transcript that hasn’t finished flushing to disk yet is now retried on the next expand instead of being marked permanently empty; and releasing a session runtime client now unsubscribes every relayed event instead of leaking handlers on provider switches.
- Sub-agent views now update live while agents run. The Active Agents tray, Task-card lanes, and an open agent chat all refresh as agent events stream in, instead of only catching up on the next full timeline rebuild — and each streamed sub-agent event now repaints just the affected Task card rather than rebuilding the entire visible timeline, keeping long conversations responsive while agents work.
- Reopening a conversation from history now reports honest sub-agent statuses: agents that were interrupted mid-run reload as FAILED with an “Interrupted” caption instead of DONE, completion notifications remain authoritative over that caption, and reloading history during a live session no longer overwrites the state of still-running lanes.
- Two turn-lifecycle races around Stop and auto-resume: an auto-resume turn whose start arrived in the same event batch as the previous turn’s completion is no longer silently dropped, and a prompt sent immediately after a task notification now briefly defers so it can’t steal the auto-resume turn’s completion and misattribute its stream.
- Task-lane expand/collapse now repaints reliably from both the header and the chevron (the chevron was inert), lane headers rebuild in place so the live-lock icon tracks state, and spinner/pulse animations no longer leak per start/stop cycle — including after un-docking and re-docking the Sidekick window, which previously froze the tray and agent chat permanently.
- Sub-agent transcripts are now read off the Editor main thread, so expanding a lane with a large transcript no longer stalls the UI.
- A mid-turn domain reload no longer corrupts the main chat’s tool cards when the Agent Host replays the in-flight turn: a replayed tool call now re-adopts the card already restored from history instead of inserting a duplicate row, a completed tool no longer regresses to a running spinner, and a replayed result no longer double-appends its output.
- The same replay hardening for sub-agent lanes: replayed events racing a lane’s lazy transcript load no longer duplicate its messages or double a tool’s output, and a replayed task-start no longer resurrects a finished lane as RUNNING (while still correctly reviving lanes a mid-turn reload had marked “Interrupted”).
- Stopping a turn or a CLI process exit now marks only the owning conversation’s agent lanes as interrupted instead of whichever conversation is currently open, and switching back to a conversation whose lanes were left RUNNING with no live turn behind them reconciles those lanes to interrupted instead of leaving them spinning forever.
- Two auto-resume stalls after sub-agent turns: a timed-out wait for the CLI’s automatic follow-up turn no longer re-charges every later prompt with the same full wait, and a stale task notification (for a task already cleared by an interrupt) no longer defers the next prompt at all.
[2.5.0] - 2026-06-27
Added
- New Open in Terminal command (type
/in the composer) that opens a real OS terminal at your project root and launches the active CLI — Claude, Codex, or Cursor — as a fresh interactive session, for when you want the full terminal experience alongside the in-editor chat. - Two new Claude permission modes — Accept edits (auto-accepts file edits but still asks before running commands) and Auto (a model classifier decides which actions to allow, erring toward asking) — alongside the existing Ask before edits and Edit automatically. The status-bar permission control is now a menu you pick from instead of a button that cycles one click at a time, and every mode is available in Plan mode too.
Changed
- Redesigned how Terminal / Bash tool calls appear in chat. Each call is now a compact one-line card — a terminal glyph, the command’s description, an output line-count, and a chevron — that’s collapsed by default and expands on click. Expanding shows the command with its boilerplate prefix (e.g.
$(command -v git) -C /path) dimmed so the real action stands out, the full output in a scrollable block, and Copy command / Copy output buttons. A running command shows an animated spinner and a failed one turns its card red. Stacked terminal calls (a typical push-and-open-PR flow) now read as a few tidy lines instead of a wall of text. - Redesigned how MCP tool calls (from connected MCP servers) appear in chat. Each call is now a compact one-line card carrying a purple MCP badge, collapsed by default. When the call’s arguments include a human-readable title (e.g. a
titleordescriptionfield) the header leads with that and tucks the technicalserver.toolname inside; otherwise it showsserver.toolin monospace. Expanding reveals the call’s Input (the arguments, shown first) and Output as separate foldable sections with syntax-coloured JSON, so it’s easy to scan what was sent and returned. A running call shows an animated spinner and a failed one turns its card red with the error highlighted. - The collaboration mode formerly labelled Default mode is now Act mode, making its role clearer as the counterpart to Plan mode.
- Claude now runs as a single persistent session that stays alive between messages, so changing the permission mode (or model) takes effect mid-conversation without interrupting the assistant or restarting the CLI — switching how edits are approved no longer cancels the current turn. Your chosen permission mode now persists across Plan and execution, and is only reset to Ask before edits when you explicitly accept a plan with manual approval.
- Pop-ups — sign-in, the Pro paywall, the first-run setup wizard, and confirmation dialogs — now open as centered cards over a dimmed backdrop with a smooth fade, and close on Esc or an outside click. Sign-in deliberately stays put while a browser login is in progress so it can’t be dismissed by accident.
- Your Sidekick account and Pro upsells now open in place inside Project Settings (Project Settings ▸ Sidekick — “Manage account”, and the MCP page’s upgrade prompt) instead of switching focus to the chat window.
- Project Settings ▸ Sidekick now shows a single Sidekick Account section at the top with both your sign-in and Pro-license status, plus a Refresh button that re-syncs your license through your account without signing out and back in. License purchases now live entirely on the web; the in-editor license-key field and the manual “Download & install latest Pro” button have been removed — installing and updating Pro is handled by the upgrade prompt and the status-bar chip.
Fixed
- The Project Refresh dropdown in Project Settings ▸ Sidekick now uses the same styling as the other Sidekick dropdowns instead of falling back to the default editor look.
- Stopping Claude mid-turn now interrupts the assistant over the live session instead of killing the CLI process, so the persistent session stays alive and your next message continues the same conversation without a cold restart. Stopping also no longer appends a “[Stopped by user]” note to the interrupted reply — it simply stops where it was.
- The account panel opened from the status-bar Update chip no longer splits the chat window into two panes with no way to close it — it now appears as a dismissable pop-up over the chat.
- The account sign-in pop-up now closes itself the moment sign-in completes, so returning to the editor no longer lands you on the Sign out button by reflex.
- Starting sign-in from Project Settings no longer also pops the “Continue in your browser…” dialog in the chat window — the sign-in pop-up now appears only where you opened it.
[2.4.2] - 2026-06-22
Changed
- Chat markdown now renders each paragraph (and heading, list item, table cell, quote) as a single selectable text block instead of splitting it into many pieces around inline code and file links. This fixes text selection breaking mid-paragraph, words wrapping incorrectly at formatting boundaries, and the large number of UI elements per message. Inline code keeps its rounded highlighted chip; detected asset-path links keep their type icon and single-click ping / double-click open.
- Redesigned the Pro paywall with a refined layout: a wide “engines” card that groups the extra providers as labelled chips, dedicated Skills and MCP management feature cards, crisp vector icons drawn in-editor (including the official Model Context Protocol mark), a gold accent hairline, and a clearer price block above the call-to-action.
[2.4.1] - 2026-06-21
Added
- In-editor one-click updates: when a newer version is published, the status-bar chip turns into Update and installs it in place without leaving Unity — free updates after a quick sign-in, Pro updates via your license. The “update available” notification’s Update button now runs the same in-editor flow instead of opening the store page.
Changed
- The chat timeline now renders with a virtualized
ListView, removing the previous 50-message render cap — long conversations scroll smoothly from end to end. The assistant “typing” indicator now renders as the trailing row inside the timeline, below the last message, and scrolls together with the conversation instead of sitting in a fixed bar above the composer. - When the assistant presents a plan for review, the chat timeline now scrolls to the top of the plan instead of leaving you at its end — so you start reading from the beginning, with the approval prompt and a jump-to-bottom button still available below.
- The “update available” notification is now anchored at the top of the conversation area instead of overlapping the composer and status bar.
- The installer compares versions semantically (major.minor.patch): it skips reinstalling an equal-or-newer version and applies only genuine upgrades.
Fixed
- Context-window usage (”% used”) is now accurate. The window size is no longer hard-coded to 200k: the real per-model window reported by the CLI (e.g. 1M for Opus) is captured from turn usage events, remembered per model, and reused when loading conversation history. The live usage figure now also counts cached input tokens (prompt-cache reads/writes), so long sessions no longer read as nearly empty.
- Empty and brand-new chats now show the branded welcome screen (logo + a rotating inspiring subtitle) instead of a bare “Conversation is empty.” line over an empty list. The subtitle is picked at random from a curated set each time the welcome screen appears.
[2.4.0] - 2026-06-20
Added
- “MCP management” is now listed as a Pro feature so the paywall highlights live MCP introspection.
- Entitlement-aware paywall gate: owners who do not yet have the Pro package installed get a direct Install Pro action instead of a purchase prompt.
Changed
- MCP rework. Unity MCP (“MCP for Unity” / Coplay) is no longer pre-configured or auto-connected by default. The previously seeded built-in MCP server entry is removed on upgrade, and Sidekick no longer auto-connects the bridge on window open. Add MCP servers manually under Project Settings > Sidekick > MCP; the status-bar MCP button now opens that page.
- Redesigned MCP settings page: a sectioned server registry, branded collapsible server cards, a Form↔JSON editor with IDE-style auto-indent, a backend-fed “Recommended for Unity” section, and a Lite Pro-upsell teaser for external servers that routes into the paywall.
Fixed
- Readable gold paywall CTA and a compact, centred paywall modal.
- Pro invoice redemption now matches Pro by a stable
package_idinstead of the display name.
[2.3.0] - 2026-06-18
Added
- Firebase-backed delivery: signed-URL downloads that feed the existing two-stage installer, license/entitlement validation via RSA-signed tokens, and editor-driven self-update.
- Account login (OAuth) with an in-editor sign-in overlay, plus a web cabinet that redeems Asset Store invoices.
- Yearly editions with date-windowed download entitlements.
Changed
- The update service now resolves the entitled release for the signed-in account.
[2.2.0] - 2026-06-12
Added
- Dynamic provider capability discovery: Claude models, slash commands, and account info now come from the CLI
initializehandshake; Codex skills are introspected viaskills/list. - Skills surfaced as slash commands in the command palette, with a dedicated gold “Skills” section that doubles as a Pro entry point.
- Two-stage
.unitypackagedistribution installer (reconciler + payload) and a dev-side release exporter.
Changed
- The model preset popup now stays open after picking a preset.
Fixed
- Provider UI state is no longer clobbered by the registry fallback (per-provider persistence).
[2.1.0] - 2026-06-08
Added
- Pro paywall: a remote-config-driven offer with a Pro modal, locked provider rows in the selector, and a status-bar “Upgrade to Pro” chip — behind a remote kill-switch with a baked fallback config.
- In-editor update checker: compares installed Lite/Pro versions against a published
latestand surfaces a dismissable update notification with changelog and store links. - Marketing and documentation site (Astro + Starlight) with a published changelog and a Pro waitlist.
[2.0.0] - 2026-06-07
Changed
- Breaking: Lite/Pro split. The Cursor and Codex CLI providers have moved out of the base package into a new optional Ryx Sidekick Pro package (
com.ryxinteractive.sidekick.pro). The base (Lite) package now ships Claude only — install Pro to restore Cursor and Codex. SidekickSettingsnow stores provider-specific values through a generic provider-keyed bag instead of shared snapshot fields.
Added
- Per-provider settings as native Project Settings tree nodes with Lite/Pro ownership (Claude and Bedrock stay in Lite).
- MCP multi-server settings model (schema v2) with per-provider thinking and Bedrock options.
[1.4.0] - 2026-05-20
Changed
- Rebuilt the editor window on Unity App UI 2.x layered over UI Toolkit: a scoped App UI panel/theme bootstrap with dedicated popover, notification, and tooltip layers.
- Re-architected into a layered Presentation → Application → Domain structure with Infrastructure adapters; application logic no longer calls Unity Editor APIs directly, and assembly definitions enforce the dependency direction.
- Introduced MVVM ViewModels (composer, provider selector, permission overlay, AskUserQuestion, chat timeline) built on App UI
ObservableObject/RelayCommand. - Added an App UI Redux store for cross-cutting UI state (provider, turn, and permission slices) backed by pure reducers.
- Extracted message, per-tool, and attachment-chip rendering into factory and registry abstractions, fully encapsulating the markdown renderer.
- Migrated the attachment menu to an App UI Popover, the asset-refresh banner to an App UI Toast, and onboarding to an App UI Modal.
Added
- Architecture-guard tests that enforce layer boundaries and keep provider-scoped types inside their provider folders.
[1.3.2] - 2026-03-24
Added
- Cursor event routing for real-time communication with persistent Cursor sessions.
- Onboarding wizard now includes a Codex provider selection card with CLI-based authentication guidance.
- Conditional MCP server start/stop methods in
McpForUnityController, compiled only when theHAS_UNITY_MCPsymbol is present. - Provider-scoped runtime architecture (
SidekickArchitecture,SidekickWindowHost,PersistentConversationStorage) for isolated per-provider state management.
Changed
- Cursor output processing now uses batched pumping (16 lines per cycle) for improved streaming stability.
Fixed
- Cursor tool mapping now correctly routes tool calls; related UI tests updated.
[1.3.1] - 2026-03-12
Added
- Codex launch overrides that map Sidekick MCP server settings into session-scoped
mcp_serversconfig flags. - Local plan implementation approval: after a Codex plan-mode turn completes, Sidekick prompts the user to approve or reject running the plan locally.
Changed
- Codex sessions now advertise MCP support and restart the session when the effective MCP override set changes.
- Codex history reconstruction now tracks terminal sessions and properly extracts output from
write_stdintool calls; improvedrequest_user_inputround-tripping. - Expanded Codex provider tests to cover MCP override building, session startup arguments, and restart behavior.
[1.3.0] - 2026-03-08
Added
- Multi-provider CLI support with selectable
Claude,Cursor, andCodexruntimes in Project Settings. - Provider-specific history readers and event parsers for Cursor and Codex, including improved Cursor thinking/content parsing.
- Session-based runtimes for Cursor and Codex using persistent connections to each CLI.
- Provider-aware collaboration and permission mode configuration, including explicit plan/permission mode separation.
- Compatibility adapters that normalize
AskUserQuestionandExitPlanModeflows across provider schemas. - Inline
AskUserQuestiontraces for Codex sessions, including collapsible question details and recorded answers in the chat UI and restored history.
Changed
- Settings and runtime orchestration now resolve CLI paths, history storage, prompt transport, and MCP injection per active provider.
- Permission overlays and control-request handling now work consistently across session-based providers and remembered permissions.
- Codex plan-mode streaming now turns incremental and completed plan items into
ExitPlanModetraces, and dynamicrequest_user_inputcalls now round-trip through the session user-input flow. - Codex history recovery now falls back to scanning session files when the index is incomplete and prefers the newest file for duplicate session ids.
- Selecting the
planpermission preset now automatically aligns the collaboration mode toplan. - Expanded automated coverage for Codex provider flows, provider mode selection, plan-mode rejection, and runtime/permission behavior.
- Hardened Codex, auth, and settings tests to isolate persisted CLI path and environment state between runs.
[1.2.0] - 2026-02-28
Added
- MCP onboarding now handles missing
MCP for Unitypackage states and guides installation directly from Sidekick. - MCP onboarding now surfaces server status with contextual start/stop actions during setup.
Changed
- AskUserQuestion auto-advance: In multi-question dialogs, selecting an answer now automatically advances to the next unanswered question for faster navigation.
- Simplified the chat UI by removing the context panel and surfacing system-level failures directly in chat.
- Introduced centralized app and UI constants to keep menu paths, keys, asset references, and shared values consistent.
- Refined command palette styling, inline code rendering, and error presentation for a cleaner chat experience.
- Streamlined onboarding and login surfaces by removing obsolete terminal hints and tightening MCP setup UX.
Fixed
- MCP setup and package detection behave more reliably when the package is absent or the server state changes during onboarding.
[1.1.2] - 2026-01-27
Added
- MCP for Unity integration: New status bar section showing MCP server connection status with Start/Stop button when
com.coplaydev.unity-mcppackage is installed.
Fixed
- ExitPlanMode now renders directly in chat without nested ScrollView for better UX.
- Long chat histories no longer duplicate messages when scrolling up: message rendering is now windowed in the ScrollView (render-only; full conversation stays in memory).
- Auto-connect to already running MCP server on window open (configurable in settings).
- Optional auto-start MCP server feature (disabled by default).
McpConfigManagernow automatically uses MCP for Unity’s URL when connected.
Changed
- MCP section is hidden when Unity MCP package is not installed (uses conditional compilation via
versionDefines).
[1.1.1] - 2026-01-26
Added
- Persistent conversation restoration: The last opened chat is now saved per-project and restored when reopening the Sidekick window, even if newer chats were created in VS Code or CLI.
- Automatic fallback to new chat if the saved conversation is stale (24+ hours without updates) or no longer available.
[1.1.0] - 2026-01-26
Added
- @ Mentions for asset attachments: Type
@in the chat input to search and attach project assets (scripts, prefabs, text files) directly from the keyboard. The asset path is inserted as@Assets/...in the message text. - Asset mention insertion for drag-and-drop, file browser, and selection-based attachment flows - the
@Assets/...path is now automatically inserted at the caret position. ProjectAssetSearchServicefor fast asset search using Unity’sAssetDatabase.FindAssetswith fuzzy scoring.- Dynamic overlay positioning for command palette and asset mentions based on input area height.
Changed
- Command palette and asset mention overlays now reposition dynamically when the input area resizes (e.g., when context chips are added).
[1.0.2] - 2026-01-14
Added
- Auto-enable toolbar button on first install for improved discoverability.
- Changelog link in Help menu for quick access to version history.
Changed
- Improved process management with synchronous cleanup and explicit stop flag for better state handling.
- Enhanced conversation switching to stop active turns before changing conversations.
- Refactored UI interactions to consistently check for active turns using
IsTurnInProgress. - Updated toolbar button label from “New Chat” to “Open Chat” for clarity.
Fixed
- Toolbar button constructor parameter order for consistency.
[1.0.1] - 2026-01-14
Added
- Thinking UI with collapsible sections and chevron icons for assistant reasoning.
- Input field state persistence across domain reload and window close.
- System banner notification during Unity domain reload.
- Cursor-based pagination for optimized chat history loading.
- Collapsible input/output sections in tool call elements.
- Edit links for clickable diff file paths in tool responses.
- Auto-scroll to bottom during message streaming.
- Context usage tracking display in the UI.
- ExitPlanMode handling for plan mode control requests.
- Custom model name support in settings.
- Global typing indicator during assistant responses.
Changed
- Updated Unity compatibility to 6.0.0+.
- Enhanced table rendering and styling in markdown.
- Improved login overlay UI and branding.
- Refactored MCP configuration (renamed McpBridgeManager to McpConfigManager).
- Improved command handling and message processing.
Fixed
- Assistant message styling adjustments.
- Slash detection logic improvements.
- Model name handling corrections.
[1.0.0] - 2026-01-08
Added
- Sidekick editor window (Window → Ryx Sidekick) with streaming chat powered by AI coding CLIs.
- Project settings (Project Settings → Ryx Sidekick) including CLI validation and configuration.
- Authentication flows (Claude.ai OAuth, Console/API key, and third-party provider routing).
- Context attachments (project files + GameObjects) and image attachments (clipboard/drag&drop/screenshots).
- Command palette with built-in actions and auto-discovered CLI slash commands.
- Permission modal overlay, edit modes, and file change tracking with diff + revert.
- Optional MCP for Unity configuration support and onboarding wizard.
- Asset refresh modes and domain reload auto-resume.
Sidekick Pro {#pro}
[Unreleased]
[2.6.2] - 2026-08-02
Fixed
- Cursor-persisted context attachments now write the versioned envelope and isolate a single serialization failure without dropping neighboring attachments.
- Opening a Cursor conversation (or looking up its token usage) no longer reads the whole session transcript into memory at once, matching the same fix applied to Claude conversations — conversations are now read line-by-line instead, with identical results.
- Cursor history loading now discards a transcript when a streaming read fails mid-file instead of returning a partial, un-normalized conversation; the existing null/no-result contract keeps the UI in its empty state rather than Error.
- The Pro test assembly no longer ships with the package.
Sidekick.Tests.Prolived insidePackages/com.ryxinteractive.sidekick.pro/Editor/Tests/, so the release exporter —AssetDatabase.ExportPackage(…, Recurse)— carried all ~13,700 lines of EditMode tests into the installed package. In a project with the Unity Test Framework installed they even compiled, putting our test fixtures in your Test Runner. The tests moved toAssets/Editor/Tests/SidekickPro/(out of the package, same as the Lite tests), and an architecture guard test now fails the build if any test assembly reappears under a shipped package.
[2.6.1] - 2026-07-28
Added
- Editor captures from the command line (Unity Pipeline). With the optional
com.unity.pipelinepackage installed, Pro exposes two CLI commands:sidekick_capture_sourceslists the available capture sources, andsidekick_capturecaptures one to a PNG —--source scene_view,--source game_view, or--source window --window InspectorWindowfor any open editor window. Captures are read from the composited editor window, so gizmos, handles and overlays are included, which the Pipeline package’s owncapture_scene_view(a plain camera re-render) andcapture_editor_element(Unity 6000.7+ only) cannot do on Unity 6000.3. The PNG is written underTemp/sidekick-captures/by default — pass--save_pathfor somewhere else inside the project, and--include_base64to also get it inline. Without the Pipeline package nothing changes: the commands simply do not exist. One caveat: capturing the Game View during play mode while the editor is in the background needs Run In Background enabled in your project’s Player settings — otherwise the editor stops rendering when it loses focus and the capture returns a stale frame. - Screenshot any editor window. Pro registers a
windowcapture source into the base package’s capture-source registry, addressable by window type name (InspectorWindow) or title (Inspector). It is CLI-only for now, since it needs a window argument the chat menu cannot supply. - Codex sub-agent chat parity. Codex app-server collaboration events now drive live Task lanes, statuses, nested-agent activity, and thread-isolated messages/tools; persisted
thread_spawnrollouts are restored after reload and support Pro drill-in transcript loading. - Sub-agent chat drill-ins moved into Pro from the base package. Pro now ships the per-agent chat view, Task-card lane expansion (live activity rows + finished-transcript loading), and the Claude sub-agent transcript reader, registered into the base package’s
SubAgentDrillInFeatureRegistryseam on load. With Pro installed, all drill-ins work for live and finished runs; without Pro, the base package shows the paywall.
Fixed
- Codex guardian and child-agent rollout files no longer appear as duplicate top-level chats; legitimate unindexed root sessions remain discoverable.
- Codex 0.144.x model-cache deserialization failures that the CLI recovers from no longer appear as fatal Sidekick chat errors.
[2.6.0] - 2026-07-16
Added
- In-chat MCP management is a Sidekick Pro feature. Pro adds the live MCP panel behind the chat status-bar MCP chip. For Claude, it offers full management over the running Agent Host session — enable/disable a server, reconnect, authenticate (OAuth opens in your browser), clear stored auth, and restart the CLI session — alongside live status (connected/failed/needs-auth) and the tools each connected server exposes. For Codex and Cursor, the panel shows read-only status (servers, scope, transport, tools) from each CLI’s own inventory, with live actions hidden. In Lite (Pro not installed) the chip shows an upgrade prompt instead of the panel.
Changed
- Codex and Cursor now inherit the Agent Host-only runtime contract used by Sidekick sessions: reconnect/startup failures are surfaced explicitly instead of falling back to a legacy in-process path, which makes long-turn and reload verification deterministic during
2.6.0stabilization. - Codex can switch supported permission and plan/act modes on the live app-server session without interrupting the current turn.
- Codex Full Auto now maps to the app-server
workspace-writesandbox preset. Network access during Full Auto follows your Codex configuration ([sandbox_workspace_write] network_access) instead of being forced on, matching how the Codex app itself treats workspace-write.
Fixed
- Opening the chat with Codex or Cursor as the active provider failed with the Agent Host composition error (
no process host factory was injected) and the CLI exited immediately. Both providers’ shared session clients now receive the process-host factory at the runtime lease seam (fix lands in the Lite package) and start through the Agent Host daemon correctly.
[2.5.0] - 2026-06-27
Added
- Agent Host support for Codex and Cursor: the Codex app-server and Cursor ACP child processes are routed through the optional out-of-process Agent Host daemon (when enabled) so they survive a Unity domain reload. Codex reconnects in place after a reload — re-attaching to the surviving app-server and rebuilding the in-flight turn from the daemon’s replayed JSON-RPC stream without re-running the
initializehandshake. Cursor cleanly falls back to its existing session resume after a reload (its turn-completion is bound to a request id that does not survive the reload). The feature flag is off by default; with it off, behavior is unchanged.
[2.4.2] - 2026-06-22
Notes
- Version aligned with Lite for the SKU (no Pro-specific changes).
[2.4.1] - 2026-06-21
Notes
- Version aligned with Lite for the SKU (no Pro-specific changes).
[2.4.0] - 2026-06-20
Added
- Pro MCP introspection: live MCP server status, tools, and resources for Claude, Codex, and Cursor, surfaced as a read-only “External servers” inventory with secret masking.
Changed
- Codex provider conditionals simplified for readability.
Fixed
- The Codex MCP introspector now matches the live
mcpServerStatus/listshape.
[2.3.0] - 2026-06-18
Notes
- Version aligned with Lite for the licensed distribution SKU (no Pro-specific changes).
[2.2.0] - 2026-06-12
Added
- Codex skills introspection (
skills/list) feeding the Pro-gated Skills section in the command palette.
Fixed
- Resilient Codex
WorkingDirectoryfallback when the working directory is missing. - Skip Codex MCP overrides that collide with a server already defined in
~/.codex/config.toml(avoids the “url is not supported for stdio” error).
[2.1.0] - 2026-06-08
Added
- Codex and Cursor provider settings are now owned by the Pro package — provider-specific settings live alongside their provider.
[2.0.0] - 2026-06-07
Initial release of the Pro extension. Adds the Cursor and Codex CLI providers on top of the base com.ryxinteractive.sidekick package.
Added
- Cursor CLI provider (persistent session): provider, stream-event parser, history reader, and session client/host.
- Codex CLI provider: provider, stream-event parser, history reader, session client/host, and MCP config override builder.
SidekickProBootstrap([InitializeOnLoad]) registers the Cursor and Codex providers into the base package’sCliProviderRegistryat editor load — no changes to the base package are required to discover them.
Notes
- Requires
com.ryxinteractive.sidekick2.0.0+. Without Pro installed, the base package runs Claude only.