chore: version packages - #710
Open
github-actions[bot] wants to merge 1 commit into
Open
Conversation
github-actions
Bot
requested review from
Avtrkrb,
akramcodez and
will-lamerton
as code owners
July 27, 2026 20:25
github-actions
Bot
force-pushed
the
changeset-release/main
branch
16 times, most recently
from
August 5, 2026 10:07
40fe7ff to
10af0bb
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
11 times, most recently
from
August 9, 2026 13:39
4a4f1c1 to
5c160c9
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
24 times, most recently
from
August 14, 2026 10:56
eee9e7c to
3174d0b
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
5 times, most recently
from
August 17, 2026 13:29
0abc7cc to
e4e987d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@nanocollective/nanocoder@1.30.0
Added first-class provider template for Groq to the setup wizard.
Added first-class provider template for OrcaRouter to the setup wizard.
Added a /commit slash command that generates Conventional Commit messages from staged Git diffs using the active LLM client. Thanks to @DeepamJha. Closes [Feature]
nanocoder commit(Auto-Commit Message Generator) #757.Consolidated upload actions under a single '+' menu in the VS Code webview to reduce UI clutter and improve scalability for future attachment types.
Added context attachment functionality with UI for file/folder chips and drag-and-drop support.
list_directoryno longer includes file sizes by default — they cost anlstatsyscall per file plus output tokens for information that's rarely needed just to orient in a directory. PassshowSizes=trueto opt back in, or useread_filewithmetadata_only=truefor a single file's size.Added a per-response token usage and estimated cost indicator. Every assistant message in the CLI now ends with a subtle gray footer showing the provider-reported token count and estimated cost (e.g.
Tokens: 4.2k | ~$0.01), computed from models.dev pricing; the cost segment is omitted for local/free models and the footer falls back to the previous client-side estimate when the provider reports no usage. The VS Code extension shows the same indicator under each finished response, fed by the per-turn usage now returned on the ACP prompt response. Note: the estimate prices all input tokens at the standard rate — cache read/write discounts are not factored in, so costs can be overstated for providers with prompt caching. Closes [Feature] Token Usage & Cost Indicator per Response #756.Moved the rest of nanocoder's configuration into the
/settingsmenu, so you can set things up without editing.jsonfiles by hand. Settings are grouped into Appearance, Input, Behavior, Providers, and Advanced tabs. New menu items let you set the default mode, auto-compact, sessions, reasoning traces, tool auto-approval, and a Web Search API key; view your configured providers and MCP servers before opening the setup wizards; open the Tune Model and Connect IDE wizards; and see the activeNANOCODER_*environment variables. Advanced also includes an in-app JSON editor foragents.config.json: edit strings with the cursor inside the quotes, flip booleans with the arrow keys, and save atomically (a crash can't leave a half-written file).Added
@mention autocomplete to the VS Code extension's chat composer: typing@opens a floating dropdown of workspace files, folders and open editors, and selecting one attaches it as a context chip. Search runs on the extension host, which merges yourfiles.excludeandsearch.excludesettings into the exclude list so hidden files stay out of the dropdown, and a bare@lists open editor tabs with no disk I/O. Attached files are now read with a 100 KB cap and binaries are skipped, so a mis-picked lockfile can no longer swallow the context window. Closes [Feature] Context-Aware Mentions (@referencing) in VS Code Extension #747.Added support for image uploads and pasting in the VS Code extension chat panel, allowing users to send multimodal messages (text + images) to the AI assistant.
VS Code extension: Added
/copy codeand a Ctrl+Alt+Shift+C (Cmd+Alt+Shift+C on macOS) keybinding to copy the last code block from the previous assistant response.Added a copy-to-clipboard button to the VS Code extension's chat panel: hovering over a user prompt or agent response bubble reveals a clipboard icon that copies the raw markdown text and briefly shows a checkmark to confirm. Streamed agent responses always copy the latest in-progress text. Closes [Feature] Universal Copy Buttons on Chat Bubbles in VS Code Extension #746.
execute_bashand custom tools now truncate long output by keeping both the head and the tail (tail-weighted) instead of only the head, so the actionable part of compiler/test-runner output (error list, failure summary, exit status) — which usually lands at the end — isn't discarded.Bound
string_replaceresults to a context window around the edited range.Fixed the Atlas Cloud wizard to store provider-qualified GPT-5.6 model IDs, while preserving compatibility with existing shorthand configurations. Thanks to @RealBhupesh. Closes [Bug] "invalid request params" (400) when using Atlas Cloud API with GPT models #803.
Bound oversized tool results before they re-enter model context while preserving both the beginning and the actionable tail.
Fixed
diff_editreturning the entire modified file by limiting results to changed-region previews. Thanks to @RealBhupesh. Closes [Bug] diff_edit echoes back the entire file the model just edited #795.Added a nanocoder svg pulse effect as a visual loading indicator in vscode extension. It uses the provided svg and css to create a pulsing animation that indicates when the agent is processing a request.
Fixed bash commands entered with
!keeping the whitespace that followed the prefix, so! git statusnow runsgit statusinstead ofgit status.Fixed
Cannot read properties of undefined (reading 'summaryParts')when streaming from GitHub Copilot with reasoning models such asgpt-5.3-codex. Copilot's Responses API proxy rotates the opaque reasoning item id mid-stream whileoutput_indexstays stable, so the OpenAI Responses parser looked up state that was never registered and the stream died. Copilot's response stream is now normalized before it reaches the parser: a rotated id is mapped back to the reasoning item already tracked at thatoutput_index, and a reasoning item that was never announced is announced first. Closes [Bug] Cannot read properties of undefined (reading 'summaryParts') when using Github Copilot with GPT-5.3 Codex #719.Block IPv6 loopback in the
fetch_urlSSRF guard. The validator rejected127.0.0.1but lethttp://[::1]:8080through, so the loopback protection could be bypassed over IPv6. It now also rejects[::1](and its expanded/IPv4-mapped spellings) and the[::]unspecified address. Closes [Bug] fetch_url Tool Doesn't Block IPv6 Loopback Address (::1) #734.Fixed the
usageblock in the--plain --jsonrun report being emitted as all zeros for providers that report no token telemetry, and reading as zero total spend for providers that report input/output counts without a total. The block is now omitted entirely unless at least one token count is actually reported, andtotalTokensfalls back to input+output when the provider omits it, so downstream harnesses can distinguish "no telemetry available" from a genuine zero.Fixed multibyte terminal input being corrupted when an alternate-screen stdin chunk split a UTF-8 character, which could affect Korean and other IME input.
Fixed an MCP server staying visible as connected when its initial
tools/listcall failed.connectToServer()now registers the client, transport, and config only after tool discovery succeeds, and closes the partially-established client on failure so its transport/child process doesn't leak.Fixed prompt history navigation returning an invalid value after reaching the end of the history.
getNextString()now returnsnull, matching the behavior of the other history navigation methods.Fixed update checks incorrectly recording a successful check after a registry fetch failure, corrected
BoundedMap.has()for entries whose value isundefined, and restored network-error classification for Node.js errno codes. Closes [Bug] Update Check Timestamp Written Even When Version Fetch Failed #739, [Bug] BoundedMap.has() Returns false for Keys Storing undefined #738, and [Bug] isNetworkError Checks Node Errno Codes on Wrong Property (error.name vs error.code) #737.Fixed the VS Code extension's Reject All running rejection cleanups concurrently:
rejectAll()fired the asyncrejectChange()without awaiting, so overlapping cleanups raced over shared editor state (stale tab snapshots incloseEditors()). Rejections now run sequentially, mirroringapplyAll(). Thanks to @jmdlrg. Closes [Bug]rejectAll()does not await asynchronous cleanup #725.Fixed short user messages wrapping mid-word in the VS Code extension chat. The message bubble carried
max-w-[85%]on top of the turn wrapper's ownmax-w-[85%], so the inner percentage resolved against the wrapper's shrink-to-fit width and squeezed each bubble to 85% of its own content - combined withbreak-words, "hey" rendered as "he" / "y". The bubble now usesmax-w-fulland the cap lives only on the wrapper.Fixed the VS Code extension being unable to start the CLI on Windows.
where.exelists npm's unexecutable extensionless shim beforenanocoder.cmd, and the first line was taken blindly; spawning a.cmdalso fails with EINVAL because Node refuses to run one without a shell (CVE-2024-27980). Discovery now rankswhere.exematches by extension, the CLI is launched via the JS entrypoint resolved from the shim, and a.cmdthat cannot be resolved falls back to a quoted shell spawn. Spawn failures are also caught and reported in the Nanocoder output channel instead of being swallowed as an unhandled rejection that left the UI stuck on "Connecting".Fixed the provider wizard appearing to hang after picking models. Finishing model selection with
dreturned to the raw provider template list, where the only way to proceed was scrolling past every template to a trailing "Done & Save" — a ~34-row screen that overflows a normal terminal, so the entry was off screen and the wizard looked stuck. Adding a provider now lands on the wizard's root menu, which offers "Done & Save" up front, and the template, edit, and MCP server lists scroll within the terminal height instead of overflowing it.Grouped the VS Code extension's streamed thoughts into a single expandable section per response instead of one dropdown per thought block. Thoughts interrupted by answer text or tool calls now resume in the same section, separated by a blank line, and the header reports the total time spent reasoning ("Thought for 12s") rather than one short duration per fragment. The section still auto-expands while thoughts stream and collapses when they stop, but stops doing so once the user toggles it by hand. Closes [Feature] Combine multiple thought blocks into a single expandable section #854.
Fixed an issue where the VS Code extension failed to locate the Nanocoder CLI for users using Node version managers (NVM, Volta, fnm, pnpm, bun). A fallback directory scan is now performed when
which/wherecannot resolve the binary under the extension host's minimal PATH. The child-process PATH is also enriched with the CLI's directory only when a co-locatednodebinary is present, preventing shadowing of a user's version-manager Node. Thanks to @akramcodez.Fixed a renamed session losing its manual title when reopened in the CLI. The ACP agent rebuilds the session record field-by-field on every save and wasn't carrying
titleManuallySetthrough, so the flag was dropped from disk after the next message. The title survived inside the VS Code extension via its own guard, but the CLI's autosave then saw an unflagged session and overwrote the user's name with an auto-derived one.Bound oversized multi-file
git_diffresults to a 20-entry diffstat while preserving the total file count, and kept file-scoped results as bounded head-and-tail patches.Prevent concurrent file-cache reads from clearing a newer pending read.
Fixed ACP provider discovery after the SDK 1.3 update by including the required provider identifier.
VS Code extension:
/copyand/copy codenow address the whole last assistant response rather than its final text fragment, so a tool call between the code block and the closing prose no longer hides the block. Also collapses inner whitespace in the/copy codeintercept, reports "No response to copy yet" on an empty transcript, and replies with a pointer instead of "Unrecognized slash command" if/copyreaches the ACP agent.search_file_contentsno longer puts a blank line between context-free matches, and decides its layout from thecontextLinesargument rather than sniffing each match for a newline. A context block that collapsed to a single line (single-line files, or when truncation dropped every newline) previously rendered with the exact-match header and a doubled line number.search_file_contentsnow formats results grep-style (file:line:content, one line per match) instead of spreading each match across three lines with a blank separator. Matches withcontextLinesstill show the full multi-line context block, now with a-header separator matching grep's convention.Fixed user-typed
!bash commands showing no output in the transcript. Previously the completed card only displayed the command, a status dot, and a token count — the actual result was sent to the model but never shown to the person who typed the command. Completed!commands now render their stdout and stderr (tail-capped at 20 lines, with a note when earlier lines are hidden). Model-invokedexecute_bashcalls keep their compact display.Add token usage block to the --plain --json run report. Downstream tooling consuming headless JSON output can now read input/output/total token counts per run, when the provider reports them. Closes feat(cli): add token usage block to --json run report #821.
Fixed the unreadable selection highlight in the setup wizards and other list selectors.
ink-select-input's built-in indicator and selected-label renderer hardcode a darkbluethat ignores the active theme and all but vanishes against a dark terminal; every selector now routes throughStyledSelectInputand highlights with the theme'sprimarycolour instead. Also raised five themes whose highlight or body text fell below WCAG AA contrast against their own background (cherry-blossom, ayu-light, everforest-light, volcanic-ash, solarized-light). Closes [Feature] change the highlight color #827.Dropped
toLocaleString()thousands-separators from strings returned to the model (read_file's metadata output and validator error,list_directory's per-entry size, and@file-mention metadata). Comma separators cost extra tokens without adding meaning for the model. Left them in place in the terminal display components, where they're actually useful.Return a useful preview before requiring ranged reads for very large files
Fix notification titles showing stale project name after changing directories with /cd
The VS Code chat panel now shows the agent's queued work, not just what it has already done. Every tool call in a turn is announced before the batch runs, so the checklist reads queued → running → done, and rows are labelled in plain English ("Reading source/x.ts", "Running pnpm test") instead of raw tool names. Queued edits read "Edit x.ts" until they actually run, and their Open Diff action only becomes clickable once the diff exists — previously the card claimed the edit was already done and clicking through raised "Change not found". File edits render as their own card with an Open Diff action again — the panel had been matching tool names the agent never sends, which made that card unreachable and left failed edits spinning forever. Cancelling a turn now settles every queued row rather than leaving the ones behind the cancelled tool spinning, which also fixes the same stall in other ACP clients such as Zed. The task checklist is now scoped to the turn that produced it instead of one card reused for the whole session.
Pressing Escape in the VS Code extension's chat panel now instantly cancels an in-flight LLM request, mirroring the Stop button.
The listener is registered on the webview's
document(not just the chat input) so it fires even when focus has moved to a tool card, button, or the streaming response area.Also added a
nanocoder.cancelcommand for the Command Palette.The backend already tears down the in-flight request via
AbortControllerwhen a cancel is received, so this stops token generation immediately rather than just hiding output, and cancelling now shows a clean "Cancelled by user" note inline in the chat instead of an error toast.Cancelling while a tool is waiting for approval no longer wedges the chat.
Previously the pending permission resolver was left in place, so the extension kept reporting an outstanding prompt and rejected every later message with "Please approve or deny the pending tool" until the window was reloaded.
Cancelling (or starting a new chat) now answers any outstanding permission requests with a cancelled outcome and dismisses their approval cards.
Fixed cancelled tool cards rendering with the error icon.
ACP has no
cancelledtool status, so a cancel arrives asfailedwithCancelled by userin the raw output, but the webview matched that string case-sensitively againstcancelledand never hit it.Improved session management in the VS Code extension:
Session renaming: Sessions can now be renamed directly from the History view. A
renameSessionACP extension method (extMethod) is implemented on the CLI's ACP agent and backed by the existing session manager, so a session's title can be updated in place without a full resume.History view navigation: Creating a new chat or resuming a session from the History list now returns to the active chat view instead of leaving the panel stuck on the session list.
Clarify read-before-edit refusal messages to specify that files over 300 lines need a ranged read
Increased the bounded terminal content width from 120 to 200 columns so wide terminals use more available space while retaining a sane layout cap.
write_fileno longer echoes the full file contents back after writing. The model already authored that content as the tool call arguments, so returning it again was pure duplication that scaled with file size and got re-sent on every later step of the agent loop. The confirmation message (line/char/token counts) is unchanged.If there are any problems, feedback or thoughts please drop an issue or message us through Discord! Thank you for using Nanocoder.