Releases

Release Notes.

AVL Code ships continuously on the alpha channel. Every build’s new capabilities, improvements and fixes are recorded here, sourced from the desktop release notes.

Last month of builds · earlier history in the reference manual

2026-08-17

v0.8.17-alpha

Improved

  • Much faster file lookup and content search in remote (SSH) workspaces: these operations used to make many round trips to the remote and queue up one by one, so larger directories often meant a wait; they now fetch in a single concurrent batch and, where the remote supports it, tap its own high-speed search tool directly, cutting the wait noticeably in common cases
  • Faster remote file read/write: reading and writing large files over a remote connection switches from “sequential small chunks” to “concurrent large chunks,” raising single-file transfer speed by roughly 2.7–4×
  • Smoother interface, lower usage: stutter and CPU usage in streaming replies, message-list scrolling, icon animations and similar spots are reduced further — several hot-path costs during streaming are optimized, so long conversations and tool-heavy calls feel more responsive and fluid
  • Steadier auto-advance for goals / todos: goals and todos now cooperate in parallel instead of slowing each other down, and the task is pushed forward reliably when it should continue — including after a restart or an abnormal wrap-up, cases that used to be prone to “forgetting to continue”
  • Cuts losses when idling: when several rounds pass with no real progress, it now detects the stall and stops promptly, avoiding needlessly burning through quota

2026-08-14

v0.8.14-alpha

New

  • Clear alert and one-click reconnect when a remote (SSH) workspace drops: if the link to a connected remote (SSH) workspace goes down, there is now a clear prompt with one-click reconnect — a clickable icon lights up in the title bar (click it to reconnect), and a warning badge appears on the corner of the sidebar avatar, so a dropped connection is obvious at a glance
  • Clear feedback during reconnection: after you click reconnect, the badge switches to a spinning “Reconnecting” state so the outcome is obvious; the disconnect and reconnect icon states are now wired to the real link status, ending cases where “it is disconnected but the icon does not light up” or “I clicked reconnect but nothing happened”

2026-08-12

v0.8.12-alpha

Improved

  • Subtask list now groups and collapses by activity time: the subtask list is now grouped by last-active time and collapsible — only the most recent batch is expanded by default, while earlier batches collapse automatically and expand on demand, so a long list no longer fills the whole screen and things are easier to find
  • Inline sub-session lists collapse the same way: sub-session lists shown inline within a conversation use the same grouped, collapsible layout as the subtask list, keeping the browsing experience consistent with a clear hierarchy that is easier to navigate
  • Opening the subtask list no longer stutters the whole page: opening the subtask list used to trigger repeated reloads that froze the entire page; that loop is now eliminated and a few secondary costs optimized, so opening and browsing are smoother
  • Idle goals now show “Paused” and resume automatically: the goal bar now distinguishes “In progress” from “Paused,” clearly showing “Paused” when a goal is temporarily idle so you can gauge progress; once resumed from pause it continues moving forward automatically, with no manual re-trigger needed

Fixed

  • Search in a remote (SSH) workspace can no longer hang: when searching file contents in a remote workspace, a half-broken network connection could previously hang indefinitely without returning; a connection-liveness check plus a timeout fallback are now in place, so abnormal connections are detected and dropped promptly and the search no longer hangs indefinitely
  • More reliably remembers which workspaces are open: fixes cases where the record of “which workspaces are currently open” could be inaccurate; it is now recorded correctly across crash recovery, workspace-identifier switches and similar moments, so a restart more reliably restores the workspaces you last had open, while also reducing unnecessary duplicate writes

2026-08-11

v0.8.11-alpha

New

  • Edit the current goal directly in the panel: the current goal can now be changed right in the panel — both the goal content (what to accomplish) and the token budget allocated to it — without having to set it up elsewhere

Fixed

  • Messages no longer appear to vanish after “Start over”: previously, after clicking “Start over,” existing messages could seem lost; this was actually the view jump being swallowed by an auto-scroll to the bottom — the messages were never truly gone; this is now fixed, and messages display normally after starting over
  • No more lost context after automatic error recovery: when a request errored and the program automatically retried to recover, the prior conversation context could previously be cleared; this is now fixed, and automatic recovery continues with the full context instead of starting from blank

2026-08-10

v0.8.10-alpha

