Changelog
Generated from the LlamaNexus-VSCode repo's own
CHANGELOG.md- see source for the definitive version. Runnode scripts/sync-changelogs.mjsto refresh this page.
[0.1.36] - 2026-07-19
Added
- The Sessions sidebar now shows real sign-in state instead of being command-palette-only: a Sign in button when logged out (triggers the same
llamanexus.logininput-box flow), or your username/email when logged in - click it to log out. Backed by a newcontext.globalState-cached{email, username}(the token itself stays in SecretStorage, unchanged), pushed to the webview live via the samepostMessage/EventEmitterconvention already used for the session list and server discovery. On activation, an existing token is opportunistically re-validated against LlamaNexus-Docs so a stale/expired login doesn't linger in the sidebar forever
[0.1.35] - 2026-07-18
Added
LlamaNexus: Log In/LlamaNexus: Log Outcommands - authenticate with a LlamaNexus-Docs account (the same one used on the docs site and in WebUI), directly from the editor. The token is stored in VS Code's SecretStorage, the same as the existing Hugging Face token, and requests go straight to LlamaNexus-Docs's public API rather than through the LlamaNexus proxy. Newllamanexus.accountApiBaseUrlsetting (Connection group) points at your LlamaNexus-Docs deployment. Doesn't gate anything yet - just the login capability, ahead of a coming subscription/license system
[0.1.34] - 2026-07-18
Changed
- The rotating "Thinking/Chewing..." word (role title placeholder, and the below-content indicator once a reply is in flight) now pulses gently once fully typed, and crossfades into the next word instead of cutting instantly - the outgoing word fades out on its own overlay while the incoming word starts revealing immediately underneath, so there's no dead gap between them. Per-character reveal is also a bit slower (90ms/char, was 60ms). Matches the WebUI companion app's own version of this animation
[0.1.33] - 2026-07-18
Added
- Add
/remove-model <model name>to permanently delete a downloaded model (requires LlamaNexus 0.1.21+). Opens the same live-filtered model picker/modeldoes - pick a model to remove instead of typing an exact name - just without the download/eject/Hugging-Face-search entries, since those don't apply to a model you're about to delete. Asks for confirmation first (explicitly worded as irreversible, unlike Eject's), then refreshes the picker so the removed model actually disappears from it
[0.1.32] - 2026-07-18
Added
- Add
LlamaNexus: Set Hugging Face Token/LlamaNexus: Clear Hugging Face Tokencommands so searching/listing files for a gated or private Hugging Face repo (the/modelpicker's Hugging Face search, and theLlamaNexus: Search Hugging Face for Modelspanel) can authenticate - previously every request to huggingface.co was unauthenticated, so gated repos silently failed to search or list. Stored in VS Code's SecretStorage (OS keychain-backed, never synced or written to settings.json in plaintext) rather than a plain configuration setting
[0.1.31] - 2026-07-18
Changed
- The Parameters sidebar's unchecked (disabled) fields now display each setting's actual default value (e.g. Temperature 0.8, Top K 40, Repeat Penalty 1.1) instead of blank or, for sliders, the slider's minimum - previously a disabled Temperature slider read 0, which isn't what the model actually samples at. Unchecking a field now also immediately reverts its display back to that default instead of leaving whatever value you'd last typed while it was enabled
[0.1.30] - 2026-07-15
Fixed
- Some models/templates route a hallucinated tool-call block into reasoning/thinking text instead of the real answer content - since reasoning is display-only and never parsed for tool calls, that call was silently discarded and the turn just ended with nothing executed and no error. The literal-text tool-call fallback now also checks reasoning text before giving up, so the call still runs
- Calling
update_planthrough that same literal-text fallback always failed withError: "steps" must be a non-empty array of {content, status}even with a genuinely valid plan - every inline<parameter>value is captured as plain text, which is correct for every other tool's string parameters but wrong forupdate_plan'ssteps, which is a JSON array. It's now parsed back into a real array for this one parameter specifically, without affecting any other tool's parameters (e.g. awrite_filecall whose content happens to itself look like JSON still stays a raw string)
[0.1.29] - 2026-07-15
Added
- The rotating "Thinking/Chewing..." placeholder isn't just for the wait before the first token anymore - once real output starts, the same rotating word now also shows below the reply for as long as that turn is still in flight, covering gaps where the model has already streamed some text but pauses (e.g. before emitting a tool call) with otherwise nothing on screen to show it's still working
- If a plan has unfinished steps and the model makes 3 write/patch/bash calls in a row without touching
update_plan, a reminder is appended to that tool's result nudging it to update the plan's status before continuing - models reliably lay out a plan up front but often just power through the real work afterward without ever callingupdate_planagain on their own
Fixed
- Auto-compact was only ever checked at the start of a new message you send, so a long chain of tool calls within a single turn (e.g. working through an approved multi-step plan) could fill the context all the way past 100% with nothing ever compacting, since that check never re-ran until you sent another message. It's now also checked between each tool-call hop, so a long run gets compacted mid-way instead of stalling out
[0.1.28] - 2026-07-13
Added
- Add
llamanexus.chatMetaFontSize(default 12) andllamanexus.uiFontSize(default 12) to control the font size of, respectively, message metadata (role titles, timestamps, system/tool/agent notes, reasoning sections, attachment chips, response stats, the plan panel) and the rest of the chat UI (composer, model/command menus, the Parameters sidebar, server discovery/RPC rows, the download bar, confirmation dialogs) - previously these were hardcoded and didn't respond to any setting. Elements that were already a different size from each other within a group (e.g. small badges vs. regular text) keep that relative sizing as each setting scales
Changed
llamanexus.chatFontSize's description no longer claims to scale "the rest of the chat UI" proportionally, since it never actually did - it now only covers the message content text itself; see the two new settings above for everything else.tool-block/#confirmDetail(tool output and confirmation-dialog previews) now followllamanexus.chatCodeFontSizeinstead of a hardcoded size, matching the other monospace/code content
[0.1.27] - 2026-07-13
Added
- Add a
run_agenttool so the model can delegate a self-contained sub-task to a second LlamaNexus server - useful when this session's own server can only run one model at a time (e.g. a large model split across RPC workers) and has no spare capacity for side-work. Gated behind newllamanexus.enableAgentTool(default off, since it dispatches to another machine and can itself write files/run bash there, likerun_bash); blocked entirely in Plan Mode - Each session picks its own agent server independently of its main chat server - click the new 🤖 icon on a discovered server's row to use it as this session's agent target. Persists with the session
- The agent runs its own bounded tool-calling loop against that server (capped by new
llamanexus.maxAgentSteps, default 8, plus a repeat-call guard) - it can read/list/write/patch files and run bash commands in this same workspace, going through the exact same confirmation dialogs as the main model's own tools. Dispatching itself asks for confirmation first, naming the target server, with the usual "Confirm for this session" option - The dispatch shows as its own collapsible Agent note (task description first, then its nested Read/Write/Bash actions, then the final summary), same titled-note style as the other tools
[0.1.26] - 2026-07-13
Added
- Add a "Request changes..." option to the plan-approval dialog (last button in the list) - picking it tells the model to wait for feedback instead of proceeding or being outright denied, posts a note prompting you to describe what you'd like different, and focuses the composer so you can type it as your next message
- Approving a plan proposed in Plan Mode now automatically switches the session to Edit Mode (with a system note explaining why), instead of leaving execution stuck until you notice, flip the mode toggle yourself, and prompt the model to continue
Changed
- Confirmation dialogs (file writes/patches, bash commands, ejecting a model, removing an RPC worker, plan approval) no longer close and default to Deny when you click elsewhere, e.g. into the composer - only an explicit button click or Escape answers them now
- The chat no longer forces you back to the newest message while you're scrolled up reading earlier ones - streaming tokens, tool/system notes, and plan updates only auto-scroll if you were already near the bottom. Sending your own message still always scrolls down, and reopening a session still lands on the newest message
Fixed
- Plan Mode's system prompt was telling the model to "reply in plain text" with its plan, directly contradicting the update_plan tool's own instructions to call it - it now tells the model to call update_plan instead, and Edit Mode gains an equivalent reminder (previously missing entirely) so switching modes mid-task no longer makes the model revert to prose
- That Edit Mode reminder was initially too bare on its own and could produce generic placeholder plans (e.g. "1. read files, 2. think, 3. edit") - it now tells the model to investigate first and avoid generic steps, matching how Plan Mode already behaved
[0.1.25] - 2026-07-13
Fixed
- The expanded RPC worker list could go stale relative to the "N workers" count shown on the collapsed server row: that count is kept live by a background poll, but the expanded list itself only refreshed after an add/remove/mode-toggle action taken in that session - so a worker crashing or restarting on its own (or from another window) left the expanded list showing the old roster until the panel was reloaded. It now refreshes on the same live poll as the count
[0.1.24] - 2026-07-13
Added
- Flag when the model reshapes an already-approved plan mid-task: if a later
update_plancall changes step content (not just status), a system note announces the revision instead of the plan panel silently looking different next time you glance at it - Flag a plan left incomplete at the end of a turn: if a turn that did tool work ends with the plan still showing unfinished steps, a system note reports how many steps aren't marked completed, so a model's closing summary can't silently claim more than the plan itself says was done
[0.1.23] - 2026-07-12
Added
- Add an
update_plantool so the model can lay out a visible, persistent task list for multi-step or multi-file work, shown as a collapsible panel above the composer (gated behind newllamanexus.enablePlanningTool, default on — it never touches disk, so it's safe-by-default and works even in Plan Mode). The model passes its full current step list each time; the panel updates in place rather than posting new chat messages, survives being collapsed/expanded, and persists with the session. A dismiss button clears it. The first time a plan is proposed it asks for confirmation via the same in-chat dialog used for file writes/bash commands; once approved, the model is told to work through the remaining steps on its own without pausing to ask whether to continue - only individual file writes/patches/bash commands still ask separately - Add a third "Confirm for this session" button to the
write_file/patch_file/run_bashconfirmation dialogs, alongside the existing Allow/Deny. Picking it approves the current call and skips the confirmation dialog for any further calls to that same tool for the rest of the session (tracked per tool, not persisted - a reopened session always asks again)
Fixed
- A plan's approval no longer carries over to a later, unrelated plan in the same session: once every step of the current plan is marked completed, the next
update_plancall asks for approval again instead of silently proceeding on the strength of the finished plan's earlier approval
[0.1.22] - 2026-07-12
Added
- Add a per-session Plan Mode / Edit Mode toggle in the composer. In Plan Mode the model can only read/explore (
read_file,list_files) —write_file,patch_file, andrun_bashare rejected outright, before their confirmation dialog would even appear, regardless of whether the model attempts them as a real tool call or as hallucinated literal text — so it can safely be asked to research and propose a plan without being able to act on it. Edit Mode is today's existing full-tool-access behavior, unchanged. The toggle button turns visually distinct in Plan Mode, the composer placeholder changes, and a system note announces every switch in the transcript. Mode persists per session and is restored when a session is reopened
[0.1.21] - 2026-07-11
Added
- Add
LlamaNexus: Search Hugging Face for Models- a new panel that searches Hugging Face directly for GGUF repos, with a collapsible (collapsed by default) list of matching repos. Expanding one lists its quant files with real sizes, grouped so a quant split across multiple shard files shows as one entry with a combined size, a "✓ Downloaded" badge on quants you already have, and an icon-only download button. Reachable via the command, or a new "Search Hugging Face for models..." entry always shown at the bottom of the/modelpicker (seeded with whatever you'd typed) - The download button doubles as a cancel button once a download actually starts (icon switches to a red square-with-X) - click it to abort; the proxy detects the closed connection and cleans up without restarting the server
- Downloading a multi-shard quant asks for confirmation first (states the total size and that it restarts the server once when done), then downloads every shard as one batch with a single combined "part X of Y" progress bar and one restart at the end, instead of requiring N separate downloads
Fixed
- The proxy's downloader used to silently fetch only the first file when a quant tag matched more than one file in a repo - exactly what happens for every split/sharded quant, since each shard's filename matches the same tag. It now downloads the whole consistent shard group together, or reports an error instead of guessing when a match is genuinely ambiguous
- The model list (used for "already downloaded" detection here, and by
/ollama/api/tags) used to create one bogus entry per shard file for a split quant, and never looked inside per-quant subdirectories at all (some repos nest each quant's files in its own folder) - both are now handled correctly
[0.1.20] - 2026-07-11
Added
- Add automatic context compaction: once context usage reaches
llamanexus.autoCompactThreshold% of the model's context size (default 85, set to 0 to disable), the older part of the conversation is summarized into a single message before the next one is sent, freeing up room to keep going. The most recentllamanexus.autoCompactKeepMessagesmessages (default 6) are always kept verbatim, with the cut point snapped back to the start of a full user turn so a mid-conversation tool-call chain is never split across the summary boundary - Add a
/compactcommand to trigger the same summarization manually at any time, regardless of the threshold - The summarized-away portion of a session is replaced in the transcript by a single collapsible "Compacted" note (same bold/white titled-note style as the Read/Write/Patch/Bash notes) showing the summary text when expanded
- Add a red ring indicator next to the "/" command button that appears once context usage reaches half of the auto-compact limit and fills up as it gets closer, so you can see it coming; click it to compact immediately
[0.1.19] - 2026-07-10
Added
- Add
llamanexus.chatFontSize(default 12) andllamanexus.chatCodeFontSize(default 12) to control chat message text and fenced/inline code block font sizes independently - Add message input box history: press Up/Down (when the cursor is at the start/end of the box) to recall previously submitted text — chat messages and
/ctx-size//workercommands alike — with your in-progress draft preserved and restored once you navigate back past the newest entry. Seeded from the session's own history on reopen, so it survives window reloads - Add a copy button to user messages, and a Save button to code blocks (opens a native save dialog, defaulting to a filename guessed from the fence's language tag)
- Add a
run_bashtool so the model can run a bash command/script directly in your workspace root without first writing it to a file, gated behind a newllamanexus.enableBashToolsetting (off by default) and a per-call confirmation showing the exact command; output is truncated if very long and the command is killed after 60s
Changed
- Group all settings into four titled categories in the Settings UI — Connection, Model & Generation, Tool Calling, and Chat Appearance — instead of one flat list of 17
- Code block Copy/Insert buttons (and the new user-message/Save buttons) are now icon-only instead of text-labeled, with a brief checkmark shown in place of the icon to confirm the action
- Assistant replies no longer show the model's name (or a timestamp) immediately: until generation actually starts, the role title instead shows a rotating placeholder word (Thinking, Chewing, Pondering, ...), each one fading in character-by-character and rotating every 5 seconds — useful feedback during a cold model load or a queued request. The real name and timestamp are revealed together the moment generation starts, so the timestamp reflects the real response time instead of when the request was sent
read_file,write_file,patch_file, andrun_bashtool calls get their own titled note (Read/Write/Patch/Bash, bold and white like the assistant role title) instead of a generic "System" note — file tools show the file name after the title, and a content block underneath shows the file's contents, the written content, an old/new diff, or the command plus its output, as appropriate. Other tools (e.g.list_files) keep the previous generic style
[0.1.18] - 2026-07-09
Added
- Add
llamanexus.serverHeartbeatTimeoutSeconds(default 10) to make the server-discovery drop timeout configurable — also raised the default itself from 5s to 10s (a 10x margin over the 1s heartbeat interval instead of 5x), fixing a healthy server occasionally flickering out of the list and immediately back in after a single dropped/delayed heartbeat
Changed — breaking
- Rename the millisecond-based timeout settings to second-based ones, since sub-second precision was never needed:
llamanexus.requestTimeoutMs(120000) →llamanexus.requestTimeoutSeconds(120),llamanexus.loadModelTimeoutMs(300000) →llamanexus.loadModelTimeoutSeconds(300). If you'd customized either, set the new key with the value divided by 1000.
[0.1.17] - 2026-07-09
Added
- Show the current model's trained context length (GGUF
n_ctx_train, requires LlamaNexus 0.1.7+) in parentheses after the total in the context-usage bar, e.g.512 / 8192 (32768), when the server reports it
Changed
- Replace native VS Code modal popups with an in-chat confirm dialog for actions that ask permission (ejecting a model, removing an RPC worker, and the
write_file/patch_filetools) — it pops up above the composer in the same spot/style as the model list, closing that list first if it was open, and defaults to "deny" if dismissed via outside click or Escape - Reduce the context-usage bar's font size by 2px
[0.1.16] - 2026-07-08
Added
- Show a timestamp on the right side of every message's role title (You, the model name, System, Error), formatted per the new
llamanexus.timestampFormatsetting (defaultHH:mm; supportsYYYY/MM/DD/HH/mm/ss/hh/Atokens). Timestamps are captured when each message is created and persist with the session, so reopening it redisplays the original times rather than the reopen time
Fixed
- Downloading a model no longer guesses its post-restart id:
/model's download flow now diffs the model list before/after the download and adopts whichever id the proxy's/openai/v1/modelsactually reports as new, fixing a "model ... not found" error for models whose quant tag doesn't match the proxy's hardcoded short-tag list (e.g. Unsloth'sUD-Q4_K_XL-style names)
[0.1.15] - 2026-07-08
Added
- Add
/worker rm <ip:port>to remove an RPC worker from the chat box, alongside the existing add form (now also accepts the explicit/worker add <ip:port>); the proxy's existing mode checks surface as an error note if issued while the server is in discovery mode
[0.1.14] - 2026-07-08
Changed
- Move the single-node/RPC mode toggle button to the right edge of the selected server's row
- The "+" add-content menu now sizes itself to its widest item instead of stretching full-width like the command/model menus
- Rename the model-tuning sidebar's label from "Controls" to "Parameters" and replace its gear icon with a three-sliders icon; the label rotates to read vertically while the sidebar is collapsed
[0.1.13] - 2026-07-08
Added
- Add
llamanexus.maxToolCallRepeats(default 3) andllamanexus.maxToolChainDepth(default 20) settings to make both thresholds user-configurable
Changed
- Replace the flat "too many chained tool calls" limit with repetition detection: a tool-calling chain is now stopped as soon as the model issues the exact same tool call (name + arguments, order-independent) a configurable number of times in a row, instead of only on an overall hop-count cap — catches loops far earlier without limiting legitimately long chains (e.g. reading many different files)
[0.1.12] - 2026-07-08
Added
- Add server auto-discovery: the extension listens for LlamaNexus
serveinstances broadcasting themselves on the LAN (llamanexus.discoveryPort, default 50050 — requires LlamaNexus 0.1.5+) and lists them in a new row under the context bar - Each session picks which discovered server to use independently, persisted with the session; the composer stays disabled with a prompt to choose a server until one is selected (or reselected, if the saved one isn't online)
Changed
- The RPC worker mode/roster controls (previously their own bar) now live on the selected server's row as an expandable section, instead of a separate, redundant-looking bar
[0.1.11] - 2026-07-07
Added
- Add a collapsible model-tuning sidebar on the right edge of the chat (Open WebUI parity): per-field toggles for Temperature, Top K, Top P, Min P, Frequency/Presence Penalty, Repeat Penalty, Repeat Last N, Mirostat (+ Tau/Eta), Seed, Max Tokens, and Stop Sequences
- Enabled values apply to every message from then on and persist with the session, restored the next time it's reopened
[0.1.10] - 2026-07-07
Added
- Add model downloading: typing a not-yet-downloaded "repo:quant" or "repo:filename" name in the '/model' picker now offers to download it via LlamaNexus, then switches to it once ready
- Show download progress (bytes and a fill bar) in a new row under the RPC worker bar, with success/error feedback in the chat log
[0.1.9] - 2026-07-07
Added
- Show attached files as a chip on the message that sent them, both live and after reopening a session (previously invisible once sent)
- Allow attaching multiple files to a single message, each with its own removable chip
[0.1.8] - 2026-07-06
Added
- Persist each assistant reply's response stats and reasoning/thinking text alongside its session, so reopening a session redisplays both instead of just the final answer
[0.1.7] - 2026-07-06
Added
- Add a colored status dot next to each chat message's title (assistant green, system blue, error red; user messages have none), with the response text now aligned under its title instead of the far-left edge
- Connect the dots with a 1px vertical line running down the conversation, skipping over user messages
- Animate the "Thinking..." placeholder shown before the model starts outputting a response
- Add support for thinking/reasoning models: reasoning tokens (
reasoning_content) stream into a collapsible "Thinking..." section, collapsed by default and left however you toggled it once the real answer starts
Changed
- Change fenced code block background to black
[0.1.6] - 2026-07-06
Added
- Add an Activity Bar icon with a "Sessions" sidebar view: "+ New session", a live-filtering "Search sessions..." box, and a list of sessions with rename (pencil) and delete (trash bin) controls
Changed
- Chat is now multi-session: each session opens in its own editor tab (instead of one shared panel), is auto-titled from its first message, and its full history persists across window reloads (sessions are stored per-workspace)
[0.1.4] - 2026-07-06
Added
- Add RPC worker panel: an expandable row under the context bar listing RPC workers, a button to toggle single-node/RPC mode, per-worker remove (manual mode), and a '/worker <ip:port>' command to add one. Requires LlamaNexus 0.1.4's new /api/rpc/* endpoints.
- Add response stats (prompt/response/total tokens, elapsed time, tokens per second) under each assistant reply
Changed — breaking
- Split the request timeout in two: 'llamanexus.loadModelTimeoutMs' now covers the cold-start wait for a model's first token, separate from 'llamanexus.requestTimeoutMs' for the rest of the response. If you'd previously raised
requestTimeoutMsto accommodate slow cold starts, that no longer applies to the cold-start wait — setloadModelTimeoutMsinstead.
[0.1.3] - 2026-07-06
Added
- Add patch_file tool so the model only has to emit the changed lines instead of the entire file
- Add command '/ctx-size' to change models context size
- Add green dot for loaded status and eject button to model list
Changed
- Change system prompts collapsible
[0.1.2] - 2026-07-06
Added
- Add read_file and write_file tools
- Add markdown file formatting to chat
- Add copy button to codeblocks
Changed
- Change font sizes bit bigger
Fixed
- Fix context size statusbar
[0.1.0] - 2026-07-06
- Initial release