diff --git a/CHANGELOG.md b/CHANGELOG.md index 161da6bd..39cef060 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,71 +7,33 @@ All notable changes to this project will be documented in this file. - **Turkish interface:** OpenChamber can now be used in Turkish (thanks to @fitzgpt). - **Git/Worktrees:** session menus can now move an idle session and its sub-sessions into an existing worktree. OpenChamber discovers worktrees created elsewhere when the target list opens, asks before transferring uncommitted changes, and keeps those changes safe if a move fails partway (thanks to @mattv8). - **`/btw` side questions:** a btw session now answers the side question instead of carrying on with the parent's plan, and forks at the last completed turn so a reply that is still streaming is never inherited (thanks to @pocharlies). -- Mobile: Chats — sessions that belong to no project — now appear in the sessions sheet above the project list, with the same swipe actions and search as project sessions. Previously they could be created on mobile but never found again. -- Chat: with "Follow new content while streaming" turned off, sending a message while scrolled up in the conversation now leaves the view where it is instead of jumping to the new message. Sending from the bottom still parks the message as before. -- Chat: scrolling away from a streaming reply with a middle-button pan or Shift+Space now stops auto-follow, the same as the wheel does, so wheel-less mice and pointer-driven tablets can read earlier content while the reply streams. An upward wheel inside a tool output box scrolls that box instead of releasing the whole chat (thanks to @pascalandr). -- Chat: pressing PageUp/PageDown in the prompt box, or moving the caret through a long prompt, no longer shifts the whole window up and hides the title bar. -- Work status: the session cost now counts what its subagents spent, with a line under the context meter splitting the session's own cost from the subagents' share, and each subagent's cost shown next to it in the Subagents list. Previously a session that delegated most of its work looked far cheaper than it was (thanks to @igorvelho). -- Chat: undoing or redoing a parent session now keeps its subagent sessions at the same point in history instead of leaving their later work behind (thanks to @alexandrereyes). -- Chat: pending permission and question cards come back after a page reload or when a second client opens the session late, instead of the session hanging on a tool that is waiting for an answer nobody can see (thanks to @yangyaofei). -- Chat: dismissing the agent's questions without answering and sending a new task no longer leaves the session looking frozen on the dismissed question (thanks to @bashrusakh). +- Chat scrolling: with "Follow new content while streaming" off, sending from the middle of a conversation no longer jumps to the new message; a middle-button pan or Shift+Space stops auto-follow like the wheel does, and an upward wheel inside a tool output box scrolls that box instead of the chat (thanks to @pascalandr); PageUp/PageDown in the prompt box no longer shifts the whole window up and hides the title bar. +- Chat no longer crashes or freezes on: very large tool results, which are capped before rendering (thanks to @JSap0914); a code block with JavaScript template strings, which could send the syntax highlighter into endless backtracking (thanks to @makeittech); a diff with a truncated header (thanks to @pascalandr); and a draft or recalled message containing Windows line endings, which threw "Selection points outside of document" on every visit (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) — nor after dismissing the agent's questions and sending a new task (thanks to @bashrusakh). +- Work status: the session cost now includes what its subagents spent, split under the context meter and shown per subagent (thanks to @igorvelho), and undoing or redoing a parent session keeps its subagents at the same point in history (thanks to @alexandrereyes). +- Chat rendering: question prompts render Markdown (thanks to @pascalandr); bare links next to CJK or full-width punctuation no longer absorb it (thanks to @gaojunran); inline code and chips are readable in every theme (thanks to @difagume); a completed reasoning block shows in full instead of replaying as if still thinking, the text-selection menu stays inside the viewport, and the sticky user-message header no longer fades over the first lines of the reply (thanks to @makeittech). +- Chat actions: tool cards with a file path get a quick-open button (thanks to @robertoberto); sending without a selected model explains what is missing (thanks to @rvaldemar); `/init` stays in slash-command autocomplete after the conversation starts (thanks to @Dawnfz-Lenfeng); copying a message keeps Markdown paragraph, list, and code-block spacing (thanks to @ChangeHow); Ctrl/Cmd+digit is ignored while typing in a field, and a manually chosen model survives switching between Build and Plan (thanks to @makeittech). +- Composer: typing three backticks leaves the caret inside the completed code fence, empty inputs keep a visible caret, and platform autocorrect behavior is preserved (thanks to @franzudev, @TTTPOB, and @IbrahimKhan12). - Usage: GitHub Copilot now shows a single AI Credits window, matching Copilot's token-based quota, in place of the old Chat Requests and Completions windows (thanks to @jakoss). -- Updates: "Update OpenCode" no longer fails with a bare "Bad Request". OpenChamber now names the release to install, which recent OpenCode versions require, and when an update is refused the reason from OpenCode is shown instead of the HTTP status. This affects setups where OpenChamber runs an OpenCode you installed yourself; the desktop app bundles OpenCode and never offered the button (thanks to @mdatsev and @yulia-ivashko). -- Chat: a saved draft or recalled message containing Windows line endings no longer replaces the chat with a "Selection points outside of document" error — text like this reached the input from reverted messages, message history and plugin output, and once it was saved as a draft the error came back on every visit to that session (thanks to @mattv8 and @yulia-ivashko). -- Desktop: a crashed renderer window now recovers automatically, while repeated crashes stop with a visible failure page instead of entering a reload loop (thanks to @wqpan). -- Desktop: "Restart to Update" no longer looks dead when the update cannot be installed. The update window now shows the reason, including when the running copy was not installed from an official signed release, and the button stays available to retry (thanks to @yulia-ivashko). -- Chat: very large tool results are capped before rendering instead of exhausting the renderer's memory and crashing the app (thanks to @JSap0914). - Multi-Run: groups can now contain more than five models, including isolated runs that create one worktree per model (thanks to @tomzx). -- Files: opening a file over 5,000 lines is no longer blocked. The line-count guard now allows up to 20,000 lines, so large files reach the virtualized full-file preview instead of being rejected at the open step (thanks to @gaojunran). -- Chat: copying a message now preserves the spacing between Markdown paragraphs, lists, and fenced code blocks in plain text, Markdown, and rich clipboard content (thanks to @ChangeHow). -- Chat: question prompts now render Markdown, including links, code, and lists (thanks to @pascalandr). -- Chat: tool cards with a file path now show a quick-open button in the header (thanks to @robertoberto). -- Chat: sending without a selected provider or model now explains what is missing instead of silently doing nothing (thanks to @rvaldemar). -- Chat: `/init` remains available in slash-command autocomplete after a conversation has started (thanks to @Dawnfz-Lenfeng). -- Chat: a diff that arrives with a truncated header no longer crashes the tool card (thanks to @pascalandr). -- Composer: typing three backticks now leaves the caret inside the completed code fence, empty inputs keep a visible caret, and platform autocorrect behavior is preserved (thanks to @franzudev, @TTTPOB, and @IbrahimKhan12). -- Chat: bare links next to Chinese, Japanese, or full-width punctuation no longer absorb that punctuation into the URL (thanks to @gaojunran). -- Chat: inline code and chips have readable contrast across light, dark, and high-contrast themes (thanks to @difagume). -- Plans: saved plans open with their content again for chats, worktrees outside the project path, and plan tabs restored after a reload, instead of an empty editor; closing or switching right after an edit no longer loses it. +- Files: the Markdown preview has an in-document search (Ctrl/Cmd+F) with highlighting and next/previous, and 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); files up to 20,000 lines open in the full-file preview instead of being rejected at 5,000 (thanks to @gaojunran). +- Plans: saved plans open with their 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. - Browser: when the agent captures a page while the browser panel is hidden, the panel is revealed first instead of the capture failing. -- Settings: the editor font-size setting now survives a restart (thanks to @pascalandr). -- Settings/Skills: Windows paths are now classified correctly, so disabled external skills are hidden and duplicate `.agents` and `.claude` skills are removed as intended (thanks to @Ttungx). -- Settings/GitHub: refreshing account state no longer briefly unmounts the settings page and interrupts disconnect actions (thanks to @floze-the-genius). -- Settings: fixed the Cloudflare Tunnel download link shown when cloudflared is not installed (thanks to @AyoubAchour). -- Providers: small-model tasks now use a configured Anthropic endpoint correctly, without duplicating `/v1`, and Google models without reasoning support no longer receive an unsupported thinking option (thanks to @mpeter and @IngTian). -- Files: the rendered Markdown preview has an in-document search (Ctrl/Cmd+F) with match highlighting and next/previous navigation, in both the inline and fullscreen preview (thanks to @makeittech). -- Chat: a code block with JavaScript template strings no longer freezes the renderer or turns the window black. The syntax highlighter skipped a grammar rule that could backtrack forever, and a highlight that still hangs is abandoned after five seconds and shown as plain text (thanks to @makeittech). -- Chat: a completed reasoning block now shows in full when a session is reopened, instead of replaying as if the model were still thinking (thanks to @makeittech). -- Chat: the text-selection menu no longer disappears above the viewport when a selection runs past the top of the scroll area (thanks to @makeittech). -- Chat: Ctrl/Cmd+digit panel switching is ignored while typing in an input, so browser tab shortcuts work again from the composer and other fields (thanks to @makeittech). -- Chat: a manually chosen model now stays selected when switching between Build and Plan modes (thanks to @makeittech). -- Chat: the sticky user-message header no longer paints its fade over the first lines of the reply (thanks to @makeittech). -- Sidebar: rows in the Recent section show a compact timestamp on web and desktop, not only on touch devices (thanks to @makeittech). -- Sidebar: the pending permission and question badges no longer get covered by the hover actions on a session row (thanks to @makeittech). -- Files: clicking a folder or file in the sidebar tree now opens it reliably on macOS trackpads, where a tiny pointer move used to start a drag and swallow the click (thanks to @makeittech). -- Git: after a checkout, branch, stash, merge, rebase, or reset the status panel refreshes from the real repository state instead of a stale cache (thanks to @makeittech). -- Git: branches that exist on the remote but were never fetched locally now appear in branch lists (thanks to @makeittech). -- Settings: the Small Model chosen in Settings is now passed to the managed OpenCode process, so session titles and other small-model tasks use it (thanks to @makeittech). -- Settings: a change made right before closing the window is saved instead of being lost to the pending write (thanks to @makeittech). -- Settings: number fields and selects no longer clip their values at large interface font sizes or tight spacing (thanks to @makeittech). -- Providers: small-model requests now send the custom headers configured on the provider, such as an API-gateway subscription key, matching how chat requests authenticate (thanks to @dmitrii-galantsev). -- VS Code: the extension starts in the current workspace folder instead of a previously used one restored from storage (thanks to @makeittech). -- Projects: the folder picker can enter a directory that is already a project, so it can be selected as the starting point for browsing elsewhere (thanks to @weixiang1862). -- Projects: sending, forking, and image attachments now work in projects whose path contains non-ASCII characters, such as `Masaüstü` (thanks to @fitzgpt). -- Git: the Branch diff scope no longer shows an empty or wrong comparison for branches created with `git switch -c` or `git checkout -b` from the current branch (thanks to @gaojunran). -- Git: picking a remote branch such as `origin/main` in the branch selector now switches you to that branch instead of leaving the repository on a detached `HEAD` with no branch name (thanks to @yulia-ivashko). -- Git: branch search now hides non-matching branches instead of leaving unrelated results visible (thanks to @bashrusakh). +- Sidebar: Recent rows show a compact timestamp on web and desktop, and pending permission/question badges are no longer covered by the hover actions (thanks to @makeittech). +- Mobile: Chats — sessions that belong to no project — now appear in the sessions sheet above the project list; opening an already-open agent switches to its editor instead of duplicating it (thanks to @bashrusakh); Android connections can trust user-installed certificate authorities, such as a local proxy's (thanks to @Silvenga). +- Settings: the editor font size survives a restart (thanks to @pascalandr); a change made right before closing the window is saved (thanks to @makeittech); number fields and selects no longer clip at large font sizes (thanks to @makeittech); refreshing GitHub account state no longer interrupts the page (thanks to @floze-the-genius); the Cloudflare Tunnel download link is fixed (thanks to @AyoubAchour); Windows skill paths are classified correctly, so disabled and duplicate skills are hidden as intended (thanks to @Ttungx). +- Small model: the model chosen in Settings now reaches the managed OpenCode process, so session titles use it (thanks to @makeittech); requests send the provider's configured headers, such as an API-gateway subscription key (thanks to @dmitrii-galantsev); a configured Anthropic endpoint is used without a doubled `/v1`, and Google models without reasoning no longer receive a thinking option (thanks to @mpeter and @IngTian). +- Projects: the folder picker can enter a directory that is already a project to browse from there (thanks to @weixiang1862), and sending, forking, and image attachments work in projects whose path has non-ASCII characters, such as `Masaüstü` (thanks to @fitzgpt). +- Git: the status panel refreshes from real repository state after checkout, branch, stash, merge, rebase, or reset, and remote branches that were never fetched appear in branch lists (thanks to @makeittech); the Branch diff scope no longer compares against the wrong base for branches created from the current branch (thanks to @gaojunran); picking `origin/main` in the branch selector checks out the local branch instead of a detached `HEAD` (thanks to @yulia-ivashko); branch search hides non-matching branches (thanks to @bashrusakh). +- Updates: "Update OpenCode" no longer fails with a bare "Bad Request" — OpenChamber names the release to install and shows OpenCode's reason when refused — and the desktop "Restart to Update" button shows why an install failed, including an unsigned local build, and stays available to retry (thanks to @mdatsev and @yulia-ivashko). +- Desktop: a crashed renderer window recovers automatically, with a visible failure page instead of a reload loop after repeated crashes (thanks to @wqpan); 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: managed OpenCode restarts clean 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). +- Server: an `OPENCODE_BINARY` from the environment is no longer discarded when `settings.json` clears its own override (thanks to @bashrusakh); recovery through `OPENCODE_HOST` keeps the configured host and port (thanks to @colinmollenhour); `openchamber connect-url` no longer risks tearing `settings.json` while the desktop app runs, which could unpair every device (thanks to @shijie152). +- Web/PWA: notification clicks focus an existing window, and the installed app uses the shorter "OpenChamber" name (thanks to @bketelsen and @greghaynes). +- VS Code: the extension starts in the current workspace folder instead of one restored from storage (thanks to @makeittech). - Themes: custom themes loaded through symlinks now work (thanks to @divyam234). -- Mobile/Android: connections can now trust user-installed certificate authorities, for example certificates from a local proxy or private network (thanks to @Silvenga). -- Mobile: opening an agent that is already open now switches to its editor instead of creating a duplicate editor (thanks to @bashrusakh). -- Web/PWA: notification clicks focus an existing OpenChamber window, and the installed app uses the shorter "OpenChamber" name (thanks to @bketelsen and @greghaynes). -- Windows: managed OpenCode restarts now clean up orphaned listeners and process trees, closing the app no longer leaves OpenCode running, and scheduled startup no longer fails when its command exceeds Windows Task Scheduler's length limit (thanks to @sergiofspedro, @a0000001, and @HAHH9527). -- Server: an `OPENCODE_BINARY` set in the environment is no longer discarded when `settings.json` clears its own override, which made the managed OpenCode fail to start (thanks to @bashrusakh). -- Desktop/Server: a slow or interactive shell startup file (`.zshrc` with nvm, pyenv, and the like) no longer stalls OpenChamber's startup while it looks for OpenCode. Each shell probe now gives up after five seconds and detection continues from the known install locations, which is what left a Homebrew-installed OpenCode looking undetected when the Mac app was launched from the Dock (thanks to @mskadu). -- Server: when OpenCode is reached through `OPENCODE_HOST`, recovery after a lost connection keeps the configured host and port instead of falling back to the defaults (thanks to @colinmollenhour). -- CLI: `openchamber connect-url` no longer risks tearing `settings.json` while the desktop app is running, which could regenerate the relay identity and unpair every device (thanks to @shijie152). - 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). -- Reliability: switching sessions quickly no longer saves the wrong scroll position for the session you left (thanks to @herjarsa); the log no longer fills with worktree warnings for folders that are not Git repositories (thanks to @herjarsa); and the startup cleanup of leftover processes no longer blocks the server on Windows (thanks to @bashrusakh). +- Reliability: switching sessions quickly no longer saves the wrong scroll position, and the log no longer fills with worktree warnings for non-Git folders (thanks to @herjarsa); startup cleanup of leftover processes no longer blocks the server on Windows (thanks to @bashrusakh). ## [1.21.0] - 2026-08-26 diff --git a/packages/vscode/CHANGELOG.md b/packages/vscode/CHANGELOG.md index 50746211..381d48e7 100644 --- a/packages/vscode/CHANGELOG.md +++ b/packages/vscode/CHANGELOG.md @@ -2,40 +2,21 @@ - **Turkish interface:** OpenChamber can now be used in Turkish (thanks to @fitzgpt). - **`/btw` side questions:** a btw session now answers the side question instead of carrying on with the parent's plan, and forks at the last completed turn so a reply that is still streaming is never inherited (thanks to @pocharlies). -- The context usage readout now reports the session cost including everything its subagents spent, matching the work status panel instead of showing a lower figure (thanks to @igorvelho). -- Chat: undoing or redoing a parent session now keeps its subagent sessions at the same point in history instead of leaving their later work behind (thanks to @alexandrereyes). -- Chat: pending permission and question cards come back after the webview reloads or when the session is opened late, instead of the session hanging on a tool that is waiting for an answer nobody can see (thanks to @yangyaofei). -- Chat: dismissing the agent's questions without answering and sending a new task no longer leaves the session looking frozen on the dismissed question (thanks to @bashrusakh). -- Chat: with "Follow new content while streaming" turned off, sending a message while scrolled up now leaves the view where it is instead of jumping to the new message. -- Chat: scrolling away from a streaming reply with a middle-button pan or Shift+Space now stops auto-follow, the same as the wheel does. An upward wheel inside a tool output box scrolls that box instead of releasing the whole chat (thanks to @pascalandr). -- Chat: pressing PageUp/PageDown in the prompt box, or moving the caret through a long prompt, no longer shifts the whole panel up and hides its top edge. -- GitHub Copilot usage now shows a single AI Credits window, matching Copilot's token-based quota, in place of the old Chat Requests and Completions windows (thanks to @jakoss). -- Updating OpenCode no longer fails with a bare "Bad Request": the extension names the release to install, which recent OpenCode versions require, and shows OpenCode's own reason when an update is refused (thanks to @mdatsev and @yulia-ivashko). -- A saved draft or recalled message containing Windows line endings no longer replaces the chat with a "Selection points outside of document" error, and no longer brings the error back every time you reopen that session (thanks to @mattv8 and @yulia-ivashko). -- "Add Project" now adds the chosen folder to the workspace instead of failing with "Failed to add project" (thanks to @bashrusakh). +- Chat scrolling: with "Follow new content while streaming" off, sending while scrolled up leaves the view where it is; a middle-button pan or Shift+Space stops auto-follow like the wheel does (thanks to @pascalandr); PageUp/PageDown in the prompt box no longer shifts the whole panel up. +- Chat no longer crashes or freezes on: very large tool results, which are capped before rendering (thanks to @JSap0914); a code block with JavaScript template strings that sent the highlighter into endless backtracking (thanks to @makeittech); a diff with a truncated header (thanks to @pascalandr); and a draft or recalled message with Windows line endings, which threw "Selection points outside of document" on every visit (thanks to @yulia-ivashko). +- Chat: a session no longer looks frozen after the webview reloads or is opened late — pending permission and question cards come back (thanks to @yangyaofei) — nor after dismissing the agent's questions and sending a new task (thanks to @bashrusakh). +- Context usage now reports the session cost including everything its subagents spent (thanks to @igorvelho), and undoing or redoing a parent session keeps its subagents at the same point in history (thanks to @alexandrereyes). +- Chat rendering: question prompts render Markdown (thanks to @pascalandr); bare links next to CJK or full-width punctuation no longer absorb it (thanks to @gaojunran); inline code, chips, and model-picker highlights stay readable in high-contrast themes (thanks to @difagume and @bashrusakh); a completed reasoning block shows in full instead of replaying, the text-selection menu stays inside the viewport, and the sticky user-message header no longer fades over the reply (thanks to @makeittech). +- Chat actions: tool cards with a file path get a quick-open button that opens the file in the editor (thanks to @robertoberto); sending without a selected model explains what is missing (thanks to @rvaldemar); `/init` stays in slash-command autocomplete after the conversation starts (thanks to @Dawnfz-Lenfeng); copying a message keeps Markdown spacing (thanks to @ChangeHow); a manually chosen model survives switching between Build and Plan (thanks to @makeittech). +- Composer: typing three backticks leaves the caret inside the completed code fence, empty inputs keep a visible caret, and platform autocorrect behavior is preserved (thanks to @franzudev, @TTTPOB, and @IbrahimKhan12). +- GitHub Copilot usage now shows a single AI Credits window, matching Copilot's token-based quota (thanks to @jakoss). +- Updating OpenCode no longer fails with a bare "Bad Request": the extension names the release to install and shows OpenCode's own reason when an update is refused (thanks to @mdatsev and @yulia-ivashko). +- "Add Project" now adds the chosen folder to the workspace instead of failing (thanks to @bashrusakh), and the extension starts in the current workspace folder instead of one restored from storage (thanks to @makeittech). - Multi-Run groups can now contain more than five models (thanks to @tomzx). -- Chat: very large tool results are capped before rendering instead of exhausting the webview's memory and crashing it (thanks to @JSap0914). -- Chat: copying a message now preserves the spacing between Markdown paragraphs, lists, and fenced code blocks in plain text, Markdown, and rich clipboard content (thanks to @ChangeHow). -- Chat: question prompts now render Markdown, including links, code, and lists (thanks to @pascalandr). -- Chat: tool cards with a file path now show a quick-open button in the header that opens the file in the editor (thanks to @robertoberto). -- Chat: sending without a selected provider or model now explains what is missing instead of silently doing nothing (thanks to @rvaldemar). -- Chat: `/init` remains available in slash-command autocomplete after a conversation has started (thanks to @Dawnfz-Lenfeng). -- Chat: a diff that arrives with a truncated header no longer crashes the tool card (thanks to @pascalandr). -- Chat: a code block with JavaScript template strings no longer freezes the webview. The highlighter skips a grammar rule that could backtrack forever, and a highlight that still hangs is abandoned after five seconds and shown as plain text (thanks to @makeittech). -- Chat: a completed reasoning block now shows in full when a session is reopened, instead of replaying as if the model were still thinking (thanks to @makeittech). -- Chat: the text-selection menu no longer disappears above the viewport when a selection runs past the top of the scroll area (thanks to @makeittech). -- Chat: a manually chosen model now stays selected when switching between Build and Plan modes (thanks to @makeittech). -- Chat: the sticky user-message header no longer paints its fade over the first lines of the reply (thanks to @makeittech). -- Sidebar: the pending permission and question badges no longer get covered by the hover actions on a session row (thanks to @makeittech). -- Settings: number fields and selects no longer clip their values at large interface font sizes or tight spacing (thanks to @makeittech). -- The extension now starts in the current workspace folder instead of a previously used one restored from storage (thanks to @makeittech). -- Composer: typing three backticks now leaves the caret inside the completed code fence, empty inputs keep a visible caret, and platform autocorrect behavior is preserved (thanks to @franzudev, @TTTPOB, and @IbrahimKhan12). -- Chat: bare links next to Chinese, Japanese, or full-width punctuation no longer absorb that punctuation into the URL (thanks to @gaojunran). -- Chat: inline code, chips, and model-picker highlights remain readable in high-contrast themes (thanks to @difagume and @bashrusakh). -- Settings/Skills: Windows paths are now classified correctly, so disabled external skills are hidden and duplicate `.agents` and `.claude` skills are removed as intended (thanks to @Ttungx). -- Worktrees: branch search now hides non-matching branches instead of leaving unrelated results visible (thanks to @bashrusakh). +- Sidebar: pending permission and question badges are no longer covered by the hover actions (thanks to @makeittech); worktree branch search hides non-matching branches (thanks to @bashrusakh). +- Settings: number fields and selects no longer clip at large font sizes (thanks to @makeittech), and Windows skill paths are classified correctly, so disabled and duplicate skills are hidden as intended (thanks to @Ttungx). - Windows: closing VS Code now stops the managed OpenCode process instead of leaving it running (thanks to @a0000001). -- The extension now reuses its OpenCode output channel across managed-server restarts instead of creating duplicate channels (thanks to @TTTPOB). +- The extension reuses its OpenCode output channel across managed-server restarts instead of creating duplicates (thanks to @TTTPOB). ## [1.21.0] - 2026-08-26