Fixed

  • Non-standard angle-bracket tags now display as-is: tags outside the safe allowlist — such as `<think>` or generic-type notation — could previously be stripped to blank; they are now shown verbatim, so content no longer goes mysteriously missing
  • `AGENTS.md` preview formatting fixed: the layout when previewing this file is tidier and closer to its actual content
  • Copy button now localized: the “Copy” button label on code blocks and elsewhere follows the interface language correctly

2026-08-09

v0.8.9-alpha

Fixed

  • More reliable first launch, no more one-time restart needed: further resolves the occasional “not ready yet, restart required” prompt on the very first launch after a fresh install — an earlier fix addressed one cause, and this release locates and fixes another (the workspace identifier could be inconsistent front-to-back when first opened), so the first launch now works right away with no extra restart

2026-08-08

v0.8.8-alpha

Improved

  • Automatically adapts to server-side rate limits, reducing rejected requests: it adjusts request pacing based on the rate-limit information returned by the server, easing off proactively as it approaches the rate ceiling to avoid failures from tripping the limiter, so long tasks run more steadily

Fixed

  • The thinking separator now displays correctly with Kimi models: when using a Kimi model, the “thinking” separator marker in replies could previously be stripped to blank; this is now fixed, and the marker displays as-is
  • Skill reads in a remote (SSH) workspace are steadier and safer: the reading of remote-workspace skills is further hardened — when listing files and reading contents of remote skills, anything that cannot be clearly authorized is handled strictly to avoid mistakenly reading local paths; targeted matching is also more deterministic and will not be unexpectedly overridden by workspace-level configuration

2026-08-07

v0.8.7-alpha

New

  • Skills in a remote (SSH) workspace are now genuinely usable: when connected to a remote workspace, skills stored on the remote are now recognized and invoked properly — previously such skills could not really take effect in a remote environment, and a skill snapshot now bridges that gap, so skills in a remote workspace are just as usable as local ones
  • Remote skills follow the same rules as local ones: signature and trust policies, pre-execution confirmation and review, and settings such as “no automatic invocation by the model” all behave the same for remote skills as for local, and the enabled / greyed-out state of the related buttons is aligned too, with no more front-to-back inconsistency
  • Policies refresh instantly after a change, with a safer default: after a skill policy is changed on the remote it reloads correctly with no stale state left behind, and when the remote channel does not clearly authorize, it is handled strictly (deny by default), avoiding any risk of over-permission or information leakage

2026-08-06

v0.8.6-alpha

New

  • Run-trace panel — see at a glance what the assistant did at each step: it lays out the full course of a task, segmented by each run; expand any run to inspect, one by one, which tools were called and their input parameters and results; subtasks (sub-agents) can be drilled into on their own, and long runs keep only the most recent segment to avoid flooding the view
  • Built-in diagnostics help pinpoint anomalies: it automatically flags likely dead-loop signs such as calling the same tool repeatedly with identical parameters, and it shows the context usage at each step along with the share served from cache, making it clear where time and consumption went
  • On-demand export with optional on-the-spot redaction: when exporting a run trace you can redact first (checked by default) to avoid carrying out sensitive information; after a run ends the panel refreshes to its final state on its own, and you can filter by type and see a clear error prompt when something fails

Fixed

  • The skills list is more complete, with no more mysteriously missing entries: fixed an issue where some skills did not appear in the list — previously skills placed in the workspace skills directory, along with some that should have been available, might not be listed; now they are all scanned and included correctly
  • It is clear why a given skill is not enabled: when a skill is hidden or temporarily unavailable due to signature policy, the current working mode or other reasons, the reason is now stated explicitly instead of the skill silently disappearing, making it easier to investigate and handle
  • Trust and signature checks for skills take effect instantly on demand: when a skill is invoked it is judged against the latest trust store and signature policy in real time, changes take effect immediately, and behavior is more consistent and predictable

2026-08-04

v0.8.4-alpha

Fixed

  • “Stop” reliably stops on a single click: previously clicking “Stop” occasionally needed a second click to actually stop; now a single click is taken as a definite stop command and stays in effect, reliably halting even subsequent steps like automatic retries or auto-continue
  • “Stop” now takes effect reliably in more moments: some earlier edge moments (such as just after a new message is sent, or the instant generation is about to begin) could miss the stop; now pressing “Stop” at those moments takes effect immediately and completely as well

2026-08-03

v0.8.3-alpha

