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-22

v0.9.22-alpha

New

  • Automatic detection of and intervention in model “repetition loops”: when the model gets stuck repeating itself or spinning out similar content, it's now detected and stopped in time — cut off line by line within a turn, and reminded or halted across turns — avoiding pointless waiting and spend; any thinking already produced is kept when it's cut off
  • An inline warning when available points run low: when AVL Zero available points drop below 50, an inline warning appears in the message stream so you can top up credits in time; the warning copy is trimmed and its buttons wrap as a group for a tidier look
  • A first-run wizard: a new first-launch onboarding flow walks you step by step through “sign in → open or create a project workspace → start your first session”, so new users get going more smoothly

Improved

  • UI wording and model defaults: “workspace” in the UI is now consistently called “project workspace” for clarity; and the sampling parameters of the Landi N2.6 / N2.7 series models are reset in one go to the recommended values (temperature=1.0, top_p=0.95) for steadier out-of-the-box results

2026-09-21

v0.9.21-alpha

Improved

  • More direct entry to buying credits / upgrading: “Buy credits” and “Upgrade plan” now both jump straight to the “confirm purchase” page, one hop shorter; the related entries' wording is also unified as “Buy credits” for consistency

Fixed

  • A sub-agent run no longer shows two cards: fixes a single sub-agent call sometimes appearing as two cards during execution — now one call maps to one card, for a cleaner view
  • Empty / partial tool-call arguments no longer trigger errors: fixes cases where a tool call with empty or half-sent arguments made the model service return a 400 error; such incomplete arguments are no longer echoed back to the model verbatim, so conversations are steadier and less likely to break off

2026-09-20

v0.9.20-alpha

New

  • Landi N2.7 series models support image input (multimodal): these models are now marked as multimodal-capable, so you can send images along with a message when using them
  • One-tap access to buying credits / upgrading when you run low: when credits run low the UI now surfaces a “buy credits / upgrade plan” entry in several relevant places, one tap away; the account card (where you see your balance) gains “quick buy”, which opens the purchase page directly in your browser so payment works smoothly on any device; and the account card's balance row is now always a single line, no longer wrapping when the balance is unknown

Fixed

  • Picking an unavailable model no longer “silently downgrades” the whole session: previously, choosing a model that wasn't actually available could quietly downgrade the entire session with no clear notice, affecting every later message; that's fixed, so one selection can no longer derail the whole session
  • Images in user messages display properly: fixes images not showing in a message after sending — an image in a user message now appears as a thumbnail you can click to view at full size
  • Auto-nudging and “ask you for help” behave more sensibly: when the assistant really is stuck it can now properly ask you for help (this ability used to be blocked by its own allowlist, leaving it to be nudged along instead); todo nudging also gives the model a dignified way to stop — marking itself paused when warranted rather than always pushing on, with paused / self-reported states preserved across context compaction and self-healing give-ups no longer silent; and an unassigned subtask no longer interrupts you with a question form
  • No more jitter or flicker when following a stream: the “scroll to bottom” button flickering and the content shifting up and down while following a streamed reply are fixed, for steadier reading

2026-09-19

v0.9.19-alpha

Fixed

  • The parallel sub-agent running indicator is more accurate and no longer spins forever: an interrupted parallel sub-agent call no longer shows “in progress” indefinitely — its placeholder state is now judged by whether the session is actually running; when the same session starts its next turn, leftover parallel sub-agent calls no longer start spinning again, and the “in flight” check now excludes messages the frontend inserted locally, so the display matches reality
  • “Show in folder” on Windows now locates files whose path contains spaces: previously a path with spaces would open “This PC → Documents” instead of selecting the target file; it now opens the containing folder and selects the file correctly

2026-09-18

v0.9.18-alpha

Improved

  • Attached external directories / files can choose their scope: by default they apply only to the current session, or you can share them across the whole workspace, deciding whether other sessions can use them
  • An image is sent only with the turn it was attached to: later turns no longer re-send the same image, which is cheaper and more accurate; a case where images were wrongly dropped on some resume paths is also fixed — retirement is now judged by “answered normally + the user has new input”, so an image is reliably carried when it should be
  • Smoother attachment and image entry points: pressing Enter in the attachment confirmation dialog no longer triggers a button by mistake; the image item in the “+” menu is now its own group and renamed “Add image to current message”, clearer and easier to find

Fixed

  • Fixed high main-process CPU after startup: the main process used to sit at about 140% CPU after launch, caused by a self-dependency in the session-directory index cache that kept recomputing; usage now drops back to normal, and several internal caches, temporary sets and date fields that had been bulk-converted to reactive types were reverted as well, avoiding extra overhead or state glitches
  • Stricter workspace path guardrails to prevent deleting the home directory: the safety guardrail for delete operations now resolves symlinks first and compares the real path against the home directory (`$HOME`) and blocklisted directories — previously, if home was reachable via a symlink the guardrail could miss it and risk wiping it entirely; that hole is now closed

2026-09-17

v0.9.17-alpha

Fixed

  • Several entry points that previously “did nothing when clicked” now work: dragging a folder in opens it as a workspace; in-app messaging (IM) channels can be deleted; session sharing is properly wired up; and the disable switches for remote-related items now actually take effect
  • Auto-continue no longer crosses workspaces: goal / todo auto-continue now targets precisely by “workspace + session” — previously, when different workspaces had the same session id it could act on the wrong session; now it only advances the session it belongs to

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
  • Status strips wrap correctly: when goal / todo status strips don't fit and wrap onto multiple lines, the bottom line no longer wrongly gets the edge-capping style, so alignment and borders in multi-line layouts look tidier

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