Files
openchamber/changelog/1.21.1.md
T
Bohdan Triapitsyn 9f78de9e89 docs(changelog): rewrite the last thirty releases for readers
Releases 1.13.1 through 1.22.1 are regrouped by what each change is
(New, Improvements, Fixes, Misc) and reworded in the voice the
changelog-authoring skill asks for: one or two plain sentences per
bullet, the symptom or the capability named, no mechanism. Packed
bullets were split, every fact and every contributor credit kept.
Older releases keep the mechanical grouping.

Claude-Session: https://claude.ai/code/session_01VqV56Hez25hTxXH4ipJfzH
2026-09-05 15:58:34 +03:00

15 KiB

version, date
version date
1.21.1 2026-08-29

App

New

  • Turkish interface: OpenChamber can be used in Turkish (thanks to @fitzgpt).
  • Worktrees: a session menu can move an idle session and its sub-sessions into an existing worktree. OpenChamber finds worktrees created elsewhere, asks before carrying uncommitted changes over, and keeps those changes safe if the move fails partway (thanks to @mattv8).
  • Composer: pasting a big block of text, about 2,000 characters or 25 lines, offers to attach it as a pasted-context-N.txt file and leaves a [pasted-context-N.txt] reference at the caret. Settings → Chat can make it always attach or always paste inline (thanks to @makeittech).
  • Work status: a session's cost includes what its subagents spent, split under the context meter and shown per subagent (thanks to @igorvelho).
  • Multi-Run: a group can hold more than five models, including isolated runs that make one worktree per model (thanks to @tomzx).
  • Projects: the folder picker can select several directories at once and add them together (thanks to @herjarsa).
  • Files: the Markdown preview has an in-document search (Ctrl/Cmd+F) with highlighting and next/previous (thanks to @makeittech).
  • Panels: right-click an editor, chat, or browser tab to close it, close others, close left or right, or close all (thanks to @adavila0703).
  • Chat: a tool card with a file path has a quick-open button (thanks to @robertoberto).
  • Mobile: Android connections can trust user-installed certificate authorities, such as a local proxy's (thanks to @Silvenga).
  • Debug: the debug panel (Ctrl/Cmd+Shift+D) has a Requests tab showing in-flight requests and their age over the last five minutes (thanks to @tomzx).

Improvements

  • Chat: the text the model writes before it asks a question appears right away instead of waiting in the Activity group until the turn ends (thanks to @makeittech).
  • Usage: GitHub Copilot shows a single AI Credits window matching Copilot's token-based quota, in place of the Chat Requests and Completions windows (thanks to @jakoss).
  • Files: files up to 20,000 lines open in the full-file preview, up from 5,000 (thanks to @gaojunran).
  • Mobile: Chats, the sessions that belong to no project, appear in the sessions sheet above the project list.
  • Projects: the folder picker can step into a directory that is already a project and browse from there (thanks to @weixiang1862).
  • Web/PWA: the installed app uses the shorter name "OpenChamber" (thanks to @bketelsen and @greghaynes).
  • Sidebar: Recent rows show a compact timestamp on web and desktop.