New

  • Toggle the final reply of a subtask between “rendered” and “raw”: switch between a rendered view and the raw Markdown text, seeing either the formatted result or the original source
  • Share MCP configs across workspaces: an MCP (external tool service) configured in one workspace can be shared to others — manage share / enable / remove centrally in a shared library, and enable it in another workspace with one click, sparing per-workspace reconfiguration (UI in Simplified / Traditional Chinese and English)

Improved

  • Faster, smoother reply generation and display: the whole path from pressing Enter to the message appearing, and the streaming of the reply, has been systematically sped up — sending no longer synchronously reads the entire history or gets blocked on background round-trips; streaming now renders incrementally in chunks instead of re-parsing and replacing the whole block each time; and tool-heavy turns no longer flood the UI item by item, so input feels more responsive and long replies display and scroll more smoothly
  • Broader Markdown preview coverage: the .markdown extension is treated the same as .md / .mdx, and Chinese Markdown files in non-UTF-8 encodings (such as GBK) now preview correctly instead of failing to open due to encoding detection

Fixed

  • Character-by-character streaming restored from the second turn onward: previously, in a continuous conversation within the same session, replies from the second turn on appeared as a whole block instead of surfacing character by character; this is fixed, so every turn keeps smooth character-by-character streaming
  • File-change list shows the full path: instead of truncating paths to “…last two segments”, it now shows the full relative path, making files easier to locate precisely
  • Usable on first launch right after a clean install: previously the first launch after a clean install would occasionally report “not ready yet — restart to work properly” (because the first run of the program was held up by security-software vetting beyond the wait window); this is now fully resolved, so the first launch works with no restart needed
  • Adding an MCP service is more reliable, with a connection test: the stalls and timeouts when adding an MCP (external tool service) backend are fixed — adding no longer hangs, and a slow-to-respond service keeps retrying in the background with a longer wait; a new “Test connection” button lets you verify a service is reachable before adding it
  • Copy buttons on Linux fixed: some “Copy” buttons on Linux previously did nothing when clicked; they now use a more reliable copy method

2026-08-02

v0.8.2-alpha

Improved

  • A more noticeable end marker while generating: while a reply is being generated, the end marker at the tail (a red axe) gently breathes and glows, so it is obvious at a glance that the assistant is still working

Fixed

  • Multiple workspaces in use no longer interfere with each other: with several workspaces open, each holding several sessions, a range of cross-talk problems could previously occur — they are now strictly isolated per workspace-and-session: pressing “Stop” in one session no longer stops the process of a same-named session in another workspace; follow-up questions and approval dialogs raised by another workspace or a background session no longer lock the input area you are using; run statistics (such as running count and usage) are no longer reset or polluted by another workspace or background session; switching workspaces no longer leaves behind deleted messages or loses mid-stream events; subtask cards no longer bleed into another workspace; and the crash-recovery prompt lists only tasks from the current workspace, aggregating others into a single expandable line
  • Automatic fallback when a subtask names a model that does not exist: when the assistant dispatches a subtask specifying a model that does not exist, it used to fail outright; it now falls back to the model inherited from the parent session, so a single typo does not interrupt it
  • Several UI detail fixes: right-clicking a message no longer also selects the body text; toasts now have a size cap so even very long content cannot blow out the layout; the explanation of why a given credential was chosen no longer shows the names of other credentials (only a count), avoiding information disclosure; and the brand logo is now a vector image that stays crisp at any resolution or zoom

2026-08-01

v0.8.1-alpha

New

  • One-click repair for the built-in AVL-Zero: when the built-in AVL-Zero runs into trouble, a single click overwrites its whole config with factory defaults and re-fetches the Key, sparing you an item-by-item hunt
  • Auto-follow new output: while a reply keeps generating, the view scrolls to the bottom and follows along, with a soft fade at the top edge signaling the current state; scrolling up through history pauses following and surfaces a “Back to latest” entry, and a toggle at the top-right of the input area switches between “auto-follow” and “free scroll” anytime; following now locks onto the bottom the moment generation starts, no longer thrown off by the scroll position restored with a session

Improved

  • Expired versions now force an upgrade instead of locking you out: once a version expires you are no longer shut out — the new version downloads automatically and a countdown restarts the app to finish the upgrade
  • Zero-click auto-recovery when a credential (Key) is missing or invalid: on startup it retries fetching at progressively longer intervals, tops up silently in the background before sending, and hooks into recovery when a model-list refresh hits a missing credential; recovery no longer stalls, and it states the real reason (for example, “the existing credential expired and was re-fetched”) instead of silently swapping it or stopping in place
  • Config directories now consistently prefer the new avlcode directory: when an old config directory also remains on the machine, the new avlcode directory now takes precedence and startup says so explicitly, avoiding confusion from mixing old and new directories

