Skip to content

Changelog

1.1

Changes since 1.0 (2026-09-15), grouped by module.

Extension System (New)

  • Source files under $XUN_HOME/extensions/ were loaded automatically whenever an agent was initialized, in both the package form {name}/setup_extension.py and the flat form {name}.py; the entry point setup_extension(ctx) received an ExtensionContext.
  • Import and initialization failures only warned instead of blocking startup; the feature could be switched off with the enable_extensions config field.
  • Added the display-layer hooks before_display_info / before_display_warning / before_display_error, which could intercept agent output; added the /extensions command and in-repo examples.

Core and Tools

  • Session compaction became tiered: stale tool results were reclaimed first, summarization only ran when the limit was still exceeded, and further rounds could follow after summarization; summary text was no longer mixed into info messages.
  • Cancellation events became chained, so cancelling a parent agent cascaded to its sub-agents; the web frontend also honoured cancellation while waiting for input.
  • Lifecycle state moved into agent_state.py; display methods were extracted into AgentDisplayMixin and brought under type-state constraints.
  • Sub-agent getter parameters became the dataclass AgentGetterParam.
  • The shell tool was renamed to bash; overwriting an existing destination with copy required confirmation.
  • get_choice / get_confirm returned ChoiceOutcome (the chosen value plus its origin); auto-confirmation no longer wrote to the command and path allow-lists.
  • Fixed tool-call parameters drifting out of sync with history after being repaired by JSON fixing.

Configuration and Prompts

  • auto_confirm gained support for the XUN_AUTO_CONFIRM environment variable.
  • The system prompt required reading and following AGENTS.md in the working directory first.

Web Service and Frontend

  • File browsing gained PDF and fullscreen preview, syntax highlighting in the text preview, and inline editing; the list and the details moved to separate panes for faster scanning, and panels became mutually exclusive on narrow screens.
  • Uploads accepted whole directories; the result notification listed every file and dismissed itself automatically.
  • Added static directory serving at /srv/, exposing sites in the working directory directly (valid for 1 hour by default).
  • Event-list loading and transfer were optimized; pending input was kept across sessions; UI strings became bilingual (Chinese/English).

Containers and Multi-user

  • Container startup copied the host xun home into /.xun, taking only config.json and extensions.
  • xunc --env / xunx serve --env accepted NAME=VALUE assignments and wildcard forwarding of host variables.
  • xunx containers became persistent: serve re-adopted existing containers and kept their sessions after a restart, and containers of deleted users were cleaned up during reconciliation.
  • Added xunx upgrade; a running serve rebuilt containers at the next reconciliation.

Documentation

  • Added bilingual Chinese/English documentation (MkDocs), served by the web service at /docs with no login required.

1.0 — 2026-09-15

First official release: the execution loop with structured output, functions-as-tools with 8 built-in tool groups, display layers (console / web / null) and the web frontend, sub-agent generation and session compaction, session commands and policy confirmation, the xun / xuns / xunc entry points, and the xunx multi-user sharing service.