v0.15.0
[0.15.0] - 2026-09-09
Fixed
- Release workflow pins companion WebView
0.1.5(published assets + Homebrew)
and crates.ioa3s-tui0.1.15 (with_canvas_rgb,
DiffView::emphasize_inline_changes).Cargo.lockrecords the registry
source/checksum so--lockedCI succeeds without the local.cargopath patch. - Release sandbox proves native policy on
macos-latest(arm64 zvec prebuilt).
Intel (x86_64-apple-darwin) binary jobs provisionlibzvec_c_apivia CMake
when the zvec-rust prebuilt is absent. - Pin
a3s-code-coreto git reve35e7086so DeepResearch multi-source Flow
step identity admits ≈96 KiB selector shards via Core digest-fold (64 KiB
soft inline / 512 KiB hard ceiling). Capability gate:
./scripts/verify-capability-regression.sh --require-published.
Changed
- Executable Tool hermetic no longer depends on unpublished
PreparedCapability::into_value; prepare readiness + direct spawn instead. - Code TUI first-principles prune: drop dead wrappers (
App.anim, unused
config dir helpers, orphanopen_window/humanize/write_asset_acl, unused
DeepResearch spawn shim, unused progressive HTTP entrypoints, unused
OsService/MessageTone/RuntimePolicyvariants). Keep live
execute/journal/RemoteUI/open_window_withand Effect hermetics. - Code TUI PromptBar idle glyph is a muted non-bold
→(Cursor-style), with
empty-state placeholderAdd a follow-up. Shell!/ research?stay
bold colored mode marks. - Sticky Reviewer path: Core Gate admission + independent
AuxiliaryExecutor
(protocol hermetic rubric) onReplyVerifierLane. Incomplete evidence is
fail-closed (no published clean). Explicit/reviewstays on
GitReviewLanewithAgentStyle::CodeReview. Sticky no longer uses a
CodeReview side-session. - First-principles full TUI test plan (refuse overfit; Effect vs Contract
honesty; prioritized backlog beyond Z/M/R/B):
docs/tui-first-principles-test-plan.md. Phases A–C Exit gates proven
against existing Effect hermetics (dogfood, Plan/sandbox/HITL, DR1/G1);
Phase D remains regression-only. - Use Flow honesty: non-resident catalog/run APIs are hermetic-only;
production FullCompatibility keeps projection-only staging/preflight. - Capability regression one-shot + digest-fold pin scripts under
scripts/.
Added
- First-principles review of Reviewer + capability matrix work:
docs/capability-first-principles-review.md. Fixes: split sticky vs git
host postures; git/reviewno longer clears sticky open findings;
main-turn open-findings prefix is unit-tested (skips/loopcontinuations). - Capability first-principles test matrix for zvec/BM25, ReMe-like memory,
Reviewer claim-vs-record, and default Moliweb_search(effectiveness +
efficiency cases + focused runbook):docs/capability-test-matrix.md. - Sticky Reviewer (
/reviewer/ Shift+Tab) is a claim-vs-record reply
verifier: after each main turn it reviews the assistant message against
the user request and bounded turn tool evidence on an isolated priority
lane (does not block the main stream). Explicit/review [working-tree|…]
remains workspace git code review. Open reply findings inject into the next
main-turn prompt until addressed or waived (win the checklist). Issue
checklists deferred while the composer or queue is busy open automatically
once both are idle. - Markdown mermaid
sequenceDiagramfences render as Cursor-style terminal
architecture art (participant boxes, lifelines, arrows, alt/opt/loop frames)
viaa3s-tui; other Mermaid dialects stay as code. Open mermaid fences stay
in the streaming mutable tail until closed so diagrams can reflow. - Code TUI tool approvals: Cursor-style cyan countdown bar above the permission
prompt; remaining time shrinks left→right, selection uses->+ hotkeys, and
the bar auto Skip & tell (approval timed out) when it runs out. Default
15s; override withA3S_CODE_APPROVAL_TIMEOUT_MS(0disables countdown). - Code TUI Ctrl+G Diff review: reopen the latest turn's successful file
edits as a full DiffView overlay (←/→ switch files, j/k scroll,iseeds a
follow-up draft about the selected path, Esc closes). Ctrl+R remains prompt
history. Tracked indocs/tui-cursor-alignment-roadmap.mdPhase 1. - DiffView word-level peek: adjacent delete/insert pairs emphasize changed
tokens viaemphasize_inline_changes(used by Code file-change cards and
Diff review). /askand/plancomposer aliases arm read-only Plan mode (Cursor Ask maps
to plan without adding a sixth Shift+Tab state).a3s code exec --mode ask
is accepted as an alias of--mode plan. Help/banner document the
agent/plan/ask/reviewer/auto/yolo legend./terminalnow appends copy-paste repair snippets for weak Shift+Enter /
enhanced-key / multiplexer passthrough (Cursor/setup-terminalspirit).
Opt-in turn-complete notify viaA3S_CODE_NOTIFY=1(BEL + OSC 9) and one
dim idle tip viaA3S_CODE_SUGGEST=1(heuristic; Ctrl+G when the turn
edited files). Tracked indocs/tui-cursor-alignment-roadmap.mdPhase 3.a3s code --worktree [NAME]creates an isolated Git worktree under
.a3s-worktreesand starts the interactive TUI there (cold-start counterpart
to/fork worktree). Binds managed lifecycle so/worktree cleanupprints
non-forcing remove guidance. Phase 4.- Sticky skill mode: Alt/Option+Enter on a
$skillmenu pick keeps that skill
attached across turns (footersticky:<name>); Esc on an empty composer or
/unstickclears it. Enter alone remains one-shot mention completion.
Phase 5.
Fixed
- Empty-transcript viewport rebuild preserves the welcome banner (deferred
startup no longer flashes the logo then blanks it). - Busy consecutive submits: defer user transcript until queue admission so
interrupt markers stay under the interrupted turn; after Thought finalize,
moveinterruptedafter the sealed Thought block. - Session-store open uses Core
new_recovering_corrupt_walso a duplicate-WAL
sequence conflict quarantines the corrupt WAL and continues from snapshots
(requiresa3s-code-core = 8.5.1). - Sticky Alt/Option+Enter clears the composer after attach so Esc can detach
immediately (leaving$skillpreviously blocked empty-composer Esc clear). A3S_CODE_NOTIFY/A3S_CODE_SUGGESTstill fire when sticky Reviewer
side-sessions spawn after the main turn (primary queue empty).- Ctrl+G empty notice distinguishes in-flight file edits from a turn with no
completed edits. /worktreeand unmanaged-session errors mentiona3s code --worktreebeside
/fork worktree.- Sticky skill injection outranks the disabled-skill list for the current
session, so a footersticky:<name>chip cannot silently no-op after a
plugin disable. - Diff review Home/End jump to scroll extremes (with Ctrl+G refresh path
retained). - Sticky skill footer chip (
sticky:<name>) remains visible in Zen display
profile (mode-like session state was previously dropped by the Zen early
return). - Ctrl+G while Diff review is open refreshes from the latest turn and keeps the
previously selected path when it still exists; empty refresh closes the
overlay. - Large bracketed text pastes (≥15 lines or ≥400 characters) collapse into
PromptBar pills so the six-row composer budget is preserved; submit and
history recall still carry the full pasted body to the agent (Cursor CLI
large-paste grammar). Backspace on an empty draft removes the newest pill
before image chips; click expands a pill into the draft, × removes it. - Code TUI empty PromptBar now shows a focused dim placeholder
(Type a message, / for commands…), matching Cursor CLI empty-state
grammar instead of a blank focused box. Superseded in Unreleased by
Add a follow-up+ muted→glyph. - PromptBar auto-grow caps at six visible rows (Cursor CLI visual-line
budget) and scrolls overflow inside the bar; ↑ on the first multiline
row recalls session history while mid-draft ↑/↓ still move the caret.
Interaction grammar vs Cursor CLI is tracked in
docs/composer-input-grammar.md. - Code TUI pins each turn's reply language from the user's message script
(zh-CN/ja/ko/en) via Coreset_output_language, and the default
system prompt forbids mixing languages in user-facing prose while keeping
code, paths, and quoted source unchanged. - Delegated
taskfan-out renders a checklist of every task title instead of
collapsing toa; b +N moreon one header line, so parallel work stays
visible while running and after completion. - Deferred workspace retrieval and ordinary catalog enable no longer open the
durable zvec projection during the pre-TUILoading workspace…window.
Durable FTS attaches on first Grep/BM25 demand; embeddings still wait for the
first-frame gate. - macOS PTY first-frame regression launches
a3sthrough a SIP-safe wrapper so
expect-driven probes can load native zvec withoutDYLD_LIBRARY_PATH, and
asserts the in-processterminal_handoff/first_frame_flushedbudget
instead of a stderr-TTY Loading string that redirect-based probes cannot see.
Added
- Default-mode agents can call Core
update_planto maintain the TUI pinned
checklist mid-turn (TaskUpdated+ existing Codex-compatible plan args). - Code TUI explore / web tool cards surface pagination windowing (
offset,
limit,max_chars, …) on compactExploring/Exploredand fetch rows;
readalso shows a 1-basedL…range when both offset and limit are set. - Code TUI message-stream image previews: submitted
Ctrl+V/@images keep
half-block Unicode thumbnails in the user bubble (click opens RemoteUI). Session
resume rebuilds previews from persistedContentBlock::Imagedata. - Sticky
/reviewercomposer mode (also on Shift+Tab): arms an isolated
reviewer lane (owna3s_lanepriority queue +ReviewerMsgbus) that runs
CoreAgentStyle::CodeReviewside-sessions to critique the latest assistant
message reply after each main turn (read + verify, no auto-edits) without
changing or blocking the main agent stream. One-shot/review [working-tree|…]
enqueues git-scoped code review on the same lane.
Changed
-
Code TUI surfaces mid-turn plan progress and explore density from first
principles: the live viewport appends the plan checklist (progress header
plan · done/total · N active, shared Checklist glyphs), and adjacent
explore calls stay one transcript block with count summary, one detail row
per call via the sharedexplore_detailformatter, and… N morewindowing
for older rows. -
Advanced the monorepo
crates/codegitlink to Core 8.4.0 tip and hardened
Code TUI integration from first principles:- Shift+Tab Plan now calls Core
AgentSession::set_agent_styleso PROMPT-ALIGN1
Plan system prompts track the host read-only boundary without a full rebuild. code exec --mode planinstallsAgentStyle::Planon session prompt slots.- Lexical catalog / zvec FTS attach lazily on first
search/bm25access
instead of during session construction. - Plugin Manager host construction is deferred past the first TUI frame
(authorization still loads on the critical path;/packagesstays
fail-closed until ready).
- Shift+Tab Plan now calls Core
-
Code TUI/
code execalways attach the lexical chunk catalog and best-effort
persistent zvec FTS forsearchbm25, even when semantic
workspace_retrievalis disabled. Cold queries keep the portable catalog
scorer until a durable generation is ready. -
Documented Moli as the default headless
web_searchbrowser (auto-download
on first use); Chrome and Lightpanda remain explicit ACL backends. -
Integrated managed Code runtime
a3s-code-core 8.4.0into the Code TUI
(submodule tipv8.4.0, release pin, and release-workflow contract). Plan
mode now sets explicit CoreAgentStyle::Planon session prompt slots
(PROMPT-ALIGN1) so the Plan system prompt and read-only repository-tool
contract apply at launch and session rebuild. -
Code TUI tool history is brief by default: successful shell/generic
rows keep the verb line plus at most one result sentence (or aCtrl+T
expand hint); successful MCP JSON stays out of the main stream; compact file
diffs use a short borderless peek. Failures still show a bounded error body.
Ctrl+Tremains the full semantic transcript.
Removed
-
Removed the Code TUI/CLI five-pack asset surfaces (
/agent,/mcp,/skill,
/flow,/okf) including pickers, local*_devmodes, clone/scaffold
workflows, OS publish/activity panels, and matchinga3s codesubcommands.
Skill discovery,/plugin,/kb, Use MCP registry, workspace/review, and
/evolutionasset ACL materialization remain. Follow-up honesty scrub removed
leftover five-pack docs fromcli-reference.md, deleted the unused
os/progressiveclient module, and pruned orphan chrome helpers that only
served those surfaces. -
Removed Agent Island, its TUI commands and heartbeat/control bridge, and the
native floating window mode. RemoteUI and Workspace Host remain available. -
Removed the Anthropic sandbox-runtime package, Node.js bootstrap, managed
support tree, integrity patcher, legacy archive bridge, installer and
self-update support-payload transactions, and related release dependencies.
Added
- Added an A3S-owned native local command sandbox across macOS Seatbelt,
Linux namespaces and seccomp, and Windows AppContainer and Job Objects, with
a real boundary probe in each platform release gate.
Changed
-
Code TUI terminal takeover no longer waits on crossterm's Kitty keyboard
enhancement device probe (up to two seconds when a host ignores the query).
Progressive-key flags are pushed unconditionally so the welcome logo and
first frame appear immediately after session construction. -
Code TUI deferred first-frame services no longer paint a "Loading background
services" / "starting…" chrome once the editor is ready./autoand/yolo
remain typed aliases for Shift+Tab autonomy modes but leave the empty/
browse list. Session debug writes to editor-localdebug-*.logpaths were removed from
the TUI path. -
Code TUI slash IA:
/ctxis the context hub (memory/kb/sleep/
evolutionplus existing search/attach/save)./useis the integrations hub
(plugin/packages/reloadplus status/repair). Skin commands, OS asset
clones,/ide,/goal, and/loopstay typed but leave the empty/browse
list; legacy slash forms still work and tip the preferred hub path. -
Code TUI
/research <query>starts DeepResearch;status/explain/
replay/diffremain diagnostics. Leading?is a shortcut that tips
/researchand no longer enters sticky composer research mode. -
Unified Code TUI DeepResearch onto the typed
CodeDeepResearchRunnerpath:
/researchdiagnostics readjournal-v2first (Inquiry fallback remains),
typed fail/cancel can salvage published or recovery artifacts, smoke uses
the same runner asa3s code research, and startup recovery settles
interrupted journal-v2 runs. -
WebView health checks now accept published helpers that only expose RemoteUI
via--help --url, and honorA3S_WEBVIEW_BINduring component discovery so
first-use setup no longer marks a working companion as unhealthy. -
Homebrew now installs the bundled
a3s-webviewcompanion from the CLI
release archive next toa3s, and no longer depends on a separate
a3s-webviewformula download. -
Updated the managed Code runtime to
a3s-code-core 8.4.0from the monorepo
crates/codecheckout, includinga3s-sandbox 0.1.1for the native local
command boundary used bya3s codeTUI and exec. -
Bash now fails closed in every execution mode when the native boundary is
unavailable; only an explicit approvedrequire_escalatedrequest can cross
to the host when a verified sandbox is attached.