Fixed

  • Built-in AVL-Zero self-heals when its config is missing or corrupt: previously it would retry endlessly yet never become usable; it now auto-fills factory defaults so it works out of the box
  • Actionable guidance when an API Key is missing: when a provider lacks its API Key, instead of retrying to a dead end it now names exactly which provider is missing the Key and puts a fix-it entry right in the pre-check hint bar and banner
  • A parallel subtask with a nonexistent type no longer fails the whole batch: when the assistant dispatches several subtasks at once and one names a task type that does not exist, it now falls back to the generic type and carries on, so a single typo does not waste the entire batch
  • Stale UI after an update is fully resolved: after updating, the interface sometimes still showed the old version because of the disk cache of the browser component; this is now fixed at the source, so an update takes effect immediately
  • More reliable credential saving that no longer falsely reports success: an empty credential is no longer misreported as “saved” (the false success caused by the masked on-screen display is fixed), with strict validation before writing; auto-repair is also unified with one-click repair into the same “overwrite with factory defaults + re-fetch the credential” handling

2026-07-31

v0.7.31-alpha

New

  • Workspace-level shared attachments: open Edit workspace from the workspace menu to add attachments shared across the entire workspace — every session under it can use them directly, with no need to mount them session by session; a same-named attachment mounted within a session takes precedence; the attachments panel lists workspace-shared ones in their own group, and they can be detached anytime
  • Right-click menu on messages: right-click a message to bring up an action menu placed at the click point, usable while editing content or while a reply is being generated

Fixed

  • Sending no longer fails outright when an external tool service is not ready yet: it now waits for the service to come up during generation and continues sending the message automatically, and you can stop anytime while it waits
  • Several fixes for workspace shared attachments: shared attachments are no longer written into the code repository, are restricted on demand under remote workspaces, unmounting takes effect immediately across scopes, and background tasks invoked by the assistant can read them correctly
  • Memory writes no longer falsely report success: when the assistant saves to long-term memory but the write actually fails because a passed field name does not match, it used to show “saved” while the content was silently lost; now such cases report an honest error so the assistant can correct itself and retry, and missing required content is flagged explicitly instead of faking success

2026-07-30

v0.7.30-alpha

Improved

  • Opening a workspace is faster: switching prefers data already in memory, component startup runs in parallel with disk reads, multiple sessions load concurrently, and branch info is read locally — faster to open overall

Security

  • A round of security and robustness hardening: tightened the redirect allowlist for network requests, cleaned up terminal-related injection surface, snapshot files now take permissions consistent with the source, and IPv6 address handling is improved; outbound-content redaction now fails closed (block on error) instead of letting content through

Fixed

  • Config and credential saves are sturdier: writes now go to a temp file and atomically replace the target, avoiding corruption from a power loss or concurrent write mid-write
  • More previously-ignored failures are now surfaced honestly: failures in upgrade-package download, resumable transfer, task-output truncation and crash forensics no longer go untraced; the virus-scan sentinel, offline-DB sync and media-key errors now report instead of skipping silently

2026-07-29

v0.7.29-alpha

New

  • Reading binary files no longer dumps garbled text — new hex viewer: the assistant detects file type before reading, and for binary content (images, executables) it suggests the hex view instead of stuffing gibberish into the conversation; a new fs.hexdump tool shows binary content as hex with a character column, making file structure easier to inspect

