Changelog
Every notable change to Solenta, newest first.
0.24.0 2026-10-06
Added
- Real terminal. The Terminal pane runs a real shell, so prompts, Ctrl-C and full-screen tools like vim and htop work. Up to four splits per thread, and scrollback survives a restart.
- Files pane. Browse the thread's checkout, preview code with syntax colour, markdown rendered and images inline, and send a selected line range to the agent.
- Review the whole branch. Changes shows Uncommitted, Whole branch or This turn, so work the agent already committed stays reviewable. Diffs have syntax colour, split, wrap and ignore whitespace, and large diffs load per file instead of being cut off.
- Review comments go out together. A comment on a diff line becomes a chip in the composer, and all of them are sent as one prompt. Shift-click to comment on a range.
- PRs that close their own loop. Generate a PR title and body, pick the merge method, or auto-merge when checks pass. A failing check, a collaborator's review or a merge conflict sends the thread one follow-up turn with the details, up to three times per PR.
- Native compaction. /compact and the Compact button shrink the context in place on Claude and Codex instead of forking, and automatic compaction now shows in the thread with an accurate context ring.
- Composer. Drafts, attachments and pastes survive a restart, ↑ recalls your last prompt, and Send with Enter is an option in Settings.
- Queue and plans. Queued messages run one turn at a time and pause if a turn fails. Steer now sends a queued message into the running turn, and you can drag to reorder. Plan cards take notes, can implement in a new thread, or save the plan to a file.
- Per-project defaults. Set the provider, model, effort and permission mode new threads start with, or let them follow what you last used.
- Sign-in status. Settings and the model picker show which agent CLIs are signed out, with a Sign in button that opens the login in a terminal. Onboarding finds the repos you have been working in and adds them in one step.
- Keyboard. Remap any shortcut in Settings › Keyboard. Type > in the palette for actions only, ⌘[ and ⌘] go back and forward between threads, and ⌘Z undoes a settle, snooze or archive.
- Project setup. The agent can wait for your setup script. Setup and quick actions can live in a checked-in solenta.json, approved once and asked again when it changes. New worktrees init submodules, the branch prefix is configurable, and Add project can clone from a URL.
- Provider instances. Add "Claude (work)" or "Codex (personal)" with their own login and settings, and pick them like any provider.
- Solenta Web. One switch turns it on. Pair a phone with a QR code, revoke any device instantly, and optionally serve it over HTTPS on your tailnet.
- Resume after restart. An optional setting picks interrupted runs back up after a crash or quit, once each, with a Stop all.
- Also. A dock and taskbar badge for threads that need you, an optional attention sound, JetBrains IDEs, opening files at the exact line in your editor, and Mermaid diagrams in replies.
Fixed
- Streaming stays smooth. Streaming a reply wrote about 600 MB to disk every 30 seconds; now it is 48 MB. Typing next to a streaming reply no longer stutters (worst delay 102 ms down to 13 ms).
- Faster start. Launch to a usable sidebar is about 0.6 s instead of 1.3 s, and the first paint is 40% sooner.
- Long threads stay fast. The transcript stops growing without bound while you watch a stream, so memory stays flat. Switching to a big thread draws the visible part first.
- Agents panel. Opens in milliseconds instead of reading every transcript on disk first.
- Provider switch keeps context. Switching provider, or failing over when a quota runs out, no longer starts the agent with no memory of the thread.
- Transcript keeps following. The view no longer stops following a stream after old messages are trimmed.
- Memory leak. Every thread status change used to keep a removed sidebar row in memory for the whole session.
- Worker messages. A worker's message is no longer dropped when a queued message takes the turn first.
0.23.0 2026-10-04
Added
- A calmer app. The whole interface was redesigned. A default thread view went from about 35 always-visible controls to about 15. Warm ink dark theme and paper light theme, Geist and Geist Mono, and one marker-yellow accent.
- One reading column. Transcript and composer share one centred column. Tool calls and subagent launches are quiet one-line steps, and message actions show on hover.
- Inbox. Threads that need you stay up top. Quiet runs fold into a Working shelf beside Snoozed and Settled. Planboard, Review, and Insights are footer icons, and ⌘B folds the sidebar to a rail.
- New thread hero. A new thread opens on "What should we build in ‹project›?" with the composer under it. Start without a project to use the built-in Scratch space.
- Workspace choice. A draft picks Local checkout, New worktree, or Previous worktree, plus the base branch, in a tab under the composer. The choice locks after the first message.
- Model picker. A provider rail with favourites, search across every provider, and the effort row in one place. Model and effort read as one pill.
- Details card. Worktree, merge, sandbox, context, sync, notes, and Open in your editor sit in one card off the header. The header ends in three controls: details, terminal, and the right panel.
- Usage page. Insights › Usage shows a total, per-provider rows, and a daily chart. Account limits have their own tab.
- Inspector, one job per tab. Environment is status, run, checkpoints, and lanes. Agents is the session and the team. Memory is search and the list. Skills is the installed list. Display, Spotlight, the code map, config doctor, the skill catalog, and MCP servers moved to Settings.
- Connections. Settings opens another machine's Solenta through SSH, in its own window, with a saved token and a pinned host key. A dropped tunnel reconnects.
Fixed
- Working stays working. A thread with a running background subagent stays on the Working shelf. Forks nest under the thread that started them.
- Updates. A macOS update relaunches into the new bundle. Prod and Nightly stay separate apps and share one library of threads.
- Quieter inspector. Opening a thread and refreshing the sidebar no longer re-reads every worker's git state.
- PRs show up again. A PR opened by an agent with gh, or on github.com, appears on its thread again.
- Suggested work. Starting a suggested-work chip keeps you on the thread you were reading.
0.22.0 2026-09-30
Added
- GPT-6.1 Sol. OpenAI's newest Codex model is now first in the picker and recommended. It needs Codex CLI 0.159 or newer.
- Worker groups. Workers now sit under the task that started them, collapsed by default, with short names. A Workers button opens the task's worker panel, and every worker keeps a link back to its task. Routine completion notices fold away; failures and questions stay open.
- Simpler navigation. Threads, Planboard and Review up front, everything else under More. The sidebar is resizable with the mouse or keyboard, and drafts survive switching views.
- Composer options. Workflow and Best of N now live together in one Options dialog in the composer.
- Inspector remembers. Inspector tabs open to a sensible default for what you are looking at and remember what you picked per project and thread, even after collapsing the panel. Tabs work from the keyboard.
- Codex input forms. When an MCP tool or Codex itself asks for input, you get a form card instead of an error. Secret fields are masked and never land in the transcript.
- Memory consolidation status. The Memory tab shows when consolidation last ran, on which model, and the error if it failed.
- Recovered worktrees. Uncommitted work left in the worktree of a deleted thread is saved to a recovered/ branch in its repo, then the folder is removed.
Fixed
- Merge and close. A Claude thread that archives itself at the end of its turn now finishes as done instead of failed.
- Consolidation on Grok. When Grok is signed out or out of credit, memory consolidation switches to Claude instead of failing again on every launch.
- No freeze on merge. Removing a worker's worktree after a merge no longer blocks the app while files are deleted (2 seconds down to 25 ms on a large worktree), and a slow delete can no longer report a landed merge as failed.
- Lighter sidebar updates. Thread list updates carry about half the data they used to.
- Browser pane and agents. Agents can see and drive an open Browser pane, and navigating right after it opens reports the real page instead of a blank one.
- MCP tools. Claude always gets the project's Planboard tools and picks up MCP config changes on the next turn. Codex MCP tool confirmations go through the permission card instead of being rejected.
- Planboard backlog. The board loads every open issue instead of only the newest thousand, and agents page through issues instead of getting the whole board at once.
- Skill versions. Slash commands use the active provider's version of a skill, and the Skills tab shows when installed copies differ.
- Workflow sign-off. Approving a workflow merge signs off the exact patch and destination you reviewed, once. A changed patch needs a new approval.
- Codex sub-agents. A Codex child agent finishing no longer takes over or ends the parent thread's session.
- Narrow panes. The thread header wraps instead of squeezing the title to nothing.
0.21.1 2026-09-23
Fixed
- Grok sign-out loop. After Grok rejects a refresh token, Solenta no longer re-links the same credentials on the next turn. Sign in again with grok login and the overlay picks up the new login.
- Grok session wipe. Each overlay now owns its own sessions directory instead of sharing ~/.grok/sessions, so Grok's stale-session cleanup cannot delete your real sessions through the overlay.
- Grok auth lock. Overlay runs share the real grok home's auth lock file, so a Solenta turn and the Grok TUI cannot refresh the same login at once and knock each other out.
0.21.0 2026-09-22
Added
- New model choices. Select Grok 4.7, Claude Opus 5.5, and GPT-6 Sol, Luna or Terra in their respective providers. Grok 4.7 is now the recommended Grok model. GPT-6 Terra availability depends on your Codex account.
- Cursor model variants. Grok 4.7 and Claude Opus 5.5 are available with Cursor's supported reasoning levels and Fast variants.
- Guardrails setting. Turn Solenta's tool, prompt-injection and secret checks on or off in Settings, Advanced. The setting applies across projects; provider permission settings still apply. Restart active agent runs to apply the change everywhere.
Fixed
- Remote Grok guardrails. SSH and WSL runs now deploy their guardrail hooks on the remote machine, including workflow runs. Remote overlays keep host credentials and local MCP addresses out of the remote configuration, preserve sessions and are cleaned up with the thread.
0.20.0 2026-09-11
Added
- Import existing CLI sessions. Bring conversations from Codex, Claude Code, Grok, Cursor, OpenCode, Kimi and Muse into Solenta. Import one or all remaining sessions; re-import adds new turns without duplicating the thread.
- Eject and reclaim. Continue a thread in its provider CLI, then bring outside turns back into Solenta. Eject releases this thread's agent process and copies a resume command; the rest of its crew can keep running.
- Steer a live turn. Send guidance into a running Claude or Codex turn. The composer has Queue and Steer controls, and Cmd+Shift+Enter steers directly. Your draft stays if delivery fails.
- Crew integration. The lead's Integration view shows worker readiness, source snapshots and the final destination. Integrate selected workers into the lead, verify the combined result, then merge or open one PR.
- Recorded worker snapshots. Workers start from the lead's recorded committed revision. See the source branch and SHA separately from the merge destination, and explicitly refresh an idle worker when the lead advances.
- Local development lanes. Claim a numbered lane with its own branch and port, see its path, preview it in the project checkout and restore afterward. Recycle wedged lanes; optional Spotlight selects the lane to preview.
- Dev-server isolation. Thread dev servers get separate data, config, cache and temporary directories. Claimed lanes supply a distinct port, and supported local Electron launches get a thread-specific app identity.
- Command palette. Cmd+K runs commands and jumps to threads or projects. Cmd+P searches project files; Cmd+Shift+F searches their contents and opens a matching line.
- PR workspace. Create draft PRs with an editable body from the repository template and a markdown preview. View, edit, comment, mark ready, close and merge open PRs in the app.
- Searchable pull requests. Find PRs by number, title or branch. Load more beyond the initial list and set the per-project list cap in Settings.
- External MCP pairing. Pair an outside MCP client through Settings, Integrations. Choose project scope, capabilities and expiry, approve launches in Solenta by default, and revoke access at any time.
- Import from other tools. Preview and selectively copy skills, slash commands, MCP servers, memories and instruction files from Claude Code, Codex and Cursor. Local commands and plugin code have separate trust controls.
- Plugin slash commands. Enabled Codex and Cursor plugin commands appear in the composer without a manual import, including namespaced commands. Disabled and unlisted cache plugins stay out.
- Searchable skill library. Search installed skills by name or description and filter by provider and source. Installed skills come first, with catalog, import and MCP tools on secondary views.
- Memory browsing. Browse older memories beyond the first 20, filter by type, and inspect source and citation details. Config doctor and maintenance tools sit behind the memory list.
- Saved sidebar views. Save named combinations of project, search, status, provider and tag filters. Rename or update them as your triage changes; views continue matching newly created threads.
- Recently deleted. Deleting a thread now offers Undo and a seven-day restore window. Restore it from Recently deleted or permanently delete it there.
- Move threads between projects. Move an idle thread from its menu. Threads with a worktree, an active run or a pending worker binding cannot be moved; old repository bindings are cleared.
- Better board navigation. Search Planboard by title or issue number and change project scope directly in Activity or Kanban. Back from a thread restores the originating view, filters, focus and scroll position.
- Automation editing and history. Edit an existing automation in place and open its recent runs. Names, prompts and models can change without creating a second schedule.
- Transcript pins and quotes. Pin a message with an optional label and jump back to it, even in a long transcript. Quote selected assistant text into the composer with its source attached.
- Per-turn diffs and restore. Review checkpoint-to-checkpoint changes in unified or split view. Restoring a checkpoint rewinds the conversation along with the files.
- Files on question answers. Attach supporting files to an individual question answer without mixing them into the composer draft.
- Browser file and folder attachments. Pick or drop ordinary files and folders in web mode. Folder uploads keep their tree structure, and text-only models can still receive file attachments.
- First useful conversation. Onboarding guides you through one agent, a project and your first thread, with an empty composer ready for your own prompt. Replay it from Settings.
Performance and memory
- Responsive transcript search. Content search scans stored transcripts in a background worker instead of parsing every thread into the main process's history cache. A newer query cancels the previous scan.
- Bounded transcript cache. Previously opened threads use an eight-entry cache with an 8 MiB estimated payload budget. Recent threads still switch immediately; older ones reload on demand. This is a cache limit, not a limit on total app RAM.
- Smaller store writes. Work logs now live in separate per-thread files. Saving an active thread writes changed logs instead of serializing and rewriting every thread's work log.
- Faster skill inventory. Skill scans yield to the app, read the install registry once and reuse parsed files across symlink aliases. Opening the catalog no longer repeats a full skill-file scan.
- Lighter memory diagnostics. The Memory tab loads a small maintenance summary first and requests the full diagnostics when opened, avoiding unnecessary work while browsing entries.
- Bounded memory export. The optional transcript mirror is capped at 256 pending entries and a 4 MiB estimated payload, including in-flight work. A slow memory server cannot grow the backlog indefinitely; local conversation history stays intact.
- Agent and server cleanup. Removing a project retires its idle agent sessions. Stop and settle clean up this thread's managed dev server, and app quit terminates detached agents that could otherwise keep consuming resources.
Codex fixes
- Interactive session transport. Interactive Codex turns now use a private app-server connection, supporting real live steering and command-approval replies while retaining existing session history.
- Model changes take effect. Switching a resumed thread from Sol to Astra now sends the selected model on the next interactive turn, instead of silently continuing on the original model.
- Command approvals. Codex command requests show Accept and Deny, plus Accept all when the provider supports it. Commands are read-only on these cards because Codex cannot accept an edited command in its approval reply.
- Git writes in worktrees. Codex workspace-write includes the checkout's Git metadata and the shared Git paths needed by linked worktrees, fixing blocked git add and git commit operations.
- Planboard tool availability. Codex's first-party MCP connection binds the actual project ID, so issue tools appear and authorized Planboard writes can run on the host.
- Writer-lock isolation and recovery. Each isolated Codex home gets its own writer-lock directory. Conflicts identify the owner, release a Solenta-owned holder where possible, preserve the session and avoid a misleading Retry loop.
- Safe worker wake-ups. Worker notices wait while the Codex session is owned by another run or ejected to a CLI. They no longer repeatedly try to resume the same locked session.
- Eject model warning. The copied terminal command warns when Codex exec resume would use the session's original model rather than a later picker choice.
- Native images and text-only models. Supported Codex models receive native image input. Spark rejects image attachments while retaining file and folder attachment controls, and Codex tool-result images are preserved in the transcript.
- Context usage. The app-server adapter distinguishes the latest context usage from cumulative totals, keeping the context ring from double-counting them.
- Guardrail startup and hook trust. Codex app-server no longer receives an unsupported exec-only flag. Hook trust is stored in its isolated config so guardrails run without rewriting the user's main Codex config.
Fixed
- Queued follow-ups. Failed or stopped turns leave the next prompt queued. Failed edits, reorder, removal and retry preserve the draft and queue instead of discarding or duplicating instructions.
- Retry the right turn. Retrying a failed worker notice sends that notice, not the original human task. Notice provenance is persisted, including backfilled older messages.
- Stop during startup and quit confirmation. Stop can cancel the first turn while it is still preparing. Quitting asks before stopping active agents, terminals or dev servers, with a setting to control the confirmation.
- Failed edit-and-resubmit. If the replacement turn cannot start, the previous conversation tail is restored instead of leaving a completed rewind behind.
- Draft and review persistence. Failed thread-note saves keep the text and offer Retry. Workflow drafts survive selection changes and ask before discard; a successful save followed by a failed refresh no longer creates duplicates on retry. Review acceptance is now saved to disk.
- Correct project after navigation. Late Planboard, Skills and config-doctor responses cannot apply the previous project's state or write confirmation to the next project.
- Visible load failures. Activity, Digest, Usage and Fleet distinguish errors from empty results and preserve existing reports where available. PR and Planboard controls recover after rejected requests instead of staying stuck.
- Settings and automation safety. Opening Settings before data arrives no longer clears untouched spending caps. Repeated Add automation cannot create duplicate schedules, and retention keeps unfinished and quota-wait runs.
- Crew landing and issue lifecycle. Merge controls name their destination and workers route through the lead's Integration view. Integrating into the lead keeps worker issues open until the combined work lands; changed destinations are refused before writing.
- Lane ownership. Claimed lanes keep their heartbeat across view changes and local projects, so background work is not mistaken for a wedged lane and recycled.
- Screenshot and terminal ownership. Delayed screenshots remain attached to their originating thread. Terminal replies from an earlier thread or restart are ignored, and overlapping output is not duplicated.
- Provider integration details. The Cursor overlay no longer breaks the user's cursor-agent executable. OpenCode receives native file and image attachments, and reclaim handles older OpenCode storage, long Claude/Grok paths and fragmented Kimi replies.
- MCP command arguments. Quoted executable paths, arguments containing spaces and JSON argument arrays keep their intended boundaries. Malformed quoting keeps the draft and shows an error.
- Keyboard focus and calmer chrome. Dialogs and popovers keep keyboard focus, Escape dismisses eligible confirmations, and focus returns to the opener. Softer borders and flatter lists reduce visual clutter across the app.
- Settled crew visibility. Settled workers remain discoverable under an active or pinned parent, so completed crew work does not disappear into another shelf.
- Planboard comments. Agents can append an issue comment through the host without changing the issue's plan status or closing it.
0.19.0 2026-09-07
Added
- Inspector sidebar. Environment, Agents, Pulse, Memory, and Skills are continuous lists. Memory has a short search toolbar; Skills dropped the repeated subsection counts.
- Provider marks. Thread cards show a small harness glyph instead of the provider name.
- Account usage.
/usageshows live quota windows and reset clocks from Codex, Grok, Claude, and Kimi, not just local spend history. - Provider model catalogs. Updated Codex model capabilities and Cursor's available model list, including newly listed Fable 5.1 and Gemini 3.8 Flash variants.
Fixed
- A queued follow-up stays visible on the thread instead of looking swallowed while the current turn is still running.
- Grok 1.0.13 no longer keeps a preview as a managed background task, which used to stall the next queued prompt for up to ten minutes.
- Codex resume keeps MCP and sandbox flags after
exec, so Planboard and memory tools no longer die with a never-approval on GPT threads.
0.18.1 2026-09-04
Added
- GPT-6 Astra. Codex's flagship in the model picker, with the ultra effort ladder. Sol stays the 5.6 workhorse. Spark is the ultra-fast 5.3 id.
0.18.0 2026-09-04
Added
- Live dictation. A mic in the composer transcribes locally with NeMo-Speech.cpp, so you can speak a prompt instead of typing it.
- Muse Code. First-class provider, same shape as Cursor and Kimi: isolated overlay, resume, workflows, and SSH.
- Composer vim. Optional Insert and Normal chip, with the matching motions on the keyboard sheet.
- Sidebar filters and tags. Filter by status, provider, or tag, and group or edit tags from the list.
- Guardrails that stop. Deny-tier tools are blocked even when the CLI is in always-approve, including Grok, Cursor, Codex, and OpenCode.
- Workflow retry. A failed phase agent retries once on the same slot, and you can retry it yourself from the transcript.
- Planboard writes from the agent. Create, list, and move issues on the host so a sandboxed session can keep the board in sync without calling
gh.
Fixed
- Codex resume no longer passes
--sandboxor the old--searchflag. Web search is-c web_search=live, including inside workflow phases. - Codex is told Solenta has no Computer Use toggle, so it stops asking for one.
- Git-tab Merge fast-forwards or merge-syncs a local default that is behind and ahead, instead of refusing.
- A stapled Developer ID Mac build is no longer misclassified as unsigned by the package verifier.
0.17.0 2026-08-29
Added
- Stacked worktrees. Pick a local base when you start a worktree thread, see it on the header and Git pane, and change it before the first PR. Changing the base rebases this thread's commits onto the new branch.
- Quiet transcript. Consecutive tools collapse to one line. Focus and Summary fold settled turns; Verbose still expands every group.
- Agents panel starts closed. Settings pin it open or closed, or remember the last toggle.
- Searchable model picker. Type to jump. OpenCode keeps the highlighted model in view.
- Composer power-ups. Reply as context, paste cards, and a prompt stash.
- Provider catch-up. Cursor runs get the same MCP tools as everyone else. Kimi shows live thinking and reports spend. OpenCode Zen carries a variant. Workflow phases work on kimi.
- Sidebar status pulse. Working, waiting, delegating and done threads pulse so you can see them without reading the row.
- Rebase conflicts in the Git pane. A conflict during a base change shows as a card, not a raw error.
Fixed
- Ordinary merges no longer look like a CI inspect failure when the project has no local main, or the worktree directory was pruned.
0.16.0 2026-08-28
Added
- Windows in-app updates. The Windows portable build downloads the new archive, stages it beside the live folder, and swaps on quit instead of sending you to GitHub.
0.15.0 2026-08-28
Added
- Linux in-app updates. The Linux portable build downloads the new archive, stages it beside the live folder, and swaps on quit instead of sending you to GitHub.
0.14.0 2026-08-28
Added
- iOS Simulator. On a Mac, the agent drives a shared simulator from the thread: boot a device, tap, type, screenshot and record, without leaving Solenta.
- Model routing. Pick a default model in Settings, and a burned quota fails over to the next model in the chain instead of stopping the turn.
- Current catalogs and effort ladders. Sol, ultra and ultracode land in the pickers, and the effort list follows the model you actually selected. Solenta warns when an installed CLI has drifted from what it ships.
- Planboard orchestrator. Choose which agent starts a planboard task, and set a default in Settings so you are not asked every time.
- Memory that closes the loop. Bootstrap is injected into the run, the review queue lives on the Memory tab, a janitor resolves the obvious rows, and a sleep-time pass consolidates in the background.
- Verbose tool cards. A toggle expands every tool card so you can read the input and output without clicking through each one.
Fixed
- Live turns no longer stall on "Agent working". Codex and Kimi show the thinking card and the tool that is running.
- Cursor and OpenCode screenshots render as images instead of truncated JSON.
- Cursor can write a commit message and answer a side question without a print-mode hard error.
- Images in the transcript render again instead of breaking the layout.
- Grok stdio MCP servers that need a working directory actually register.
- The packaged Mac build includes the iOS simulator helper.
- Sidebar view-nav icons sit under the Status, Provider and Group columns.
- Memory consolidation no longer dumps a pile of messages when the app starts.
0.13.0 2026-08-25
Added
- Skills and MCP imports. Browse curated packages or import from GitHub, Markdown, ZIP and JSON. Preview what will install, choose the parts you want, review plugin-code risk and sync skills across providers.
- Real context recovery.
/compactforks the thread into fresh context, a full context window offers the same escape hatch, and interrupted or failed turns can be retried in place. - Editable queued follow-ups. Change a message while it waits, send it immediately after the thread settles, or cancel it back into the composer without losing the draft.
- Stay awake control. Keep the Mac awake while agents work, keep it awake continuously, or let normal sleep rules apply.
- Planboard sorting. Order each column by priority, age, activity or reactions without changing the issues themselves.
Fixed
- Large transcript archives are split into per-thread files and loaded only when opened, so startup no longer parses every historical message.
- The sidebar and current thread paint from a persisted boot snapshot, avoiding the empty flash while the live state loads.
- Permission pickers expose only modes each provider can honor, and plan approval cards now work across Cursor, Grok and the other supported agents.
- Cursor sessions capture their resume ID before exit, background tasks stay attached to their parent turn, and stalled runs recover more reliably.
- Context meters render accurate windows for Grok and Cursor.
- Repeated git-status requests are coalesced instead of keeping the main process busy while the app is idle.
- The packaged app includes every dependency needed by the new skill importer, and package verification now catches missing runtime modules before release.
- Planboard actions stay scoped to the selected project and report whether starting the thread actually succeeded.
0.12.0 2026-08-23
Added
- Signed and notarized on macOS. The mac build is signed with a Developer ID and notarized by Apple, so it opens on first launch like any other app instead of asking you to bypass Gatekeeper by hand.
- Worktree and merge live in the thread header. The branch, worktree and merge controls moved out of the right panel and onto the thread itself, next to the work they act on.
- Codex web search, per thread. Codex's live web search is a composer toggle rather than a global setting, so one thread can look things up without turning it on everywhere.
- /feedback. Send feedback straight from the composer, without leaving the app to file an issue.
- A real download page. solenta.app detects your platform and hands you the matching build, with Windows and Linux one click away.
0.11.0 2026-08-23
Added
- Terminal pane. A real shell in the thread's worktree, side by side with the transcript rather than a drawer under it. One long-lived session per thread, so
cdand exports persist between commands. - Browser pane. An embedded browser scoped to the thread, with an address bar that suggests the project's dev-server URL. A capture button drops a screenshot of the page straight into the composer, and the agent can drive the same view: navigate, click, type and screenshot, so it can see what it just built.
- Comment on a diff line. Click a line number in the Git pane and leave an inline comment; sending it posts the file, the line and the quoted code back to the agent as a follow-up prompt.
- Stage files before committing. The Changes panel gets a checkbox per file and a tri-state header, so a commit or a merge lands only what you ticked instead of everything the agent touched.
- Cursor CLI is a provider.
cursor-agentjoins Claude Code, Codex, Kimi, Grok and OpenCode, with its full model catalog, session resume and skills fan-out. - Updates are a button. The app checks for new releases on its own while it runs, and the update notice next to Settings is a button that installs and relaunches instead of a line of text pointing you at GitHub.
- Verify reuses other worktrees' builds. Every worktree of a repo now points at one shared build cache, so a verify run in one thread does not rebuild what another thread already built. Turbo, Nx and the usual suspects are picked up automatically.
Fixed
- Kimi runs no longer see other projects. Each run gets its own scoped home with only this project's MCP servers and this run's directory, and a thread listing is limited to the project that asked for it.
- Those per-run kimi directories are now collected on the retention sweep instead of accumulating one per thread forever.
- A machine on the nightly channel is no longer offered a permanent downgrade to the last stable release; the update check picks the newest release by publish time rather than trusting the order GitHub returns.
- On Windows the taskbar shows Solenta's icon instead of the default Electron one; the packaged
.exeis stamped with the real icon and version.
0.10.0 2026-08-22
Added
- Light theme. Solenta follows your system light/dark setting, or you can pin either one. The whole interface is tokenised, so every pane, card and diff view comes along.
- Settings, redesigned. The modal is a proper paned layout instead of one long scroll, so providers, defaults, budgets and data live somewhere you can find them again.
- The right panel collapses. Fold the agents panel away when you want the transcript full-width; the state persists per window. Interface zoom persists too.
- Sidebar filters. Narrow the thread list by status and by provider, on top of the existing project scope and search.
- Let the agent resolve the conflict. A merge conflict gets a one-click button that hands the conflict to an agent instead of dropping you into a manual three-way merge.
- Check out someone else's PR. Pull an open pull request into its own worktree and start a thread on it, without leaving the app.
- Outbound webhooks. Fire a webhook when a thread finishes, fails or starts waiting on you. Slack, Discord and ntfy shapes are built in. Opt-in per project.
- Linear tickets can start a thread. Ticket ingestion is no longer GitHub-only.
- Per-project setup command. A command that runs automatically whenever a worktree is created, plus named quick actions in the project header, so a fresh worktree is usable without a manual install step.
- Install-time trust gate. Skills, MCP servers and packages an agent tries to install are scanned before they land, and reported as trusted, caution or blocked. Local and regex-only; no network, no model. Blocked refuses, caution asks.
- Encrypted credentials. Stored provider keys are encrypted at rest rather than sitting in the plain store file.
- Jujutsu. Projects on
jjare detected and driven through the same worktree and diff paths as git. - Cross-thread messages. Threads can hand each other work directly, with delivery you can see, instead of routing everything through the lead.
- Blast-radius guard. An agent diff that reaches outside the files the task implied is flagged before you review it, and the daily digest reports it.
- Model and effort pickers, split out. The composer's model row and the reasoning-effort meter are their own controls, and the effort meter follows the model you actually picked.
Fixed
- Typing in the composer no longer lags. The field is uncontrolled now, so a keystroke stops re-rendering the model rows, pills and slash palette.
- First paint no longer waits on the whole boot chain, and the store is no longer parsed synchronously on the main process before the window appears.
- Opening a thousand-message thread windows the transcript instead of mounting all of it into the DOM.
- A state change no longer ships every thread row to the renderer, and the generic provider stream path is throttled instead of writing the store on every raw chunk.
- Worktree retention sweeps on a timer, so grace-period crossings are reclaimed while the app is running, and corrupt worktree directories are collectable again instead of being stuck forever.
- Concurrent
grok mcp addwrites no longer corrupt the grok config and take every grok run down with it. - Every parallel worker gets its own review itinerary, so the shared file stops being a guaranteed merge conflict.
- The questions modal appears under Fable, Grok and Kimi, not just Claude and Codex.
- Drag and drop accepts
.txtand other plain-text files, not only images. - Memory dedup and contradiction detection reuse the embeddings that were already there.
- Divergence compare is off by default.
- Worktrees are no longer merged automatically; landing a branch stays an explicit action.
- A PR opened from a thread shows its link in the related thread again.
- Image stores under userData are cleaned up with the threads that made them.
- CI runs the renderer build, so a CSS parse error fails the gate instead of reaching a release.
0.9.0 2026-08-21
Added
- First-run onboarding. A welcome wizard on first launch: check which agent CLIs are installed and how to get the missing ones, add a project and set the defaults, then a short tour of the app. Replay it any time from Settings → Show welcome tour.
- Worktrees clean themselves up. Checkouts created by a fork or handoff, and worktrees belonging to archived threads, no longer take up the per-project keep-N buffer. Ten abandoned worker checkouts was several gigabytes nobody would ever open again. They are collected once the thread goes quiet, with a three-day grace period if they still hold unlanded commits. The branch always survives; only the directory goes.
- Planboard issues close themselves. When a thread's work lands, the issue it was tracking moves to done and closes, instead of sitting open behind a merged branch.
Fixed
- Removing a project works again. Removal reclaims the attached worktrees rather than refusing because archived threads still point at them, a tree with uncommitted work is left on disk for the GC panel instead of being force-deleted under you, and a removal that does fail now says why.
- Clicking through threads no longer rewrites the whole store. Selecting a thread stamped a timestamp that scheduled a full rewrite of the entire store file; the stamp now rides the next real write. Boot's backup snapshot is a copy-on-write clone instead of a byte copy, and the write cadence under sustained streaming is far less aggressive.
- IPC channels are generated from a single list, so a channel can no longer be wired up in the app but missing from the packaged build.
0.8.0 2026-08-20
Added
- Flat sidebar. Thread rows are a status dot, a title and an age; no project group headers. Cards carry their project slug; a scope filter still limits the list to one repo. Pinned threads sit in their own block at the top; snoozed and settled have their own shelves; archived sit at the settled tail. Spaces are gone.
- Sidebar polish. Right-click a card for the native thread-actions menu. Subagents nest under the thread that spawned them, idle stopped fork workers drop off the list, and Delegating / Orchestrating / Working statuses are back. Project icons are picked up from the repo's favicon or app icon.
- Git in the thread. The worktree diff is a full-height Git tab in the thread header, not a card in the right-hand panel. Environment's Open Git, the next-action Commit, and
/reviewall open it there. - Ask mode. Read-only questions about the repo, answered from the code index and shared memory. No worktree, no tools, and no spend against the daily budget. Start work turns it into a normal thread.
- Spec dispatch. Once
tasks.mdis approved, the checkboxes are a DAG. Dispatch forks a worker per unblocked task; Converge re-reads the artifacts and the repo and appends missing checkboxes. - Divergence compare. When two runs of the same task exist, Environment can pair their tool steps and name the first mismatch. Opt-in per thread.
/btw. Ask a side question on the same thread without interrupting the live run. ⌥Enter on a plain draft does the same.- Slash palette extras. The
/menu lists the underlying CLI's own skills and custom commands alongside Solenta's verbs. - Suggested-work chips. Out-of-scope findings become one-click new threads (or a planboard issue) instead of derailing the current run.
- Host thread tools. Agents can archive, settle, stop, rename, merge and open a PR on threads, not just list, fork, send and poll.
- Quota-wait. A provider usage-limit with a reset clock parks the thread and resumes the same prompt when the quota comes back, instead of failing.
- Review bottleneck. Create PR refuses a diff larger than the PR size cap (default 400 lines) and offers to split the branch into a stack. Planboard shows review load.
- Perception gap. After a thread finishes, a one-tap card asks how much time it felt like it saved; fleet analytics compares that to wall-clock.
- Provenance chips. Assistant claims in the transcript are labelled by what they actually cited (repo paths, shared memory, GitHub) or tagged model prior knowledge.
- Config doctor. The Memory tab lints
AGENTS.md/CLAUDE.mdagainst shared memory, and can write those files from it. - Vibe Kanban import. Settings → Your data reads a local VK database and turns cards into threads.
- Edit before approve. A permission prompt that is a shell command is an editable field; approving sends the edited command, not the original.
- Nightly, side by side. Nightly ships as Solenta Nightly with its own bundle identifier, so prod and nightly install next to each other.
Fixed
- Boot no longer walks
duover every worktree. - Worktree GC actually enforces per-project retention, so stale archived worktrees get cleaned up instead of accumulating.
- The Electron main process, renderer re-renders and polling, and the memory-server query and write path are snappier.
- The thread view re-pins when content grows after paint, and autoscroll no longer unsticks on a thread switch.
error_during_execution/ cancelled is no longer shown as a raw Run error.- Grok runs in asking modes no longer look user-stopped.
- Usage view: Kimi is visible again, and Claude token counts include cache tokens.
- You can add a folder that is not a git repository yet; the destination path is typeable and browsable. Projects can be removed again.
- A renderer from an older main-process build hard-blocks until you reload.
- Planboard, Kanban and Activity follow the sidebar's project scope.
- The new-thread dropdown is fully visible.
0.7.0 2026-08-18
Added
- Teach mode. A thread can run as a tutor: hints, not solutions, across all five providers. Autonomy steps up as reviews pass (Hints, then Review, then Pair) and permission modes stay gated to the current rung.
- Review itinerary. Every agent diff gets a risk-ranked read order: CI and config first, then reuse, the critical path, tests, and the rest, chunked by area instead of alphabetically.
- Thread snooze. Hide a thread until this evening, tomorrow, next week, or a custom time. A thread that raises its hand (blocked on you, or a fresh failure) wakes early. Settle-on-merge can archive a thread the moment its PR lands. A Woke pill marks what came back.
- Next git action. One header button that always names the next step: commit, push, open a PR, watch checks, or merge. Create PR is available on an unpublished worktree without a prior Push.
- Subagent model pool. Describe candidate models once in Settings; the lead picks per spawn instead of every worker inheriting the same default.
- Orchestration commands. Type
/handoff,/advisoror/committeein the composer to plan here and implement elsewhere, get a second opinion, or have two contrasting models converge on a root cause. The/palette now lists the CLI verbs too, not only the orchestration ones. - Drop images and folders on the thread. The whole transcript is a drop target, not just the composer strip, and Finder folders keep their absolute paths.
- Memory strategies. Alongside facts, memory now stores distilled how we work here entries, and citations on a fact are checked against the current worktree before they are injected.
- Context breakdown. The ring counts cache tokens correctly, documents each provider's window, and opens a per-thread breakdown of what is filling it.
- Pulse. Automations, Usage, Fleet, Insights and the morning digest live on a Pulse tab in the right panel, so the left sidebar stays threads.
- Windows that actually runs agents. WSL-boundary detection, a project-add doctor (long paths, Git Bash, Node, WSL), a sandbox badge, and CI that would have caught the previous spawn bugs.
- Post-merge verification. After a PR merges, the verify command runs again on a delay and reopens the thread if the build regressed.
- Keyboard shortcuts. ⌘N starts a thread, ⌘⇧N starts one in a chosen project. Esc and Ctrl+C stop the live turn. Click the project slug in the header to start another thread there.
Fixed
- A thread configured to run in a worktree never falls back to the project checkout if setup fails: it errors instead of silently editing your working copy.
- A turn that dies mid-delivery no longer leaves the thread stuck on Working.
- Hovering a conflict pill names the other thread and the colliding files.
- Start Dev, Fork and Handoff moved off the thread header into the Environment panel, so the header stays the next action.
- You can leave spec mode without approving the remaining stages.
- File paths in the transcript open the file in the worktree.
- The slash and mention palettes stay scrolled with the highlighted row.
- Long tool-call bodies wrap instead of forcing a horizontal scrollbar.
- On Windows, agent CLIs are no longer detached from the app, so a stop actually stops them.
- Packaged builds include the
cross-spawntree, so the app boots instead of dying on a missing module the moment a provider starts.
0.6.0 2026-08-17
Added
- Agent teams. Workers under one orchestrator share a crew task list and message each other directly, instead of every fact having to route back through the orchestrator. Loop guardrails stop a crew from talking in circles.
- Shared code index. A per-repo symbol index is built once and injected into every dispatched prompt, so a worker starts out knowing where things live instead of grepping its way in.
- Orchestrator-owned guardrails. Config files a worker is not allowed to touch, hook packs installed at spawn time, and prompt-injection plus secret scanning on what comes back.
- Spec mode. A thread can be gated on requirements, design and tasks artifacts, each one approved before the next unlocks.
- Verification gate. A thread only goes green once its verify command exits 0, so nothing reports itself done over a red build.
- Conflict forecast. Parallel worktrees heading for the same lines are flagged before the merge instead of during it.
- Hypothesis ledger. What each agent tried and ruled out is recorded and handed to the next one, so the second thread does not walk back into the first one's dead ends.
- Morning digest. One summary of everything that ran unattended: what it did, what it cost, what changed.
- Fleet analytics. Merge rate, review tax, rework and cost per merged PR, computed from git and GitHub ground truth rather than from what the agents claim.
- Usage view. Cost and token analytics per provider and model over 7, 30 or 90 days.
- Named agent profiles. Save a provider + model + reasoning effort + permission mode combination and apply it to a thread in one click.
- Spaces. Named groups for organizing projects in the sidebar.
- Auto-dispatch from the Planboard. An issue entering
plan:todocan start its own thread, so the board itself becomes the queue. - Repeat a finished thread. Put its prompt on a schedule, or distill the run into a Build workflow.
- Edit and resubmit any past message. Rewind to a message, change it, and run from there.
- Skill manager. Install a skill once and fan it out to every provider's skills directory.
- Free local model for chores. On macOS 27, the built-in
fmCLI is used as a local LLM for housekeeping work that does not need a paid model. - Worktree GC. Per-project retention, batch cleanup, and disk usage you can actually see.
- Per-thread scratch notes. A notes field on the thread, editable from the header and previewed in the sidebar.
- Thread rename, from the header or the sidebar menu.
- Memory provenance and trust. Every entry records which agent wrote it, and per-agent trust scores rank what comes back. The stored embeddings now also drive near-duplicate detection and contradiction ranking, and the memory graph writes co-occurrence edges, so the graph retriever finally has something to walk.
- Observability. OTel GenAI spans from the orchestrator, plus failure-mode clustering across threads.
- Failure reasons are kept on a failed thread and shown in the sidebar and the Agents panel, instead of a bare red dot.
- An update dot on the sidebar Settings button, so a waiting release is visible without opening Settings.
Fixed
- The app no longer beachballs while several threads run: synchronous git and
ghcalls are off the main-process event loop, and the PR read paths stopped shelling out for the default branch on every poll. - A corrupt store file is quarantined and a rolling
.bakkept, instead of silently discarding every thread in it; writesfsyncbefore rename. - Restoring a checkpoint checkpoints your uncommitted work first, so a restore cannot eat unsaved changes.
- Kimi threads can no longer resume each other's session.
- Stopping a run kills the whole CLI process tree, so agent grandchildren do not survive the stop.
- A renderer left over from an older main-process build is detected, and offers a restart rather than failing in odd ways.
- Follow-up messages queued mid-run live on the thread record, so a reload no longer drops them.
- Web mode attaches images over the save-image bridge instead of hiding the button.
- Markdown is re-parsed on a throttle while a message streams, and the last-assistant lookup behind thread summaries is memoized.
- WebSocket broadcast has a ping/pong heartbeat and backpressure, and the wire client bounds its offline queue, times out invokes, and dedupes reconnect flushes.
- Dev-server log buffers are bounded and dead records evicted, so output without newlines cannot grow without limit.
- A kept-alive Claude CLI that stops reading stdin is detected instead of leaving the thread hanging.
- Automation threads are capped at the newest 20 per automation, and an orchestrator retains only its last 20 workers.
- Narrow-window drawer controls are real buttons instead of a checkbox and label hack.
0.5.0 2026-08-16
Added
- Orchestrator threads. A new thread mode hands the thread's first prompt straight to a worker in its own worktree, and the thread itself stays back to supervise. Pick it from the caret next to + in the sidebar, which now offers all three modes: worktree, orchestrator, and plain (straight in your checkout).
- Delegate new threads by default. A Settings toggle makes every new thread an orchestrator, so fan-out is the default rather than something you remember to choose.
- Start task picks the mode. Starting work from a Planboard card lets you choose worktree, orchestrator or plain instead of always following the app default.
- Delegating status. A thread whose workers are still running reads Delegating and stays in Working on the Kanban, instead of claiming it is done while its crew is mid-run.
- Per-orchestration budget ceiling. A second cap in Settings, alongside the daily budget, bounds what one fan-out can spend. Empty means no cap.
Security
- MCP bearer tokens are written
0600, revoked on shutdown, and kept out of the Codex command line, so they no longer leak into user config or the process table. - Adopting a running memory server now requires proof the process knows the shared secret, so nothing squatting on the port can be handed your memory traffic.
- User-registered MCP servers no longer get blanket tool auto-approval in headless Claude runs.
- Saving an image from a thread is confined to that thread's directory, closing a path traversal.
Fixed
- The main process survives an unhandled rejection instead of taking the app down with it.
- Merging a worktree no longer refuses on a dirty project checkout (it auto-stashes), and untracked files stopped blocking merges outright.
- Run now failures on an automation surface on the row instead of vanishing.
0.4.0 2026-08-16
Added
- Planboard. One project's plan as its GitHub issues in Todo / In progress / Done, with a per-project selector. Agents write to it with nothing but
gh, their todo list is mirrored as live plan steps, and you can start a thread straight from a Todo card. - Plan overview card. When an agent writes a plan, it is pinned in the thread panel instead of scrolling away, and plans in permission prompts render as a plan rather than a wall of text.
- Images and folders in the composer. Attach them to a message, see images agents produce inline, and click any image to view it full size.
- Type-ahead during a run. The composer stays live while an agent works and queues your next message instead of dropping it.
- Desktop notification controls. A global toggle in Settings and a per-thread mute.
- Cascade stop. Stopping an orchestrator stops its crew, and workers run in their own git worktree so they never collide.
- Better hand-offs. A fork now carries a tail digest of the source thread rather than one truncated reply, and a thread shows what it is waiting on, including workers blocked on a permission prompt, and orchestrator wake-ups held back by the budget.
- Question prompts as a picker. An agent asking you to choose renders as options with keyboard shortcuts, and Agent-tool subagents appear in the Agents panel.
- Denser sidebar. Smaller thread cards, sticky group headers, and a per-group overflow cap so a busy day stays readable.
- Safer auto-update. Installing is gated behind a click and the downloaded asset's digest is verified first.
Fixed
- Streaming no longer re-renders all three panes on every tick, the Agents panel stopped re-querying every thread's messages per event, thread tails stream over IPC instead of the whole transcript, and
@-mention search caches its file list. - Transcripts are capped per thread and the store flushes off the event loop, so a long-running thread no longer rewrites megabytes on every token.
- Every synchronous git and ssh call on the main process is bounded by a timeout, so a hung remote cannot freeze the window.
- A web-server port conflict no longer kills app boot with no window and no error.
- Squash-merge conflicts get a resolution path instead of a raw git dump.
- The memory server exits when its parent does, so an ungraceful quit stops leaving orphans behind.
- React error boundaries around the three main panes turn a render bug into one broken pane instead of a blank app.
- Idle agent CLIs are retired when a thread settles or is archived, and kept-alive Claude processes are capped at three.
- A Claude turn no longer fails on a timer while the CLI is still working.
- Switching threads no longer shows the previous transcript under the new selection, and a failed thread load offers a retry.
- A thread can no longer spawn workers into another project's repository.
- Update-check failures are surfaced instead of leaving a stale “Up to date”.
- Local Servers hides ephemeral-port listeners that are not web servers.
0.3.0 2026-08-14
Added
- Grok 4.6. The Grok picker now offers 4.6 (the CLI default) alongside 4.5, and extra-high reasoning effort.
Fixed
- Orchestration worker threads now archive themselves once their run lands done, instead of piling up in the sidebar.
- Finished workers no longer show up in the Agents Team list, so the list reflects who is still working.
0.2.1 2026-08-14
Includes 0.2.0, released the same morning.
Added
- Auto-updates. Prod and nightly channels, with a channel picker and a manual check-for-updates in Settings.
- Agent-created pull requests. An agent can open a PR from its own worktree branch, and asks for your approval through an in-app permission prompt instead of stalling in the background.
- Worktree threads. A thread can get its own git worktree the moment it is created, so the agent starts on an isolated branch and never touches your checkout.
- Project create flow. Add a project from inside the app with a native directory picker, instead of pointing Solenta at a path by hand.
- Edit projects after the fact. Rename a project or change its SSH remote host and path from a settings modal, without removing and re-adding it.
- Model picker for automations. Scheduled runs can pin a specific model per automation, the same way threads can.
- Settled tail actions. Settle all from the collapsed tail bar, and Clear to bulk-archive with an undo toast.
- Waiting badge. A thread shows it is blocked on a permission prompt rather than looking idle.
- Worker threads in the sidebar. Forked orchestration workers nest under the thread that spawned them.
- Linux and Windows builds. Releases now ship linux-x64 and win32-x64 archives alongside the macOS build.
- This website. A landing page, full docs, and this changelog.
Fixed
- The final answer of a run now streams as its own message below the tool calls, instead of being interleaved with them.
- Tool cards in the run timeline no longer collapse into thin bars when the timeline is crowded.
- Headless Grok runs died on the first gated tool; asking modes now map to auto and run errors surface instead of vanishing.
- The Claude CLI stays alive across turns, so background tasks survive a settle.
- The New-thread dropdown stays inside the app window instead of opening off-screen.
- Composer drafts are kept per thread instead of carrying text across switches.
- The Memory tab is scoped by project path, not display slug.
- A first-boot data migration could run during short-lived probe boots and lose user data; migrations now only run in real app launches.
- Creating a project from a fresh install failed because two IPC endpoints were missing from the preload bridge.
0.1.0 2026-08-13
First public release.
- Threads: one agent session per thread, with sticky permission modes, model override, reasoning effort, fork and hand-off, and Best of N across providers.
- Worktrees and PRs: per-thread branches, live diff, checkpoints with restore, PR checks as badges, and one-click squash merge.
- Build workflows: multi-phase templates (seed, analyze, verify, judge, synthesize) with per-phase fan-out.
- Orchestration: every session gets thread tools so any agent can list, fork, drive and poll the others.
- Shared memory: a supervised local memory server injected into every session.
- Automations: scheduled prompts with pause and run-now, surfaced as ordinary threads.
- Spend guardrails: a daily budget that blocks new runs once reached, with per-thread token and cost readouts.
- Web mode: the full UI served over HTTP and WebSocket behind a session token.
- SSH remote projects: run agents on another machine over key-based SSH.