Releases: axon-editor/axon
Release list
v1.3.4
Axon v1.3.4
Axon v1.3.4 is an architecture and responsiveness release. It separates terminal
process ownership from the editor Core, introduces a shared buffer engine for
fast file reopening, limits expensive language work on very large documents,
and completes the built-in Markdown experience. It also closes reliability gaps
around managed language tools, Python environments, workspace watchers, and
multi-window command-line launches.
Terminal architecture and delivery
- Terminal sessions now belong to a dedicated
axon-pty-hostprocess instead
of Axon Core. Core can recover without terminating active shells or discarding
their scrollback. - Packaged macOS and Linux builds use owner-only Unix sockets for PTY control,
while Windows uses owner-scoped named pipes. High-volume output remains on a
separately authenticated local stream. - Terminal tickets are bound to the renderer-approved workspace root, and
reconnect attempts cannot reuse a session from another workspace. - Unexpected Core exits produce an explicit recovery choice when live terminal
sessions are at risk instead of silently restarting underneath the user. - Byte delivery and xterm commit latency are measured without recording terminal
content, making stalls diagnosable without weakening terminal privacy. - Detached scrollback receives coalesced viewport repainting after committed
writes, preserving the user's reading position while keeping older output
visible as new agent output arrives.
Files, buffers, and workspace speed
- Workspace search prefers cancellable ripgrep JSON output, stops as soon as the
result limit is reached, validates every result against the workspace, and
falls back to the Go walker when ripgrep is unavailable. - Nested ignore files, global Git excludes, generated directories, and Python
environments identified throughpyvenv.cfgare honored without relying on
a small hardcoded list of environment names. - Large files use a shared policy at 2 MiB or 20,000 lines. Axon disables costly
whole-document services, bounds find results, and uses lightweight lazy syntax
tokenization while retaining useful JSON and common-language coloring. - Semantic token merging now uses ordered linear passes instead of repeated
overlap searches, preventing large documents from triggering quadratic work. - The Axon Buffer Engine adds a process-wide validated text cache, deduplicates
concurrent reads, retains clean Monaco models within a byte budget, and
prefetches likely files from explorer hover and pointer interaction. - Monaco mounts against the real path-backed model immediately, avoiding the
empty one-line flash when reopening a cached file. - Native recursive watching begins before the broader watcher finishes scanning,
so deep files created by agents appear quickly. Explorer refreshes target the
affected expanded folder, and Git keeps one trailing refresh when events arrive
during an active status request.
Language tools and Python projects
- Managed archive extraction now reports continued byte progress, propagates
cancellation through ZIP, TAR, XZ, and gzip paths, and cleans abandoned staging
directories without blocking the active install promise. - Large macOS ZIP packages use validated native extraction outside Electron's
main process with a phase-aware watchdog, preventing legitimate large entry
flushes from being mistaken for a frozen installer. - Language servers warm from loaded files after installation, queue document
synchronization while starting, flush it after initialization, and remove
failed sessions so refresh or retry can create a clean process. - JVM servers receive realistic cold-start and hover budgets, while the UI keeps
them in a starting state until initialization and workspace indexing complete. - Python discovery finds arbitrary environments through
pyvenv.cfg, examines
relevant nested projects with bounded traversal, and consults Poetry, Pipenv,
uv, pyenv, Conda, active virtual environments, and the system PATH only when
applicable. - Axon automatically selects a valid project environment, exposes both its folder
and canonical interpreter, and supplies Pyright with real import and editable
source paths. - Nested backend or core workspaces can discover unambiguous sibling environments
up to three ancestor levels away, while ambiguous candidates remain a manual
choice instead of being selected by filesystem order.
Markdown, MDX, and editor workflow
- Markdown previews render Mermaid diagrams lazily with strict security,
theme-aware colors, bounded graph complexity, serialized rendering, and compact
errors that do not break the rest of the document. - Fenced code uses Monaco tokenization, math uses KaTeX, and previews support GFM
footnotes, frontmatter metadata, bibliography citations, callouts, wiki links,
and source-editing task checkboxes. - Source and preview scrolling stay synchronized without feedback loops. Printing
and PDF export run through an isolated script-disabled Electron window. - Raw HTML and static MDX are sanitized through an allowlist that blocks scripts,
embedded executable content, event handlers, and unsafe links. - Preview controls now work consistently for
.md,.mdx, and.markdown. axon .requests are captured before Electron readiness and routed to the
correct renderer window. New terminals also work in secondary windows that do
not yet have a workspace by starting from the user's home directory.- Save dispatch is cancelable and coalesced, preserving edits made during
format-on-save while keeping a cached-model fallback when no editor is mounted.
Interface and extension development
- Editor components, libraries, and tests are grouped by navigation, panes,
surfaces, tabs, buffers, formatting, Git, language, layout, and inspection. - Passive borders are quieter across dark themes, including Axon Black, while
light themes retain their authored contrast and focus borders remain distinct. - The native Electron background, boot splash, pre-React renderer shell, and
Windows titlebar overlay use the saved theme palette from a tiny startup cache.
Startup remains opaque and lightweight. - The project documentation now reflects the PTY host and current editor
architecture, with working examples for themes, language metadata, snippets,
runtime commands, terminals, debugging, indexing, and disposal.
Included commits
209d5dethroughe5fcba6protect terminals, bind workspace ownership, add
latency diagnostics, isolate the PTY host, and secure its control channel.5c29d44andf041b94add cancellable, project-aware workspace search.c1cfcac,8b6b3df, and517af11stabilize language-tool extraction and
activation.d193145,03c6016,3f4d880, and0c8c4f0complete Python environment
discovery, selection, import resolution, and nested-workspace handling.fd730b9,efcc9e3, andc19380aimprove large-document performance and add
the Axon Buffer Engine.4507417keeps explorer and Git state current during external writes.0e810fe,b636689, and3903a2ecomplete Markdown rendering and terminal
scrollback repainting.fa7c721restores MDX preview and multi-window command-line workflows.34457a9,8868d8d, and607c527organize the editor, soften dark borders,
and make startup theme aware.
v1.3.3
Axon v1.3.3
Axon v1.3.3 strengthens the editor's live feedback loop. Terminal output and
scrollback remain stable during long agent sessions, syntax colors and explorer
updates appear sooner, and files outside the workspace can participate safely
in normal editor and language workflows.
Terminal and performance
- Sustained agent streams preserve earlier rendered lines while the user reads
scrollback or follows live output. - Terminal rendering remains responsive under large output bursts and across
multiple Axon windows. - Syntax painting no longer waits up to 650 ms for a cold language server.
TextMate colors paint first and late LSP semantic tokens merge in place. - Active grammars preload during file reads, semantic repaint delay drops from
175 ms to 48 ms, and Go syntax repaint delay drops from 320 ms to 60 ms. - File watcher and renderer coalescing now add roughly 40 ms of fixed latency
instead of roughly 180 ms before rebuilding the explorer tree.
Files and language intelligence
- Folders can be dragged between explorer directories through the existing
validated filesystem move path. - Files dropped onto an editor pane open directly and remain editable; files
dropped onto the Files sidebar continue to import into the workspace. - Go standard-library and dependency definitions outside the project open as
exact-file, read-only tabs rather than failing workspace capability checks. - Authorized external models use the active workspace language server for
hover, completion, definitions, references, and semantic tokens. - External grants remain renderer-scoped, distinguish writable user drops from
read-only LSP definitions, and are revoked when the window closes. - File errors now omit Electron's remote-method wrapper and show the useful
message directly.
Git and interface
- Axon Line Trace shows faint inline author, age, and commit information using
the editor font without blinking or dominating source text. - A custom delayed popover presents commit details, author avatars, and profile
links without relying on native HTML title behavior. - Git Graph author previews and commit details use shared identity resolution
and position previews near the pointer. - Native windows identify their active project as
Axon - {folder}. - The packaged app uses a new high-resolution Axon ribbon icon.
Themes and media
- Axon Black provides a true
#000000editor appearance, while Axon White
provides a complete high-contrast light appearance. - Both themes include syntax, Monaco widget, terminal, and ANSI palettes.
- The duplicate Minted theme has been removed from the Apathy collection.
- Spotify now exposes Liked Songs, remembers preferred devices by name and
type, and uses a wider theme-aware player with a reduced-motion-safe waveform.
Verification
- Electron main-process and renderer production builds pass.
- All 167 editor tests and all Axon Core tests pass.
- TypeScript, ESLint, line-count, formatting, and whitespace validation pass
with only the repository's existing React hook dependency warnings.
Included commits
4b26c54aligns editor chrome with active themes.ca33a0cstabilizes managed language-tool installs.b8280d2stops complete test process trees.dbffa12and973e5d1stabilize terminal output and contrast.5a73f9drestores colored explorer icons.0ed0053and392c54eadd and stabilize Axon Line Trace.1abda09adds Axon Black and Axon White.8cc14f6enriches Git author identity surfaces.f273bfdexpands Spotify playback.64d6009identifies workspace windows natively.d38647frefreshes the desktop app icon.13bc217opens external files with workspace intelligence.888083areduces workspace file appearance latency.715b522restores release validation after the Line Trace UI update.
v1.3.2
Axon v1.3.2
Axon v1.3.2 improves daily editor feedback and reliability. Completion behavior
is now configurable, navigation keeps the explorer synchronized, language-tool
downloads recover cleanly, and the editor UI follows every active theme.
Editor intelligence and navigation
- Settings now independently control automatic suggestions, trigger-character
suggestions, completion preview text, and word-based suggestions. - LSP hover and completion surfaces derive their background, foreground,
border, selection, and highlight colors from the selected theme. - Workspace search, quick open, and language navigation expand lazy parent
folders, activate the destination file, and scroll it into view. - Existing settings keep all suggestion behavior enabled by default, preserving
the behavior from v1.3.1 until a preference is changed.
Themes and interface
- Axon Parchment is a new built-in light theme with warm editor surfaces, clear
syntax contrast, themed Monaco widgets, and a matching terminal ANSI palette. - Status-bar icons, active states, hover states, metadata, errors, and warnings
now use theme tokens instead of fixed colors. - The status accent is now a short, thin highlight that flows from left to right
without the previous broad glow and remains still when reduced motion is set.
Reliability
- Git line decorations remain accurate when changed content is removed,
restored, replaced, or edited repeatedly without closing the file. - Markdown preview ignores stale asynchronous renders and remains stable during
rapid source changes. - Language-tool installation progress survives file changes and renderer
remounts, while cancellation terminates active work and cleans partial data. - Completed downloads no longer restart as an untracked second installation or
leave a language permanently stuck at Installing. - Renderer test configuration now includes the correct React environment types,
preventing false CI failures.
Verification
- Electron main-process and renderer production builds pass.
- All editor tests pass.
- TypeScript, ESLint, release metadata, line-count, formatting, and whitespace
checks pass.
Included commits
8992f5dkeeps Git line paint synchronized during repeated edits.9ccd3c4stabilizes Markdown preview rendering.7036abemakes managed language-tool installations recoverable.5181bc5corrects the React test environment used by CI.c230150adds Axon Parchment, suggestion settings, themed Monaco widgets,
and explorer reveal behavior.8f61f33makes the status bar fully theme aware.
v1.3.1
Axon v1.3.1
Axon v1.3.1 expands the editor's language foundation while making release
downloads smaller. Native language tools now install securely when needed,
terminal streaming remains stable during live agent output, and workspace files
stay current during rapid external edits.
Language tools
- Axon now detects and highlights Swift, Ruby, Dart, SQL, TOML, Zig, Terraform,
LaTeX, Scala, Clojure, Haskell, Erlang, R, PowerShell, Assembly, Makefile,
XML, and Protocol Buffers projects. - The left status-bar bolt opens workspace-focused language status, installation,
lifecycle controls, and logs without exposing the complete catalog in Settings. - C/C++, Rust, Java, C#, Kotlin, Lua, XML, Protocol Buffers, and other native
servers install only when requested. - Managed downloads use pinned versions and reviewed checksums, reject unsafe
archives, clean partial data after cancellation, and activate atomically. - Java and Kotlin share a private managed JRE. C# and PowerShell can use private
managed runtimes without requiring global installations. - npm-backed servers and Go remain bundled. Release packaging excludes roughly
485 MB of other uncompressed native server resources. - YAML now resolves correctly in npm-hoisted development workspaces, Makefiles
no longer activate C++, and.dockerignoreno longer receives Dockerfile
diagnostics.
Terminal and workspace reliability
- Terminal follow intent is tracked independently from transient xterm viewport
coordinates, preventing visible live agent output from removing prior lines. - Readers can remain detached in scrollback while output continues, then return
to the live tail without losing rendered content. - Git initialization is detected inside an already-open workspace.
- Rapid external writes, atomic replacement saves, and multi-file agent changes
refresh open models, the file tree, and Git state without reopening files.
Editor workflow
- Code Snapshot opens as a built-in editor with syntax-aware PNG export,
configurable framing, Axon branding, clipboard copy, and native save support. - Editor settings now control tab size, indentation detection, source padding,
indentation guides, active guides, and bracket-pair guides live. - TypeScript project discovery supports arbitrary monorepos without hardcoded
Axon paths. - Editor zoom preserves both viewport axes, scales line height proportionally,
andCmd/Ctrl+Btoggles the sidebar again. - Terminal toolbar actions remain clickable at reduced zoom levels.
Verification
- Electron main-process and renderer production builds pass.
- All editor tests and Axon Core Go tests pass.
- Language-server packaging, extension registry, line-count, lint, and
whitespace checks pass.
Included commits
ce341c0through289a2e0add editor formatting, code snapshots, and project discovery.acb1219and5a626ddstabilize Git initialization and terminal streaming.9e21f39throughc635c9edeliver managed language installation and expanded support.5caa914and6fa2e86fix watcher, zoom, YAML, C++, and Docker ignore behavior.
v1.3.0
Axon v1.3.0
Axon v1.3.0 promotes repository history into the editor workspace and fixes a
packaged-app process collision that could prevent selected folders from opening.
Git graph workspace
- Git Graph now opens as a normal editor tab and participates in Axon's pane and
tab workflows. - The graph provides searchable commits, lane visualization, branch and tag
references, and stable description, date, author, and hash columns. - Commit details remain closed until a commit is selected, then use an
independently scrollable side pane. - Resting the pointer or keyboard focus on a commit for two seconds opens a
compact animated preview without changing selection. - Changed files preserve the repository's real directory structure in a
collapsible tree. - Clicking a changed file loads its commit-specific diff and opens Axon's
existing historical comparison view. - Missing or failed remote author avatars fall back to readable initials. The
renderer already permits HTTPS images, so this does not loosen CSP.
Packaged workspace opening
- Every packaged Axon launch now chooses a private random Core port unless one
is explicitly configured. - A stale orphaned Core process can no longer receive a new app window's folder
request and reject it because the processes have different launch tokens.
Verification
- Renderer and Electron main-process TypeScript checks pass.
- All 21 editor tests pass.
- All Axon Core Go tests pass.
- Repository line-count and whitespace checks pass.
Included commits
57ac94efixes packaged Core launch isolation.88f6939moves the Git graph into an editor tab and completes its interaction
model.
v1.2.10
Axon v1.2.10
Axon v1.2.10 is a responsiveness and multi-window reliability release. It
removes avoidable waits from language intelligence, keeps terminal output
following sustained agent streams, moves large workspace indexing off the
Electron main thread, and gives every Axon window independent workspace state.
Language Intelligence
- Completion results now appear before expensive TypeScript item enrichment.
Documentation and auto-import edits are resolved lazily for Monaco's focused
suggestion instead of resolving up to 160 items before opening the list. - Completion requests have a 1.2-second failure ceiling, focused-item resolution
has a 700 ms ceiling, and hover requests have a 900 ms ceiling. - Monaco hover begins after 100 ms, down from its slower default interaction.
- Semantic token refresh now starts 175 ms after editing settles instead of 650
ms, reducing the time identifiers remain stale-colored. - The completion popup is constrained to 300-420 px, uses denser rows and
spacing, and removes the always-visible status strip and inline details.
Terminal Reliability
- Preserved auto-scroll state per asynchronous xterm write batch. Later writes
can no longer overwrite the follow decision used by an earlier callback while
agent output is pushing old lines out of view. - Added delayed-callback regression coverage for overlapping terminal writes.
- Disabled Chromium background throttling on both normal editor windows and the
production boot window that becomes the editor, keeping output draining and
painting while Axon is unfocused. - Updated Electron to 42.4.0 for the latest 42.x browser-process and Chromium/V8
stability fixes.
Workspace and Multi-window Behavior
- Replaced recursive
readdirSyncand per-filestatSyncindexing with bounded
asynchronous directory and metadata batches. - Coalesced concurrent workspace-index requests so multiple consumers share one
scan instead of repeating expensive project traversal. - Created one file/Git watcher manager per renderer window. Opening a project in
a second Axon window no longer closes the first window's watchers or routes its
events to the wrong renderer. - Scoped language-server shutdown to the workspace being replaced instead of
stopping every active window's language tools. - Added regression coverage for renderer-specific watcher ownership and cleanup.
- Added local-folder opening and Git repository cloning with live progress,
automatic destination selection, and opening the cloned project on success.
Preview and Editor UI
- Removed the fixed-height console embedded below HTML preview so the page uses
the full editor surface. - Routed HTML browser console messages into Axon's Output tab without forcing
the terminal or bottom panel open. - Kept preview reload, responsive device presets, and external-browser opening
available in the compact preview toolbar.
Validation
- All 21 editor tests and all Go tests pass.
- Main-process and renderer TypeScript checks pass.
- Production build and line-count checks pass.
- ESLint completes with no errors; the repository retains 62 existing warnings.
Commits Included
e0c05e7feat: open and clone projects with live Git state2bfd4bafix: update Electron for native browser stabilityeabcbc1perf: accelerate editor feedback and multi-window workflows
v1.2.9
Axon v1.2.9
Axon v1.2.9 is a security, terminal integrity, and editor performance release.
It hardens the local Core boundary while removing the extra work that made file
loading and editing feel slower after the security pass.
This release includes the six commits after the v1.2.8 tag.
Security Boundary
- Bound axon-core to IPv4 loopback and authenticated HTTP and WebSocket traffic
with a secret generated for each app launch. - Removed the Core bearer token from the renderer. An allow-listed main-process
proxy now owns authenticated Core requests and cancellation. - Added short-lived, single-use terminal tickets bound to the approved working
directory instead of placing the launch token in a WebSocket URL. - Added persistent per-renderer workspace capabilities for filesystem, settings,
terminal, and Core operations. - Canonicalized existing and not-yet-created paths through their nearest real
ancestor, preventing symlink parents from escaping an approved workspace. - Restricted CORS, WebSocket origins, Electron navigation, and local asset
types, and prevented destructive operations against workspace roots.
Terminal Integrity
- Kept terminal sessions alive independently of the visible renderer and added
acknowledged replay cursors for reconnects. - Drained queued WebSocket frames before closing a completed shell so final
command output is not lost. - Preserved PTY bytes returned with EOF and clamped acknowledgements to the
stream bounds owned by Core. - Added high-volume, final-output, reconnect, origin, and accounting regression
coverage for the terminal eating-output failure class.
File and Editing Performance
- Replaced the renderer-to-Core-to-filesystem read/write round trip with direct,
capability-checked main-process text I/O, retaining UTF-8, binary, size, and
workspace validation. - Mounted only the active tab initially and kept an editor warm only after it
has actually been visited. - Limited file watchers and initial language-server synchronization to active
editors instead of every restored tab. - Removed eager startup of every relevant language server and deferred
non-critical extension activation until after the first paint. - Coalesced React content snapshots, LSP full-text synchronization, semantic
decoration refreshes, and Go whole-file syntax scans away from each keystroke. - Split Shiki into a shared tokenizer engine and per-language lazy grammar
chunks, keeping unrelated grammars out of the first edited file.
Editor Workflows
- Rebuilt split-pane dividers as sibling flex controls with an eight-pixel drag
target, pointer capture, exact pixel movement, and a minimum pane width. - Added native Save As and connected Open Recent to the existing folder picker.
- Added a bounded one-pass workspace replace operation in Core with generated,
binary, and oversized-file exclusions plus atomic writes. - Corrected JSON object-key semantic classification so keys use property colors
while quoted values remain strings. - Added the missing Node TypeScript project ownership for
vitest.config.ts,
removing repeated falsenode:pathdiagnostics.
Fonts and Themes
- Bundled Inter Variable for Axon Sans and IBM Plex Sans Variable for Zed Sans,
making both UI choices distinct on every supported platform. - Kept System UI as a separate native option and migrated old fallback-only
family names to their supported replacements. - Deduplicated themes by stable theme ID across bundled, workspace, and user
extension sources. Later sources remain the effective override without
producing repeated Settings options. - Shared the canonical theme list across renderer startup, Settings, Welcome,
derived theme state, and Monaco registration.
Validation
- Added security path-policy, terminal integrity, semantic-token, font, and
extension-theme conflict tests. - Kept TypeScript project checks, ESLint, Go tests, Go vet, line-count guards,
language-server checks, and production builds passing for the release. - The renderer entry remains about 415 KB after minification; UI fonts are
emitted as separate WOFF2 assets and language grammars remain lazy chunks. - Added the root MIT License for GordenArcher and Axon Editor Group and aligned
the root/editor package metadata with that license. - Synchronized all 636 required npm language-server package paths with the
release allow-list after the dependency graph changed, restoring packaged
bundle verification on macOS, Windows, and Linux. - Added a packaging-only language-server verification step to normal CI so the
same closure mismatch fails before the next release tag is created.
Commits Included
1e59c2edocs: add contributor workflow guidec6a25b9docs: update extension api repo link71c0b1bfix: secure core transport and preserve terminal output5da1731perf: secure and accelerate Axon editor workflows33cd96cfix: include Vitest configuration in Node project7372595fix: deduplicate themes and bundle UI fonts
The release still inherits upstream audit advisories from bundled language
servers. Axon's build patches the vulnerable runtime copies that have compatible
fixed versions; Svelte language-server and OpenTelemetry advisories require
upstream or breaking upgrades and remain tracked separately.
Axon v1.2.8
Axon v1.2.8
Axon v1.2.8 is a stabilization release after the large v1.2.7 platform push. It
focuses on the places that matter when Axon is installed and used like a real
editor: packaged workspace handoff, Git decoration repainting, terminal link
stability, terminal output scheduling, workspace hydration, CI, and richer
theme syntax coverage.
This release includes the work after the v1.2.7 release-prep commit
9c5290f.
Packaged Workspace and Git Reliability
- Fixed packaged workspace handoff so
axon .keeps the requested folder as the
source of truth instead of briefly restoring an older closed workspace first. - Reduced stale main-process workspace work so old indexing, watcher, and
service tasks do not keep racing after a project switch. - Coordinated workspace service hydration so the file tree can become usable
while secondary services start in a cleaner order. - Added a Git-only decoration heartbeat for packaged builds. Native watchers can
miss edited-filechangeevents even when new-fileaddevents still work,
which is why new files could turn green while modified files failed to repaint.
The heartbeat refreshes Git status without enabling expensive full workspace
polling. - Kept the heartbeat scoped to the active watcher generation so closed
workspaces cannot repaint the current sidebar.
Terminal Stability
- Stabilized confirmed terminal links by routing them through Axon's normal
external-open path. - Removed the xterm canvas renderer path that could crash React during workspace
switches while disposing terminal sessions. - Guarded terminal disposal so failed renderer cleanup does not take down the
whole editor surface. - Pipelined terminal renderer output so xterm writes are scheduled in batches
instead of forcing every chunk through the slowest visible write path.
Empty Pane Imports
- Added drag-and-drop import support for empty panes.
- External files and media dropped into an empty editor area now go through
Axon's existing validation/import path instead of becoming a separate
one-off file loading behavior.
Extension Contracts
- Added debugger contribution contracts for launch configuration, breakpoint,
variables, call stack, and debug-console style work. - Added workspace-index extension contracts so future indexing/search features
have typed extension-facing APIs. - Kept these as contracts first so later debugger and indexing work can plug
into the extension host without another architecture rewrite.
Syntax and Themes
- Added richer syntax maps to the remaining built-in themes:
Anysphere, Apathy, Arctikai, Axon, Catppuccin, Solarized, and Zed. - Stabilized YAML token coloring so YAML no longer falls back to plain text
styling in common cases. - Kept the TextMate/semantic decoration pipeline from v1.2.7 and expanded the
theme data feeding into it.
CI and Build Validation
- Added GitHub Actions validation on every push.
- Added a main-process TypeScript check so missing generated config imports,
preload/main regressions, and Electron-side type errors fail before release. - Fixed dev asset loading and workspace hydration paths that were making local
workspace switches feel slower or inconsistent.
Commits Included
be5d091fix: correct packaged workspace handoff refresha0621daci: run validation on every push90d820ffix: stabilize yaml tokens and ci main checks2e3f657fix: stabilize dev asset loading and workspace hydration662c479refactor: coordinate workspace service hydration4bac95erefactor: reduce stale main-process workspace workfd6fb08feat: add rich syntax maps to built-in themes972ab85perf: pipeline terminal renderer output09ba9dafeat: add debugger and workspace index extension contracts09c7d12fix: stabilize terminal links and workspace switchingc62332bfix: keep git paints fresh in packaged builds
Axon v1.2.7
Axon v1.2.7
Axon v1.2.7 is the biggest release so far. It is less about one flashy button
and more about turning Axon into a real IDE platform: extension activation,
built-in contribution routing, terminal reliability, project-aware testing,
Problems as an editor surface, richer syntax coloring, faster workspace startup,
and a documented architecture for the editor's hardest systems.
This release includes 38 commits after a63637e.
Extension Host and Built-in Migration
- Added built-in extension activation so Axon can activate first-party features
through the same path future installable extensions will use. - Added an executable command runtime for extension-owned commands.
- Added extension lifecycle state, activation storage, contribution registry
wiring, and diagnostics around slow or failed activation. - Routed built-in workbench surfaces through contribution metadata instead of
continuing to mount every feature directly from the old renderer structure. - Moved more implementation ownership under
extensions/builtin, including
agent, terminal, Git/source control, search, settings, testing, problems,
language tools, tasks, Spotify, Markdown preview, HTML preview, and media
preview. - Added
extensions/builtin/README.mdto explain how built-in manifests,
language packages, workbench UI, and shared helpers should be organized. - Added built-in language manifests for more supported languages and tools:
Astro, Bash, CSS, Docker, GraphQL, HTML, JSON, MDX, Prisma, Svelte, Tailwind,
Vue, YAML, and the existing LSP-backed languages.
Architecture Migration
- Continued the migration into production IDE boundaries: app shell, workbench,
platform services, renderer services, built-in extensions, backend services,
and shared packages. - Moved terminal protocol/session helpers into
apps/editor/src/platformso UI
and transport are not owned by the same React component. - Moved agent workbench code under the built-in Agent extension and kept shared
agent logic in extension-ownedlibfolders. - Added built-in contribution routing helpers so Search, Settings, Git,
Terminal, Agent, Testing, Problems, Tasks, Spotify, and preview surfaces can
be resolved through declared contributions. - Documented the current architecture and migration direction in
architecture.md.
Terminal Reliability
- Reworked terminal IO so the backend does not treat websocket delivery as the
same thing as visible xterm output. - Added renderer-side acknowledgement timing after xterm writes complete, which
protects replay cursors during long-running output. - Hardened reconnect/replay behavior so long agent streams are less likely to
drop or consume output while the renderer is busy. - Added terminal session health data for received bytes, acknowledged bytes,
pending bytes, queued bytes, queue peaks, drained chunks, reconnect count, and
websocket close codes. - Reduced noisy terminal logging after startup and workspace-open fixes.
- Kept terminal UI under the built-in Terminal workbench while shared protocol
behavior lives in platform and PTY/session ownership stays inservices/core.
Problems and Testing
- Moved Problems into an editor tab opened from the status bar, instead of a
detached modal-like surface. - Kept the Problems UI as a strong diagnostics view with presentation helpers,
filtering, copy actions, and navigation back to source ranges. - Added diagnostic cache ownership and project-aware diagnostics export for
agent workflows. - Upgraded the Testing workbench with provider discovery, target listing,
details, output, and status bar access. - Made test discovery project-aware so generated folders, caches, dependency
folders, and irrelevant build output do not appear as useful test targets. - Kept test execution routed through project roots and provider commands instead
of assuming Axon's own repository layout.
LSP, Startup, and Workspace Performance
- Warmed active language-server paths earlier so hover, completion, diagnostics,
and semantic tokens can become ready closer to the moment a workspace opens. - Preserved React-aware Monaco language ids for TSX/JSX while still sending the
correct language identity into LSP requests. - Fixed React runtime resolution so valid React files do not report missing
react/jsx-runtime. - Improved package/export completion and external definition behavior as part of
the LSP cleanup work. - Unblocked workspace open services so the file tree can appear quickly without
waiting on every secondary service. - Added clearer diagnostics for LSP startup, spawn/init phases, semantic-token
legends, and service boundaries.
Rich Syntax Coloring
- Added Axon's richer syntax-coloring pipeline: Monaco tokens, TextMate/Shiki
grammar scopes, LSP semantic tokens, Axon semantic decorations, and targeted
language fallbacks. - Added the token inspector so real rendered tokens can be debugged from inside
the editor. It reports Monaco token class, rendered class/color, active theme,
active syntax count, semantic token data, expected colors, decoration class,
TextMate readiness, and grammar/CSP errors. - Fixed the renderer Content-Security-Policy so the inlined Oniguruma
WebAssembly engine can load and TextMate grammar tokenization can actually
run inside Electron. - Added a retry path for empty semantic-decoration passes during editor startup.
- Mapped Monaco bracket pair colors back to active theme bracket colors so
bracket highlighting no longer paints over the theme with unrelated bright
colors. - Expanded TextMate grammar coverage across built-in languages.
- Added Python fallbacks for imports, aliases, class-like identifiers,
constructors,self,cls, and member access. - Added shared member-access fallbacks for languages such as Go so chains like
h.applicationService.GetByID(c.Request.Context())can distinguish values,
properties, and function calls. - Added capture aliases for imported theme syntax keys such as
diff.plusand
diff.minus. - Documented the whole token-coloring architecture in
docs/TOKEN_COLORING_ARCHITECTURE.md, including the Monaco semantic
highlighting issue that has been open since 2020 and why Axon owns the final
decoration paint layer.
Markdown and Preview Surfaces
- Improved Markdown hash-link navigation so table-of-contents links scroll
within the preview pane instead of moving the Electron document. - Improved Markdown blockquote rendering so quoted preview text stays inside the
blockquote instead of looking like a separate section. - Added richer Markdown media handling for images, videos, sources, and local
preview asset resolution. - Fixed standalone Markdown preview tabs so they subscribe to the live dirty
Monaco model once it exists. A preview opened beside an editor now updates
live when the source Markdown tab changes. - Kept disk reads as preview fallbacks without letting stale disk snapshots
overwrite dirty editor content.
Source Control and Git
- Improved Source Control and Git workbench boundaries under the built-in Git
extension. - Fixed stale Git watcher refreshes so file state and source-control views do
not keep using old workspace information. - Improved media previews inside Git/source-control surfaces so binary media
files can be previewed instead of only shown as generic binary content. - Fixed the Source Control close-button behavior so the pane-level close action
closes the active file/graph preview rather than the whole modal. - Continued commit graph and Git history editor refinements behind the Git
contribution boundary.
Modals and UI
- Restored modal sizing and layout after the modal performance pass caused
Settings, Source Control, and Extensions to shrink or feel visually wrong. - Kept modal overlays lightweight so they still feel like modals without
reintroducing expensive blur or full opaque black screens. - Fixed extension modal scroll and sizing behavior so small result sets do not
collapse the modal. - Kept sidebar context menus and tab popups theme-aware.
- Added the app menu button/chrome pass for platform menu access and
traffic-light-safe UI placement.
Build, Release, and Diagnostics
- Added build diagnostics helpers so package/core build failures show clearer
phase-specific causes. - Fixed Windows package-build execution by using the current npm exec path,
avoidingnpm.cmdspawn failures. - Improved package build wiring for the workspace packages used by the extension
host. - Added extension activation logs, terminal health diagnostics, startup phase
reporting, and renderer diagnostics for hard-to-reproduce startup failures.
Commits Included
f6f3333fix: run package builds through npm execpathc47d7a1feat: wire built-in extension activation7c02f43fix: protect terminal streams from renderer lagb57fffarefactor: split terminal session manager06730dfrefactor: move agent workbench into builtin extensionb7629bdrefactor: split agent and terminal workbench boundaries770c23drefactor: move built-in workbench features into extensions8450a62feat: add extension runtime diagnostics and lsp service boundary29486d1refactor: route built-in workbench surfaces through contributions6439362refactor: move terminal io into platform service layer94febc3fix: restore dev startup and quiet workspace open7c2ae85feat: add executable extension command runtimeae92d6cfeat: mount extension view contributions in workbenchb3e2e4efix: restore modal layout and git media previewsd554b4cfeat: upgrade test explorer workbench242e477feat: harden testing workbench and react editor languages61ac921feat: route built-ins through workbench contributions7e923a3fix: improve markdown preview anchors and quotes261df54fix: prevent stale git watcher refreshesa909ea7refactor...
v1.2.6
Axon v1.2.6
Axon v1.2.6 is a large architecture and polish release. It takes the work that
started as bug fixing and pushes it into the new production IDE structure:
extension packages, built-in contributions, a cleaner terminal workbench, a
faster modal system, and a more capable Source Control experience.
Architecture and Extension System
- Added the shared extension API package, extension manifest contracts, runtime
contribution types, and example extension scaffolding. - Moved the repository toward the new
apps/,services/,packages/, and
root-levelextensions/architecture. - Added built-in extension metadata for themes, terminal, and other extension
surfaces so the app can resolve contributions from manifests instead of
hard-coded app fallbacks. - Moved built-in theme source loading to extension manifests and kept the
onboarding theme picker scoped to internal built-in themes. - Improved the Extensions modal with clearer installed/downloaded states,
marketplace metadata, GitHub links, and theme install handling. - Documented the architecture migration in
architecture.md.
Editor, LSP, and Navigation
- Fixed the save/dirty-file scroll jump so saving a buffer no longer moves the
editor to the bottom. - Fixed stacked Git/change decorations so repeated edits on the same range do
not deepen the same yellow, green, or red paint. - Restored command/control-click definition navigation while keeping Axon's
tab-opening behavior ahead of Monaco's peek popup for cross-file jumps. - Improved completion behavior for local exports, installed packages, external
library imports, icons, HTML snippets, JSX/TSX web completions, and Tailwind. - Improved hover behavior so TypeScript and Tailwind hovers do not stack in a
confusing way. - Fixed find behavior for command/control-F, including selected-text seeding
and stable focus while editing the search query. - Fixed breadcrumbs so symbol popovers open again and snippets are filtered out
of breadcrumb labels. - Split the main LSP feature module into focused facade, lifecycle, and request
files so the LSP implementation remains maintainable.
Modals and Performance
- Refactored Settings into smaller sections and removed the old color override
surface. - Fixed Settings and Extensions modal slowness by reducing heavy render paths
and keeping modal content scoped. - Changed modal overlays from opaque full-screen covers to theme-aware
translucent scrims. - Removed backdrop blur from modal overlays because Electron compositing made
it expensive on large windows. - Made hand-rolled modals use the same modal feel as shared command modals.
- Kept workspace/folder loading surfaces theme-aware without reintroducing slow
transparent skeleton overlays.
Source Control and Git
- Added a proper Source Control commit graph view with lanes, refs, hashes,
authors, relative dates, and parent counts. - Made graph loading explicit so Source Control opens quickly and only fetches
commit history when the graph view is selected. - Collapsed advanced Git workflow controls by default, loading branch, stash,
conflict, and worktree data on demand. - Kept the modal-level close button separate from the right-pane close button;
the right-pane button now closes only the active file preview or graph view. - Improved Source Control modal responsiveness by removing eager advanced Git
queries from the open path.
Terminal and CLI
- Moved the built-in terminal workbench implementation under
extensions/builtin/terminal. - Added terminal contribution resolution so the app mounts terminal UI from the
extension registry instead of importing old app-only terminal internals. - Added shared platform panel types for terminal/output panel ownership.
- Rebuilt the dev
axonCLI duringnpm run devusing a repo-local Go build
cache. - Split the
axonCLI agent into prompt, composer, model picker, terminal
helper, session header, and terminal UI modules. - Added the full-width Axon terminal header, animated tagline, and improved
slash-command picker.
UI and Theming
- Made sidebar file rows horizontally scrollable instead of truncating long
filenames. - Made sidebar context menus and tab popups theme-aware.
- Fixed modal placement and Zen mode chrome spacing around platform traffic
light areas. - Added custom scrollbars across editor surfaces.
- Increased the welcome tab built-in theme list to twelve internal themes.
Commits Included
This release is built from the work after v1.2.5, including:
4460b0cfix: resolve Axon code review findingse8cd4d8fix: stabilize editor save navigation and LSP UX6a01ed5fix: stabilize settings modal and themed scroll surfaces22b8f82feat: migrate core and built-in extensionsd9e676efeat: add initial Axon extension API8cebccdfeat: wire extension API as workspace packageeeee1e6feat: introduce extension host service layer65b5844refactor: route extension IPC through host service05ceec5refactor: move editor app under apps8ca4a7cfeat: establish shared extension architecture9677c60refactor: introduce workbench platform layoutc169e7ffix: stabilize extension and editor chromebac2ab5refactor: stabilize extension registry and editor surfaces069c40arefactor: migrate terminal workbench and polish agent cli