Fixed

  • Cleaner, more accurate web fetching: main-text extraction fully strips script and style code instead of mixing it into plain text; escaped entities (&amp;, &#39;, etc.) are decoded back to real characters; non-UTF-8 pages (GBK and friends) are recognized so Chinese no longer garbles; extraction runs only on web pages — JSON, plain text and the like are returned as-is without touching whitespace or newlines, with a new content-type label; out-of-range search parameters now warn instead of silently reverting to defaults, and a server's "retry later" is honored using the specific time it gives
  • Several failures are no longer swallowed silently, and 'broke' is no longer conflated with 'was empty all along': a corrupt vuln database and a never-synced one no longer both read as empty, and actively-exploited flags no longer vanish quietly; the remote background-task list distinguishes 'can't read the state file' from 'genuinely not running'; failure to persist login-token renewal is logged to avoid a mysterious re-login next cycle; failed reloads after trust-config changes or new-skill creation are logged too, so the UI no longer looks applied while running on the old config

2026-07-28

v0.7.28-alpha

New

  • Oversized outputs can be saved whole to a file: tools whose output gets truncated (commit diff/content views, symbol-reference lookups, malware rule scans and more) can now write the complete result to a file for on-demand reading — no more paging between truncated fragments; when truncation happens you're told where to resume, with SBOM tool previews showing an “n of N” marker and the saved file's path

Improved

  • Automatic retries now show the reason on the countdown banner (network hiccup, server busy, etc.) instead of just counting down silently, so you know what it's waiting on

Fixed

  • Insufficient voucher balance no longer triggers ~4 minutes of pointless retries: deterministic problems (out of balance, plan quota exhausted) now stop immediately with the right prompt (e.g. buy vouchers) instead of making you wait out a retry round
  • Fixed three classes of silently missing results in file content search (fs.grep): several cases dropped matches that should have hit, and interplay with ignore rules was off — search results no longer go missing quietly
  • Windows no longer leaves child processes behind when terminating background commands or language services: previously only the main process was ended and spawned children lingered — the whole process tree is now terminated
  • Several failures are no longer swallowed silently: recovery-file cleanup, sub-task service shutdown and working-copy cleanup now report honestly when they fail; the login-expired prompt draws from a single source, ending the two-versions-of-the-text inconsistency

2026-07-27

v0.7.27-alpha

New

  • Find within the previewed file: search the current file's content right in the preview drawer — matches highlighted with an “n of N” counter, previous/next navigation, and a case-sensitivity toggle

Improved

  • Self-repair no longer runs dry in long sessions: one repair credit is returned after each successfully completed turn — previously the budget never recovered once spent, leaving late-session transient faults with no self-healing; long conversations now keep their repair capacity

Fixed

  • Fixed every normal turn ending being misflagged as an incomplete answer: the check now runs one beat later, so clean finishes no longer trigger it
  • A genuinely missing answer is now called out: when a turn ends on a tool call and the final reply never arrives, a visible notice appears instead of a log-only record; turns you stopped yourself are exempt
  • Conditional automation rules no longer skip silently: when a rule's trigger condition can't be evaluated, the session shows an explicit notice instead of looking like the config never took effect
  • Large-repo search now discloses its coverage: the code-search index caps at 4000 files, and when a repo exceeds that, the count of unindexed files is stated plainly — so a miss is clearly either truly absent or simply not covered

Security

  • Dependency security update: goldmark and x/text upgraded, fixing two security issues that affected this application

2026-07-26

v0.7.26-alpha

New

  • SSH remote workspaces can run commands in the background: start long-running commands remotely (services, builds, tests), check output anytime, list running tasks and terminate them (children included); remote task state lives on the server, so tracking survives reconnects and even app restarts — previously remote workspaces only allowed one-shot synchronous commands

Improved

  • Tools now lazy-load on demand with a leaner default set: each turn carries twenty-odd tools by default instead of a hundred-plus, with the rest loaded when needed — less overhead, faster responses; a new tool catalog (tools.load) lists everything by category with a one-line description per tool; external MCP services get per-service lazy-load settings and a reachability audit, and the catalog stops listing tools that are momentarily unavailable
  • Tool permissions granted by category, with a full audit of all five modes: grants no longer enumerate tool names one by one — Auto / Plan / Prepare / Execute / Assess permissions were rewritten on this basis with gaps filled: Assess gains the read-only analysis abilities it should have had (security analysis, code intelligence, read-only git, SBOM), and Plan's read-only limits are expressed more precisely; planning and todo abilities are main-assistant-only so sub-tasks stop re-planning, and assistant-config tool lists apply only to the main assistant, stacking with mode limits
  • The assistant knows what tools you have connected: it is told explicitly that tools lazy-load and which categories exist, so a short default list is no longer mistaken for missing abilities; connected external MCP services are named one by one with tool counts and sample names
  • Clearer confirmation before closing the window: with tasks running or outside the workspace view, closing the main window asks first — distinguishing 9 kinds of unfinished work, ranking prompts by consequence with matching options, and stating plainly what closing would lose
  • Repeated-call warnings now reach you proactively: the assistant is prompted when it repeats the same tool with identical arguments; when it spirals into repetition, the session gets flagged in the session list with a notification on top of the in-chat notice — visible even from another session, in both sidebar and top-tab layouts, and the flag survives restarts
  • Auto-compaction gains a usage-based ceiling: besides the ratio trigger, a configurable absolute-usage threshold (default 372000) now fires compaction — models claiming huge context windows could dodge the ratio trigger for too long, and long sessions now compact in time
  • Session info (title, timestamps) keeps updating during long stretches of consecutive tool calls instead of waiting for the turn to finish

Fixed

  • Fixed the command palette keeping the previous query when reopened: it now starts fresh, so you can type to search right away
  • .gitignore parsing now matches Git's actual behavior: ! negation rules can re-include ignored files, and a directory name without a slash ignores the whole directory and its contents rather than just a same-named file — affecting what file search and change views skip

2026-07-25

v0.7.25-alpha

Improved

  • Whole-repo code search (code.search) now matches Chinese: bigram segmentation for Chinese means comments and questions in Chinese no longer return zero hits; unsupported-capability verdicts for go-to-implementation, completion and friends also join the cross-session cache, cutting repeated failed probes
  • Self-repair actions now actually execute: context-overflow and rate-limit situations are wired to real executors (context compaction, backoff retry) instead of being recognized but left unhandled — long tasks recover more reliably from transient faults

2026-07-24

v0.7.24-alpha

New

  • Six more code-intelligence capabilities: go to implementation, go to type definition, same-symbol highlighting, code completion, signature help and code formatting join the existing definition / references / diagnostics — plus graceful degradation driven by the language server's actual responses rather than declared capabilities, so genuinely supported features are no longer rejected by prediction

Improved

  • Code-intelligence support verdicts are cached across sessions: once a capability is determined unsupported by the language server, new sessions no longer re-probe it — fewer pointless failing requests, faster responses
  • When too many enabled tools exceed what the model accepts per request, the tool list is auto-trimmed and the request retried: tools are kept in order and cut from the tail, and the model's tool-count limit is remembered across sessions to avoid repeating the failure

Fixed

  • Vue / Astro language servers no longer broken out of the box: required TypeScript dependency defaults are now built in and the Vue language-server version is pinned, so they work immediately
  • Fixed ordered/unordered Markdown list numbers and bullets not showing in messages: a global style reset was wiping list markers — they are restored within the render container
  • Fixed manually configured external MCP services failing immediately on connect: the default transport could mismatch what the server actually offers — connections now auto-negotiate between Streamable HTTP and SSE with fallback, and manual configs default to HTTP, so onboarding succeeds more often

2026-07-23

v0.7.23-alpha

New

  • Customizable ordering for the tab strip and session list: top tabs support pinning and drag-to-reorder (time-ordered by default — pin favorites or drag to rearrange); the sidebar session list gains pluggable sorting and grouping — sort by recent activity / creation time / name / manual, group by date or status

Fixed

  • Systematic fix for parallel sub-tasks (AgentParallel) getting stuck: partial legs can now return as they finish, compression failures fail fast instead of waiting forever, concurrency-launch and runtime guardrails are added, and instrumentation is filled in for easier troubleshooting
  • Fixed sub-task context not actually converging when rebuilt after auto-compaction: the rebuild now applies the compaction exclusion filter, so compaction truly takes effect and context no longer keeps growing

2026-07-22

v0.7.22-alpha

Improved

  • Binary file preview switches to a hex dump: contents render as hex with a character column instead of garbled text, making file structure easy to skim

Fixed

  • File-type icon fixes and polish: completed the path whitelist to fix 6 file-type icons that never rendered; brandless generic formats now use semantic glyph icons for easier recognition; fixed YAML / TOML icons missing blocks in dark theme
  • Multiple compatibility fixes for external MCP tool calls: guardrails at tool registration (malformed declarations no longer crash the process), numeric precision preserved when passing call arguments, dropped connections classified correctly with automatic reconnect, and clear diagnostics instead of silent failure on malformed tool schemas
  • Fixed 401 when adding an external MCP service after token rotation: backend credential resolution now explicitly prefers the currently valid credential instead of reusing the expired token
  • External MCP calls are no longer rejected by strictly validating backends: process-identity context now travels out-of-band instead of being mixed into tool arguments
  • Removing an MCP service now cleans up orphaned credentials in the SM-crypto credential store, with a startup self-heal for any leftovers

2026-07-21

v0.7.21-alpha

New

  • Linux deb packages for domestic-platform systems with a dedicated upgrade channel: deb installers targeting domestic Chinese platforms (Kylin V10 / V11 and a full webkit 4.1 bundle variant); these installs use their own version-check and upgrade channel that only accepts packages matching the installed variant, so upgrades can't land on the wrong build

Improved

  • File preview gains syntax highlighting and more accurate coverage: source in the preview drawer is syntax-highlighted with a format icon before the path; the previewable range extends to session-attached directories / files (workspace first, then session attachments); the clickable-preview hint appears strictly for paths that can actually be previewed
  • Model info editing and saving are more reliable: parameter editing converges on a single panel wherever you enter from; saves update field-by-field instead of overwriting the whole model list, with optimistic-lock checks so concurrent edits no longer clobber each other

Fixed

  • Tool durations in the trace panel always showed 0: the duration field was dropped when backfilling results — fixed, so each step's actual time now displays

2026-07-20

v0.7.20-alpha

New

  • Switch the interface language right from the quick menu: the Header quick menu's Display group gains a Language slider (简 / 繁 / EN) — one click switches the whole interface instantly and saves the choice, no settings page needed; also fixes the language snapping back when an in-flight settings load overwrote the switch

Improved

  • On wide screens the attachments strip becomes a right-side stacked drawer: clearer visual link to the preview sidebar, unified stacked-list styling, and a stable centered three-pane layout that uses wide-screen space better; the in-session preview sidebar layout is polished along the way

Fixed

  • Fixed 401s from the tool-gateway (zMCP) admin API with multiple workspaces: the signing key was read from a global slot that could mismatch the actual workspace — it is now taken per owning workspace, eliminating the auth failures
  • The right-side stack container no longer reserves space when there are no status strips: an empty container hides itself instead of leaving a blank block
  • The usage-stats popover's right edge now aligns precisely with the context-usage ring: positioning is measured from the actual location, so no more subtle misalignment at different window widths

2026-07-19

v0.7.19-alpha

Improved

  • Model output length is no longer hard-capped: the fixed 4096 output ceiling is removed, so responses can run as long as the model itself allows; the model-parameter drawer is simplified accordingly, dropping the misleading nominal-value display

Fixed

  • Systematic security and stability hardening for SSH / remote workspaces: credential encryption now uses a random salt on every save for stronger at-rest ciphertext; credential files are lock-protected with atomic writes to prevent concurrent corruption; first connections ask for fingerprint confirmation, and the remote root-directory blacklist closes a parent-directory traversal bypass; connection transactionality, identity resolution and recent-list cleanup are polished as well

2026-07-18

v0.7.18-alpha

New

  • Signed-in username in top-tab mode: with the top-tab layout, the tab strip now shows the current username after signing in; the name renders at a fixed width with an ellipsis when too long, and characters with descenders (g / y / p) are no longer clipped at the bottom

2026-07-17

v0.7.17-alpha

New

  • Top-tab layout for workspaces and sessions: the layout can switch between “Sidebar” and “Top tabs”; in tab mode the content area extends edge-to-edge with more room to work in; open tabs are remembered and restored after a restart; the Header dropdown menu adds a quick layout slider, so switching no longer requires a trip to the settings page
  • Adjustable message detail from the quick menu: the “Display” group of the Header quick menu gains a “Detail” slider that switches message density between “Normal” and “Minimal”; at the minimal tier, tool calls and other details condense into thin rows for a more compact message flow
  • Message markers for unrestricted mode: consecutive messages produced while the mode is on are outlined as a whole with a light border, making the start and end obvious at a glance — easy to tell afterwards which content was generated without guardrails; the border closes off as soon as the mode is turned off. Subagents can recursively inherit the mode on demand, and messages produced under inheritance carry the same marker

Improved

  • Exported HTML matches what the app shows: it follows the minimal density tier — tool calls render as grayscale thin rows with same-kind calls merged and counted (failed calls still counted); subagents render as cards, and user message bubbles are colored by source, consistent with the in-app view
  • Clicking the text of the current-workspace chip now opens the dropdown menu, same as clicking ▾ — no more aiming precisely at the little arrow

Fixed

  • Custom names of SSH / remote workspaces are no longer overwritten by auto-derived names after a restart; the saved name is correctly read back on restore
  • Fixed unresponsive “Open on the right” clicks on subagent blocks and parallel branches in history replay; readability of quick-menu group labels in the dark theme is improved along the way