Skip to content

v1.3.4

Latest

Choose a tag to compare

@github-actions github-actions released this 09 Aug 20:35

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-host process 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 through pyvenv.cfg are 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

  • 209d5de through e5fcba6 protect terminals, bind workspace ownership, add
    latency diagnostics, isolate the PTY host, and secure its control channel.
  • 5c29d44 and f041b94 add cancellable, project-aware workspace search.
  • c1cfcac, 8b6b3df, and 517af11 stabilize language-tool extraction and
    activation.
  • d193145, 03c6016, 3f4d880, and 0c8c4f0 complete Python environment
    discovery, selection, import resolution, and nested-workspace handling.
  • fd730b9, efcc9e3, and c19380a improve large-document performance and add
    the Axon Buffer Engine.
  • 4507417 keeps explorer and Git state current during external writes.
  • 0e810fe, b636689, and 3903a2e complete Markdown rendering and terminal
    scrollback repainting.
  • fa7c721 restores MDX preview and multi-window command-line workflows.
  • 34457a9, 8868d8d, and 607c527 organize the editor, soften dark borders,
    and make startup theme aware.