Skip to content

Axon v1.2.7

Choose a tag to compare

@GordenArcher GordenArcher released this 06 Jul 02:58
· 99 commits to main since this release

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.md to 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/platform so 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-owned lib folders.
  • 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 in services/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.plus and
    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,
    avoiding npm.cmd spawn 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

  • f6f3333 fix: run package builds through npm execpath
  • c47d7a1 feat: wire built-in extension activation
  • 7c02f43 fix: protect terminal streams from renderer lag
  • b57fffa refactor: split terminal session manager
  • 06730df refactor: move agent workbench into builtin extension
  • b7629bd refactor: split agent and terminal workbench boundaries
  • 770c23d refactor: move built-in workbench features into extensions
  • 8450a62 feat: add extension runtime diagnostics and lsp service boundary
  • 29486d1 refactor: route built-in workbench surfaces through contributions
  • 6439362 refactor: move terminal io into platform service layer
  • 94febc3 fix: restore dev startup and quiet workspace open
  • 7c2ae85 feat: add executable extension command runtime
  • ae92d6c feat: mount extension view contributions in workbench
  • b3e2e4e fix: restore modal layout and git media previews
  • d554b4c feat: upgrade test explorer workbench
  • 242e477 feat: harden testing workbench and react editor languages
  • 61ac921 feat: route built-ins through workbench contributions
  • 7e923a3 fix: improve markdown preview anchors and quotes
  • 261df54 fix: prevent stale git watcher refreshes
  • a909ea7 refactor: move preview and git workbench boundaries
  • 6460abf refactor: finish built-in workbench migration
  • eab7258 docs: document built-in extension registry
  • cd2ac2c feat: add extension host lifecycle runtime
  • aee9041 feat: strengthen problems and test panels
  • b38af8f feat: move problems into editor tabs
  • 14f4a60 fix: stabilize terminal output replay
  • fb89623 fix: declare editor react runtime
  • de25e57 perf: unblock workspace open services
  • 531a935 fix: warm lsp and improve react token colors
  • 7f23eed feat: add capture based token inspection
  • 0140173 feat: wire semantic syntax highlighting
  • bed3a1d fix: keep terminal output painting during agent streams
  • 2a7505b fix: harden terminal repaint diagnostics
  • 4aa358d fix: enrich semantic syntax coloring
  • 7edc732 fix: paint textmate syntax before lsp overlay
  • d9849e6 fix: apply rich syntax theme pipeline
  • f5d4dc1 fix: harden rich syntax coloring pipeline
  • fba2ff5 docs: expand token coloring architecture notes
  • d3274a7 fix: keep markdown preview tabs live