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.pyand the flat form{name}.py; the entry pointsetup_extension(ctx)received anExtensionContext. - Import and initialization failures only warned instead of blocking startup; the feature could be switched off with the
enable_extensionsconfig field. - Added the display-layer hooks
before_display_info/before_display_warning/before_display_error, which could intercept agent output; added the/extensionscommand 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 intoAgentDisplayMixinand brought under type-state constraints. - Sub-agent getter parameters became the dataclass
AgentGetterParam. - The
shelltool was renamed tobash; overwriting an existing destination withcopyrequired confirmation. get_choice/get_confirmreturnedChoiceOutcome(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_confirmgained support for theXUN_AUTO_CONFIRMenvironment variable.- The system prompt required reading and following
AGENTS.mdin 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 onlyconfig.jsonandextensions. xunc --env/xunx serve --envacceptedNAME=VALUEassignments and wildcard forwarding of host variables.xunxcontainers became persistent:servere-adopted existing containers and kept their sessions after a restart, and containers of deleted users were cleaned up during reconciliation.- Added
xunx upgrade; a runningserverebuilt containers at the next reconciliation.
Documentation¶
- Added bilingual Chinese/English documentation (MkDocs), served by the web service at
/docswith 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.