Fixes

  • Chat: a very large tool result is capped before it renders, so it no longer freezes the page (thanks to @JSap0914).
  • Chat: a code block with JavaScript template strings no longer sends the syntax highlighter into endless backtracking (thanks to @makeittech).
  • Chat: a diff with a truncated header no longer crashes the conversation (thanks to @pascalandr).
  • Chat: a draft or recalled message with Windows line endings no longer throws "Selection points outside of document" every time you open it (thanks to @yulia-ivashko).
  • Chat: a session no longer looks frozen after a page reload or a late second client. Pending permission and question cards come back (thanks to @yangyaofei).
  • Chat: a session no longer looks frozen after you dismiss the agent's questions and send a new task (thanks to @bashrusakh).
  • Chat: when the turn-ending signal from OpenCode is lost, the working spinner clears within about a second instead of up to ten (thanks to @makeittech).
  • /btw side questions: a btw session answers the side question instead of carrying on with the parent's plan, and it forks at the last completed turn, so it never inherits a reply that is still streaming (thanks to @pocharlies).
  • Composer: typing three backticks leaves the caret inside the finished code fence, an empty input keeps a visible caret, and platform autocorrect behaves as it should (thanks to @franzudev, @TTTPOB, and @IbrahimKhan12).
  • Chat scrolling: with "Follow new content while streaming" off, sending from the middle of a conversation no longer jumps to the new message.
  • Chat scrolling: a middle-button pan or Shift+Space stops auto-follow the way the wheel does, and an upward wheel inside a tool output box scrolls that box instead of the chat (thanks to @pascalandr).
  • Chat scrolling: PageUp/PageDown in the prompt box no longer shifts the whole window up and hides the title bar.
  • Chat: question prompts render Markdown (thanks to @pascalandr).
  • Chat: a bare link next to CJK or full-width punctuation no longer swallows it (thanks to @gaojunran).
  • Chat: inline code and chips are readable in every theme (thanks to @difagume).
  • Chat: a finished reasoning block shows in full instead of replaying as if it were still thinking, the text-selection menu stays inside the window, and the sticky user-message header no longer fades over the first lines of the reply (thanks to @makeittech).
  • Chat: sending without a selected model says what is missing (thanks to @rvaldemar).
  • Chat: /init stays in slash-command autocomplete after the conversation starts (thanks to @Dawnfz-Lenfeng).
  • Chat: copying a message keeps Markdown paragraph, list, and code-block spacing (thanks to @ChangeHow).
  • Chat: Ctrl/Cmd+digit is ignored while you type in a field, and a model you picked by hand survives switching between Build and Plan (thanks to @makeittech).
  • Chat: a message made only of quoted context fragments appears in the prompt navigator.
  • Chat: opening or closing the context panel no longer leaves a blank tail under the last message.
  • Files: a file reached through a symlink inside the workspace, or under a project root that is itself a symlink, opens again instead of failing with an access error (thanks to @herjarsa).
  • Files: clicking a folder or file in the sidebar tree opens it reliably on macOS trackpads, where a tiny pointer move used to swallow the click (thanks to @makeittech).
  • Browser: when the agent captures a page while the browser panel is hidden, the panel is revealed first instead of the capture failing.
  • Work status: undoing or redoing a parent session keeps its subagents at the same point in history (thanks to @alexandrereyes).
  • Mobile: opening an agent that is already open switches to its editor instead of duplicating it (thanks to @bashrusakh).
  • Sidebar: searching sessions also finds Chats, the sessions that belong to no project, which used to vanish as soon as you typed (thanks to @yulia-ivashko).
  • Sidebar: pending permission and question badges are no longer covered by the hover actions (thanks to @makeittech).
  • Projects: sending, forking, and image attachments work in projects whose path has non-ASCII characters, such as Masaüstü (thanks to @fitzgpt).
  • Web/PWA: a notification click focuses an existing window (thanks to @bketelsen and @greghaynes).
  • Themes: custom themes loaded through symlinks work (thanks to @divyam234).
  • Plans: a saved plan opens with its content again for chats, worktrees outside the project path, and tabs restored after a reload, and an edit made right before closing is no longer lost.
  • Settings: the editor font size survives a restart (thanks to @pascalandr).
  • Settings: a change made right before you close the window is saved (thanks to @makeittech).
  • Settings: number fields and selects no longer clip at large font sizes (thanks to @makeittech).
  • Settings: refreshing GitHub account state no longer interrupts the page (thanks to @floze-the-genius).
  • Settings: the Cloudflare Tunnel download link works (thanks to @AyoubAchour).
  • Settings: Windows skill paths are classified correctly, so disabled and duplicate skills are hidden as intended (thanks to @Ttungx).
  • Settings/Providers: after you save an API key or sign in, the provider no longer shows "Credentials missing" with its models hidden until you switch away and back (thanks to @herjarsa).
  • Small model: requests send the provider's configured headers, such as an API-gateway subscription key (thanks to @dmitrii-galantsev).
  • Small model: a configured Anthropic endpoint is used without a doubled /v1, and Google models without reasoning no longer get a thinking option (thanks to @mpeter and @IngTian).
  • Git: the status panel refreshes from the real repository after checkout, branch, stash, merge, rebase, or reset, and remote branches that were never fetched appear in branch lists (thanks to @makeittech).
  • Git: the Branch diff scope compares against the right base for branches created from the current branch (thanks to @gaojunran).
  • Git: picking origin/main in the branch selector checks out the local branch instead of a detached HEAD (thanks to @yulia-ivashko).
  • Git: branch search hides branches that do not match (thanks to @bashrusakh).
  • Updates: "Update OpenCode" no longer fails with a bare "Bad Request". OpenChamber names the release it will install and shows OpenCode's reason when it refuses (thanks to @mdatsev and @yulia-ivashko).
  • Updates: the desktop "Restart to Update" button says why an install failed, including an unsigned local build, and stays available to retry (thanks to @mdatsev and @yulia-ivashko).
  • Desktop: a crashed window recovers on its own, and repeated crashes end in a visible failure page instead of a reload loop (thanks to @wqpan).
  • Desktop: a slow or interactive shell startup file no longer stalls startup while OpenChamber looks for OpenCode. Each probe gives up after five seconds, which is what left a Homebrew OpenCode looking undetected from a Dock launch (thanks to @mskadu).
  • Windows: restarting managed OpenCode cleans up orphaned listeners and process trees, closing the app stops OpenCode, and scheduled startup no longer fails on Task Scheduler's command length limit (thanks to @sergiofspedro, @a0000001, and @HAHH9527).
  • Windows: startup cleanup of leftover processes no longer blocks the server (thanks to @bashrusakh).
  • Server: an OPENCODE_BINARY from the environment is kept when settings.json clears its own override (thanks to @bashrusakh).
  • Server: recovery through OPENCODE_HOST keeps the configured host and port (thanks to @colinmollenhour).
  • Server: openchamber connect-url no longer risks tearing settings.json while the desktop app runs, which could unpair every device (thanks to @shijie152).
  • Sessions: switching quickly no longer saves the wrong scroll position, and the log no longer fills with worktree warnings for folders that are not Git repositories (thanks to @herjarsa).
  • VS Code: the extension starts in the current workspace folder instead of one restored from storage (thanks to @makeittech).

