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-09-15

v0.9.15-alpha

New

  • Image input (multimodal): you can now attach images to a message — via paste, drag-and-drop, or choosing an image from the menu; it requires a multimodal-capable model (tested on qwen-3.8-27b) and falls back to plain text automatically when the model doesn't support it
  • A master switch for the memory palace: Settings ▸ Memory palace gains a one-tap master switch that turns the whole feature off, taking effect immediately with no restart; the two switches on the settings page also get a larger clickable area (the whole pill) for easier tapping

Improved

  • The message stream is smoother and lighter on memory: rendering of streamed messages and long conversations is systematically optimized — long conversations scroll and page more smoothly with lower memory use, and a slight “breathing” jitter in the idle message area is eliminated; paging and page loading are now handled per session, so switching sessions is steadier

Fixed

  • Code search / ask (`code.search` / `code.ask`) works again: fixes the index becoming “completely broken” — previously, when a file's content extraction failed it was mistaken for an empty file, taking the whole index down so nothing could be searched or asked; “extraction failed” and “empty file” are now distinguished
  • Assorted UI and tool fixes: the session list no longer flickers away and back when the mouse leaves the workspace icon; goal / todo status strips have more consistent styling (fixing a few corner-radius and cross-strip style drifts); and security-analysis tools (`sec.*`) can now read samples in the `samples` directory (execution still blocked), with unified handling of absolute paths inside the workspace across tools

2026-09-13

v0.9.13-alpha

Improved

  • Command execution supports shell syntax in restricted mode too: outside “unrestricted” mode, command execution now also supports pipes, command chaining (`&&` / `;`), safe redirection and `cd`, so common combined-command forms work directly without switching to “unrestricted” mode; multiple safety guardrails are added too — the `samples` directory still only blocks execution (reads/writes are unaffected), detection of dangerous forms is strengthened (e.g. Windows batch argument-injection protection), and command echo no longer loses quotes from re-splicing
  • “Close and clear” can fully wipe project data: “close and clear” gains cleanup options for the project directory — you can separately clear “project state data” and “project files (with the option to keep `.git` and samples)”, so reopening the same project won't leave last time's stale data behind; the dialog is also more compact, fitting each option's scope on one screen

2026-09-11

v0.9.11-alpha

New

  • Multiple workspaces now load on demand: instead of spinning up the background services of every workspace at startup, each workspace starts only when you actually use it — faster startup and lower footprint

Fixed

  • The memory palace is more accurate across multiple workspaces: switching to a workspace that's still loading no longer leaves the memory panel showing the previous workspace's memories (it reloads the right ones once the new workspace is ready); subtasks draw memories from their own workspace instead of bleeding in from the foreground one; and an injected memory's “adopted” state is no longer missed, with the pending-review badge count kept consistent with the current workspace
  • In-app messaging (IM) is more reliable: messages re-posted because a workspace is “not ready yet” no longer count toward the retry limit — a brief, normal not-ready state won't get a message judged failed and dropped early, and when it truly can't be delivered you get a clear “gave up, please resend”; after reopening a workspace or recovering from a crash, IM no longer wrongly reports “manually stopped” and refuses further commands
  • Loaded tools survive a context compaction: after compaction, the tool categories you had loaded on demand are correctly kept instead of shrinking back to the initial resident tool set, so tools already in use stay available

2026-09-10

v0.9.10-alpha

New

  • Connect to a remote (SSH) workspace directly from the empty state: even with no workspace open you can connect right away — the remote entry is now present on the blank page, the empty sidebar and the tab bar, the File menu gains “Connect to remote workspace…”, and it has a shortcut (Cmd / Ctrl+Shift+O)

Fixed

  • The session “running” indicator is more accurate: whether a session is running now comes from a single source of truth, fixing the title's running indicator (the small square) sometimes lighting up wrongly or failing to light after starting a new session from a “suggested task”; several running-state judgements are also corrected (a just-optimistically-started session isn't snuffed out by a later snapshot, run generations are scoped per workspace, and so on) for more consistent display

2026-09-09

v0.9.9-alpha

Fixed

  • Subtasks show their true final status after importing a session or reloading: a stopped subtask no longer falsely reports “completed” — it shows as “terminated” or “failed” per its actual result, instead of appearing to have finished successfully
  • A subtask with no definite result record shows as “ended” rather than “completed”: distinguishing “actually completed” from “merely ended” to avoid misleading you
  • Clicking stop / pause in the subtask drawer no longer wrongly pops “sub-agent task not found”: subtasks that are no longer running are handled gracefully, for smoother operation

