Latest release

Xagent v0.8.1

PowerPoint, Excel, Word and Planner connectors, durable receipts for Slack, Feishu and Telegram inputs, oversized tool results stored instead of truncated, a source-scoped MCP approval gate, and a data retention and purge system

๐Ÿ“… Released September 27, 2026

๐Ÿ”„ How to update

Pull the latest code
cd xagent && git pull
Pull images & restart
docker compose up -d
Or upgrade directly via pip
pip install --upgrade xagent-ai

โœ… Highlights

๐Ÿ“Š

Office connectors

PowerPoint, Excel, Word and Planner join as MCP connectors, alongside Atlassian, Miro, Fireflies, Rocketlane and Freshdesk.

๐Ÿ“จ

Durable channel receipts

Slack, Feishu and Telegram shared inputs are accepted through durable receipts, on an atomic acceptance core.

๐Ÿ—‚๏ธ

No more truncated results

Oversized tool results are stored in the workspace, with a read_tool_result tool offered once a run has stored one.

๐Ÿš€ What's New

โœ“

๐Ÿ“Š Office connector suite

Adds PowerPoint, Excel, Word and Planner MCP connectors; Excel gains structural column deletion and PowerPoint falls back to authenticated content downloads.

โœ“

๐Ÿ”— Remote MCP catalog

Adds Atlassian, Miro, Fireflies and Rocketlane remote MCP catalog rows, and brings in Freshdesk via a focused REST connector.

โœ“

๐Ÿ“จ Durable receipts for channel input

Adds an atomic channel input acceptance core; Slack, Feishu and Telegram shared inputs are accepted through durable receipts; accepted channel commands are observed with durable progress, and channel progress queues with bounded backpressure.

โœ“

๐Ÿ—‚๏ธ Oversized tool results stored, not truncated

Stores oversized tool results in the workspace instead of truncating them, adds read_tool_result and offers it once a run has stored a result, and lets the forced-answer turn read stored tool results.

โœ“

๐Ÿ” Source-scoped MCP approval gate

Adds a source-scoped MCP approval gate core and wires it into the MCP loader and host entry points.

โœ“

๐Ÿงน Retention and purge

Adds a last_activity_at anchor with a DB-authoritative eligibility predicate, purge configuration settings, and a scheduled purge job disabled by default; records what the purge expired for readers to report, and records and retries the deletions cleanup owes.

โœ“

โš™๏ธ Shared execution admission and pacing

Adds durable execution admission for shared workers, paces admitted execution starts and exposes queue observations.

โœ“

๐Ÿ’ณ Image billing boundary

Meters image generation and editing at the provider boundary and adds a billing boundary for already-charged image responses.

โœ“

๐Ÿงฉ Knowledge base rollback overhaul

Routes cloud and local ingest rollback through the coordinator, infers rollback side effects from uncompensated steps, and retires a large amount of dead rollback code.

โœ“

๐Ÿ›ก๏ธ Tighter access policy

Enforces the actor Slack channel access policy with trusted read-only runtime grants, and narrows Google OAuth scopes.

๐Ÿ›  Stability & Polish

  • Guard public_mcp_apps seed migration downgrades against operator data loss
  • Memory: block every unusable legacy user_id from staging
  • ReAct: degrade an options-less picker to text_input before publishing
  • Migrations: add a shared mcp_servers identity check for remote MCP catalog seeds
  • MCP: preserve and report OAuth reconnect state
  • Web: deliver a rebuilt agentโ€™s follow-up question on the resume path
  • Jira: stop search_issues silently dropping issues past ~14; flatten ADF bodies and surface dependencies on issue detail
  • Feishu: preserve stop obligations for unobserved replays
  • Tools: reserve the engine tool-results directory from workspace listings and writes
  • MCP: mirror the parent output-limit budget into the stdio connector env
  • Deliver partial results after execution stops
  • Deputy: add deputy_add_employee to stop orphaned Employee rows, and verify a createโ€™s record is readable before reporting success
  • MCP: stop success_with_capped_dict collapsing few-key dicts to {}, and conflict/unchecked-attendee lists collapsing to []
  • Tasks: remove the task workspace directory the deletion paths leak
  • Trace: show unavailable MCP connector calls as a status line
  • Agents: validate model tool categories and keep connectors UI-only
  • MCP: re-check size after merging Magento pagination metadata
  • Agent: abort the run and require persisted delivery on checkpoint failure
  • Preserve image input token modalities
  • Model: bound provider capacity refusals to one retry layer
  • Web: keep the retry panel honest when a superseded retryโ€™s outcome is unknown
  • Chat: clear processing state when setTaskId nulls the task
  • KB: check orphan files against their exact references, count every tenantโ€™s documents, stop web ingestion deleting files it did not create, and keep pre-existing upload rows when an ingest rolls back
  • Agent: keep the spill report out of artifact observations
  • Frontend: stop stale builder preview requests from re-attaching the chat
  • Retention: measure the purge anchor from the newest message
  • Make input injection atomic, pause uncertain runs, and harden the injection edge cases
  • Ground source inspection and default presentation choices
  • KB: isolate each cloud fileโ€™s failure and credential read; commit upload row deletes before removing file bytes
  • Refresh connector tools when tasks resume and for channel turns
  • Agent: stop a stale context cache from overwriting a newer checkpoint; recognise a retried turn after its messages were compacted
  • Settle recovered and orphaned message deliveries as outcome unknown
  • MCP: give the connection-test endpoint its own concurrency cap
  • Web: word a snapshot-gone exit off the turnโ€™s merged delivery verdict; fence pause and live resume requests on the current lease attempt; open a new turn for a fresh message whose run ended before handoff
  • Web: index pending message deliveries for the recovery sweep
  • CI: pull e2e MinIO from the Chainguard registry; shard the e2e suite and start shared hosts concurrently
  • Bump compose images to 0.8.0