VS Code

New

  • Turkish interface: OpenChamber can be used in Turkish (thanks to @fitzgpt).
  • Composer: pasting a big block of text offers to attach it as a pasted-context-N.txt file and leaves a reference at the caret. Settings → Chat can make it always attach or always paste inline (thanks to @makeittech).
  • Multi-Run: a group can hold more than five models (thanks to @tomzx).
  • Chat: a tool card with a file path has a quick-open button that opens the file in the editor (thanks to @robertoberto).

Improvements

  • Context usage reports a session's cost including everything its subagents spent (thanks to @igorvelho).
  • Chat: the text the model writes before it asks a question appears right away instead of waiting until the turn ends (thanks to @makeittech).
  • Usage: GitHub Copilot shows a single AI Credits window matching Copilot's token-based quota (thanks to @jakoss).
  • The extension reuses its OpenCode output channel across managed-server restarts instead of making duplicates (thanks to @TTTPOB).

Fixes

  • Chat: a very large tool result is capped before it renders, so it no longer freezes the panel (thanks to @JSap0914).
  • Chat: a code block with JavaScript template strings no longer sends the highlighter into endless backtracking (thanks to @makeittech).
  • Chat: a diff with a truncated header no longer crashes the conversation (thanks to @pascalandr).
  • Chat: a draft or recalled message with Windows line endings no longer throws "Selection points outside of document" every time you open it (thanks to @yulia-ivashko).
  • Chat: a session no longer looks frozen after the webview reloads or opens late. Pending permission and question cards come back (thanks to @yangyaofei).
  • Chat: a session no longer looks frozen after you dismiss the agent's questions and send a new task (thanks to @bashrusakh).
  • Chat: when the turn-ending signal from OpenCode is lost, the working spinner clears within about a second instead of up to ten (thanks to @makeittech).
  • /btw side questions: a btw session answers the side question instead of carrying on with the parent's plan, and it forks at the last completed turn, so it never inherits a reply that is still streaming (thanks to @pocharlies).
  • Composer: typing three backticks leaves the caret inside the finished code fence, an empty input keeps a visible caret, and platform autocorrect behaves as it should (thanks to @franzudev, @TTTPOB, and @IbrahimKhan12).
  • Chat scrolling: with "Follow new content while streaming" off, sending while scrolled up leaves the view where it is, and a middle-button pan or Shift+Space stops auto-follow the way the wheel does (thanks to @pascalandr).
  • Chat scrolling: PageUp/PageDown in the prompt box no longer shifts the whole panel up.
  • Chat: question prompts render Markdown (thanks to @pascalandr).
  • Chat: a bare link next to CJK or full-width punctuation no longer swallows it (thanks to @gaojunran).
  • Chat: inline code, chips, and model-picker highlights stay readable in high-contrast themes (thanks to @difagume and @bashrusakh).
  • Chat: a finished reasoning block shows in full instead of replaying, the text-selection menu stays inside the window, and the sticky user-message header no longer fades over the reply (thanks to @makeittech).
  • Chat: sending without a selected model says what is missing (thanks to @rvaldemar).
  • Chat: /init stays in slash-command autocomplete after the conversation starts (thanks to @Dawnfz-Lenfeng).
  • Chat: copying a message keeps Markdown spacing (thanks to @ChangeHow).
  • Chat: a model you picked by hand survives switching between Build and Plan (thanks to @makeittech).
  • Updates: updating OpenCode no longer fails with a bare "Bad Request". The extension names the release it will install and shows OpenCode's reason when it refuses (thanks to @mdatsev and @yulia-ivashko).
  • "Add Project" adds the folder you chose to the workspace instead of failing (thanks to @bashrusakh).
  • The extension starts in the current workspace folder instead of one restored from storage (thanks to @makeittech).
  • Sidebar: pending permission and question badges are no longer covered by the hover actions (thanks to @makeittech).
  • Sidebar: worktree branch search hides branches that do not match (thanks to @bashrusakh).
  • Settings/Providers: after you save an API key or sign in, the provider no longer shows "Credentials missing" with its models hidden until you switch away and back (thanks to @herjarsa).
  • Settings: number fields and selects no longer clip at large font sizes (thanks to @makeittech).
  • Settings: Windows skill paths are classified correctly, so disabled and duplicate skills are hidden as intended (thanks to @Ttungx).
  • Windows: closing VS Code stops the managed OpenCode process instead of leaving it running (thanks to @a0000001).
  • Work status: undoing or redoing a parent session keeps its subagents at the same point in history (thanks to @alexandrereyes).