2026-09-08

v0.9.8-alpha

Improved

  • The memory feature does less unnecessary extra work: when the memory palace has no entries yet, it no longer makes an extra model call to retrieve (it simply skips when there's nothing to retrieve); and within one conversation turn the retrieval keywords are extracted once and cached, so identical content isn't recomputed — memory injection is faster and cheaper
  • The Antiy logo now appears next to the version number: the version number in the lower-left corner gains the Antiy logo — laid out horizontally in the workspace footer and stacked in the settings sidebar, with a dedicated vector image for dark and light themes so it stays crisp in both

Fixed

  • Clearer wording in the message menu: two actions now spell out where the content goes — “Record to memory” becomes “Write to memory palace”, and “Append to result” becomes “Append to result draft”, so it's obvious where each will land (synced across zh-CN / zh-TW / English)

2026-09-07

v0.9.7-alpha

Improved

  • Subtask message streams now behave like the main conversation: subtask message streams now have the same “message handle” and “jump to top / bottom” shortcuts as the main conversation, so browsing a long subtask feels the same
  • Subtask messages gain a right-click menu with “copy the selected part”: in both the main conversation and subtask message menus you can copy just the text you selected instead of a whole message
  • “Scroll to bottom” now reaches the real bottom in one go: it keeps docking to the latest content while a subtask runs, no longer stopping partway; also fixes the message handle overlapping ordered-list numbers — the buttons now leave room on the right so numbers aren't covered

2026-09-06

v0.9.6-alpha

Fixed

  • Available points display is more accurate: it now reads the available points as the server reports them, instead of estimating by summing the voucher list item by item on the client (which could disagree), for a more accurate and consistent figure
  • Path restrictions on commands in “unrestricted” mode are tighter: writings like `$HOME`, `~` and `$(...)` in a command are now expanded against the actual environment before the safety check, so they can't be used to bypass the “operate within the workspace” restriction and reach files outside it

2026-09-03

v0.9.3-alpha

Improved

  • Better encoding detection for files and command output: encoding detection is upgraded (including BOM-based detection) and can recover text in encodings like GBK and UTF-16, so reading files and content search both decode correctly and Chinese is no longer garbled; the encoding conversion for background command (`fs.exec.start`) output is also filled in
  • Command execution (exec) enhancements: the allowlist now includes common C/C++ compilers (the cc family) under controlled conditions — while confining output files to the workspace and blocking dangerous arguments; absolute paths inside the workspace are also no longer rejected outright, with unified absolute/relative path handling
  • UI details: the “resume interrupted task” entry moves into the session status bar as a popover, so the top layout no longer shifts up and down with the number of interrupted tasks; editing a subtask message now opens a side editor, and edit operations update incrementally so the list no longer jumps

Fixed

  • Settings / panel load failures are handled more gracefully: when a panel fails to load, it no longer covers the whole window with an overlay — the error is shown inside that panel with a “retry”, and auto-recovery logic is added so an occasional load failure heals itself without a restart

2026-09-01

v0.9.1-alpha

New

  • Markdown now renders Mermaid diagrams: ```mermaid fenced blocks in replies — flowcharts, sequence diagrams and the like — are drawn directly as crisp vector graphics (SVG) instead of showing as plain code text

Fixed

  • Subtasks no longer end with an “empty internal error”: the root cause was a message that couldn't be written to disk in time being misjudged as fatal; this is now fully resolved, with an automatic retry when a disk write hits a transient problem
  • A clear indicator when a message can't be saved to disk: if a message temporarily can't be written to disk, the UI marks it “not persisted”, clearly distinguishing saved from unsaved instead of failing silently

2026-08-31

v0.8.31-alpha

New

  • A subtask summary bar for an at-a-glance view of running / paused subtasks: a new subtask summary bar lets you see all currently running and paused subtasks in one place, so you grasp overall progress without opening each one; the main-task view is aligned with it too, and it offers a workspace-wide panorama of background tasks
  • The summary bar's popover adapts to the available height: it fully expands with no extra scrollbar when there isn't much content, and scrolls normally within the visible area when there is more

Improved

  • The message time is shown at the top of the message menu: the message's action menu now shows that message's time at the top, giving both an absolute time and a relative one (e.g. “a few minutes ago”), read-only, for easy backtracking

Fixed

  • Chinese in command output is no longer garbled on Windows: output in encodings like GBK / UTF-16 is now uniformly converted to UTF-8 for display, so Chinese and special characters render correctly
  • Command allowlist matching is steadier and rejection reasons are clearer on Windows: command-name spelling is unified to avoid misjudgment, and when a command is rejected by the security policy the reason is now stated more clearly

2026-08-28

v0.8.28-alpha

New

  • Fine-grained control over a running subtask, just like the main conversation: you can edit / delete messages inside a subtask, pause / resume / retry it, and choose whether to keep its record when stopping; retry can restart from a message you pick (with role-based truncation semantics), and “Continue from here” jumps back to a chosen message to carry on; continue and retry now use native resumption and no longer append blank filler messages, keeping the record tidy
  • The subtask drawer is more usable, and inline synchronous sub-agents can be stopped individually: the drawer gains a “scroll to bottom” button and lets you delete a single tool call, and the “editing a message after terminating was wrongly rejected” issue is fixed; clicking “Stop” on an inline synchronous sub-agent precisely ends that sub-agent and its process
  • A per-session “local mode” that disables built-in networking tools with one click: each session can enable “local mode” on its own to switch off the built-in network tools, keeping that session working only within local scope — handy when outbound access is a concern

Improved

  • The session-goal count can be clicked to switch display format: click the session-goal count to cycle between raw number, thousands separators, compact notation and percentage, viewing it however you need
  • Task-wait (TaskWait) display is more compact and more complete: the wait row now defaults to a compact view, using a “status mosaic” to survey multiple subtasks' progress on one line (active states hinted with a subtle blink) with each expandable for detail; the wait result also folds in other background tasks in the same session, so you can see their progress even without explicitly waiting on them — nothing slips through

Fixed

  • Stopping / pausing tasks is more reliable and status is more accurate: fixes a case where clicking “Pause” at the very instant a subtask was starting could fail to take effect and still let one run slip through; stopped tasks are presented more clearly and show the “final reply to the main agent” after ending, and no longer falsely report “not found, may have been cleaned up” or get misreported as “completed” by fallback logic — stopped now truthfully shows as stopped
  • Session-management entry now locates by both “workspace + session”: this avoids cross-wiring when the same session id appears in different workspaces
  • Right-click “View” now previews relative-path files correctly: it previously only recognized the “fully matches after joining the workspace root” case and often wouldn't open; a suffix-matching fallback is added so common relative paths preview normally
  • The subtask icon no longer floats over the settings page: fixes a style conflict where the subtask icon could incorrectly hover on the page when Settings was open

2026-08-26

v0.8.26-alpha

New

  • An invisible-character check that surfaces hidden characters in replies: the model's thinking and replies are now checked for invisible characters (zero-width characters, easily-confused variant characters and the like) that you can't see but that may cause trouble; a “visualize” toggle marks exactly where they are. Suspicious characters are handled strictly by default, while normal characters in contexts like Chinese are allowed through to avoid false positives

Fixed

  • “Divine-assist” runs can now be stopped at any time: this process could previously ignore “Stop”; it is now under unified stop management, so clicking “Stop” interrupts it
  • Editing a message after stopping no longer reports “message does not exist”: stopping mid-way and then editing the just-sent message could occasionally fail because the interrupted streamed content wasn't flushed to disk in time; this is now fixed
  • After clicking “Continue”, the brief gap before it starts no longer shows a false “Paused”: the state transition now matches reality
  • The waiting countdown displays more sensibly: once waiting finishes the entry's icon switches to a “done” style; after the countdown reaches zero it falls back to the static budget duration instead of staying at 0; and no overall countdown starts when there are no background tasks running

2026-08-24

v0.8.24-alpha

New

  • An overall countdown while waiting for a task: when the assistant is waiting for a task to finish, it now shows an overall remaining countdown, so you can tell at a glance roughly how much longer it will be — long waits are more predictable

Improved

  • Context compaction is now incremental and faster: compaction (which frees up room for long conversations) no longer reloads the whole session afterward, so it processes faster and uses less memory
  • Opening Settings / the Agent manager and switching sessions is smoother: Settings and the Agent manager now open as overlays, and the main session panel stays resident instead of being destroyed and rebuilt when you switch back and forth — faster switching with no lost state

Fixed

  • A goal is no longer misjudged as “stalled” and interrupted while it waits on a subtask: previously, whenever the parent session was parked waiting on a subtask, auto-advance could think it was stuck; it now correctly recognizes that the subtask is still making progress
  • Continuation rounds while a subtask runs no longer count toward the round limit: this avoids prematurely exhausting the auto-advance budget just because it's waiting on a subtask
  • Command execution is no longer disrupted by a same-named file in the workspace: when running commands like `git`, a file in the workspace that happens to share the name can no longer stand in for it — multiple safeguards ensure the real system command is always invoked, for safer and more predictable behavior

2026-08-21

v0.8.21-alpha

Fixed

  • Background subtasks are no longer stopped by mistake when you continue the conversation or restart: previously, sending a new message or reconnecting after an app restart could end still-running subtasks along with it; now only your own “Stop” terminates them and their processes
  • Background subtasks get the latest summary and keep working across a context compaction: the compaction that frees up room for long conversations now reliably hands the post-compaction summary to subtasks running in the background, so they don't lose context
  • Subtask counts now line up consistently: counts shown in different places could previously disagree; the running count, tab badge and so on are now unified, and truncation when there are too many tabs is handled more clearly

2026-08-20

v0.8.20-alpha

Fixed

  • Running tasks now show elapsed time: when viewing a waiting or running task, you can see how long it has been running, making progress more intuitive
  • Stopped / force-ended tasks are now timed correctly and labeled with their true status: previously a task you stopped could still show “✓ completed successfully” or have its elapsed time zeroed out; this is fixed — stopped now shows as stopped, and elapsed time is recorded as it actually was
  • The running indicator and elapsed-time display are steadier and no longer jitter: the per-second refresh of a running task's elapsed time no longer shifts or reflows the content next to it (the time format is unified, minutes are zero-padded, and the marker width stays stable), and the spinning running-indicator icon drops fewer frames when the UI is busy, for a smoother feel

2026-08-19

v0.8.19-alpha

New

  • Command execution now supports pipes and redirection in “unrestricted” work mode: in “unrestricted” mode, command execution now supports shell syntax such as pipes (`|`) and redirection (`>`), so you can chain multiple commands together just like in a terminal — more flexible

Improved

  • The message list in long conversations is lighter and smoother: a systematic diet for the message list in very long sessions — off-screen messages take up placeholder space in blocks instead of full structure each, ranges expanded by paging or search collapse back automatically when idle, per-message action handles and the nav bar load only on hover, and the background watermark is simplified to a single tiled pattern; long conversations scroll more smoothly and use less memory
  • Context compaction is faster, and deep subtasks no longer slow down the more they compact: context compaction (which frees up room for long conversations) now splits content in half and summarizes in parallel, so it runs faster; it also fixes subtasks whose summary input kept ballooning across repeated compactions and got slower and slower, making deep, long-running subtasks more stable
  • Waiting-type calls now show the expected wait time: when the assistant is waiting for a task to finish, the corresponding wait call line shows roughly how much longer it will wait (never exceeding its timeout budget), making progress more transparent

Fixed

  • Inline subtask call lines now expand their content correctly: previously, for subtasks already running in the background or already finished and released, clicking to expand could show a blank; it now loads on demand instantly and displays the content normally
  • The layout of multiple sub-traces in a run trace has been corrected: text could previously appear garbled, stacked vertically character by character; it now uses clear numeric labels, making it easy to click and switch between them

2026-08-18

v0.8.18-alpha

New

  • Pick directories / files to attach via a file browser in remote (SSH) workspaces: when connected to a remote (SSH) workspace you can now browse the remote directory tree to choose what to attach — select a directory or file in the built-in remote file browser to add it, with no more hand-typing of remote paths

Improved

  • Remote (SSH) search can no longer hang for a long time: fixes cases where content search in a remote workspace could take a very long time (even ten minutes) to return; the search scope is pushed down to the remote more precisely and a total-time budget is added, so it wraps up and returns once exceeded instead of waiting indefinitely
  • The run-trace panel now surfaces the “context compaction” step: run traces now show “context compaction” as its own distinct step and record how long it took, making it easy to see when compaction happened and how long it lasted

Fixed

  • Subtasks can now read attachments from the parent session: dispatched subtasks could previously miss directories / files attached in the parent session, leaving them short of necessary context; subtasks now inherit the parent session's attachment list
  • Attachment icons were previously invisible in the light theme: the icon color was mistakenly set to the background color; this is now fixed and the icons are clearly visible in the light theme too
  • Absolute paths inside the workspace are no longer rejected outright: when a tool accesses a file inside the workspace, using an absolute path is no longer rejected — as long as it points to a file within the workspace, it is handled as a relative path and accessed normally

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