Latest release

Xagent v0.8.3

Automatic resume for interrupted tasks, a broad round of security hardening, Bedrock configuration in the UI, deadline-based stream limits across providers, and chat that reconnects on its own

๐Ÿ“… Released October 18, 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

๐Ÿ”„

Automatic resume

Tasks interrupted by crashes, lease expiry, or model and infrastructure failures are rescheduled automatically, including channel and SDK tasks.

๐Ÿ”

Security hardening

OAuth tokens encrypted at rest, credentials moved out of URLs, outbound requests confined to public networks, and new security headers.

๐Ÿ’ฌ

Self-healing chat

The chat shows a reconnecting state, keeps reconnecting across backend restarts, and resends an unacknowledged message.

๐Ÿš€ What's New

โœ“

๐Ÿ”„ Automatic resume

Tasks interrupted by the system (crashes, lease expiry, shutdown cancellation and more) are scheduled to resume automatically; resumes are guarded at claim time and confirmed or closed once dispatched, and close automatically when the switch is off or a resume rolls back; infrastructure failures pause by default and invalid model output is resampled.

โœ“

๐Ÿ‘€ Visible, cancellable resumes

Task viewers see automatic resume progress and task reads expose resume state; a new hook cancels a pending resume, and /stop in a channel does the same.

โœ“

๐Ÿงฉ SDK and channel resumes

SDK tasks resume automatically after a lease expiry; SDK settlement failures pause for automatic resume and are reported as failed only once it stops; shared channel replies are held across auto-resume.

โœ“

๐Ÿ” Accounts and credentials

Stored OAuth tokens are encrypted; authentication and sessions are hardened, prior credentials are revoked on password change, recovery and IP-rotating login attempts are limited, and new recovery emails must be confirmed; python-jose is replaced with patched PyJWT validation; OAuth login uses single-use launch tickets, and WebSocket login credentials and password reset tokens move out of URLs; encryption keys are validated before production startup.

โœ“

๐Ÿ›ก๏ธ Network and page security

Web security headers and safe uploads; generated HTML previews isolated from the app origin; crawlers, generic API requests, provider media downloads and browser targets confined to public networks; unsafe SQL database targets rejected; unauthenticated legacy file paths closed; Next.js upgraded to a patched 15.5 release.

โœ“

โ˜๏ธ Bedrock in the UI

Bedrock provider settings persist and Bedrock models can be configured in the UI; Bedrock reasoning is preserved across tool calls.

โœ“

โฑ๏ธ Deadline-based stream limits

First-token and interval limits for OpenAI-compatible, Claude, Gemini, Zhipu and Bedrock streams are enforced as deadlines; tool-call fragments survive mixed streaming deltas; forced tool choice support and reasoning model connection budgets are respected.

โœ“

๐Ÿ’ฌ Self-healing chat

A reconnecting state while the connection is lost; dead WebSocket connections are detected and reconnected, including across backend restarts; an unacknowledged message is resent once after reconnecting; the session chat composer gains a stop control; send failures are worded by what happened to the message.

โœ“

โš™๏ธ Dispatch and capacity

New execution commands route through a single classifier; dispatcher-claimed executions are capped per process, tasks a capped process will not run are released, and cancels and pauses can overtake a full dispatch cap; waiting replies are claimed first; every execution process logs one runtime diagnostics line per minute.

โœ“

๐Ÿ”Œ Connector upgrades

SharePoint gains a move-item tool; Word edits support page breaks; Planner lists the signed-in user's plans and discovers joined teams before creating one; Xero returns complete overdue invoices, ageing data, payment dates and invoice history; Google Drive issues a Picker config for delegated connections; the account identifier is collected before built-in OAuth; Zendesk moves to per-account OAuth and the remote Atlassian connector connects.

โœ“

๐Ÿ—„๏ธ Knowledge base

Leftover and orphan Milvus rows are purged on a schedule; the Milvus analyzer lowercases text while keeping full-width, kana and Hangul; old chunks are retired by content identity at commit.

๐Ÿ›  Stability & Polish

  • Monitor: reuse loaded LLM starts for active model counts
  • Web: return one settlement report from the pause-capable settlement paths
  • Tools: register files written by execute_command
  • Persist long provider model names
  • Deploy: share one storage root across sandbox.docker services
  • Sandbox: import BoxliteStore only when boxlite is installed
  • Knowledge base: match untagged main pointers and fix list_main_pointers, and keep other owners' main pointers on tenant-scoped deletes
  • Knowledge base: invalidate the LanceDB table cache after scoped cascade deletes, read admin collection list counts from the engine, and drop the dead min_score from knowledge_search
  • Agent: replay durable settlements exactly and wire exact settlement consumers in the frontend
  • Planner: return browser-safe plan URLs
  • Excel: address SharePoint workbooks by drive and surface safe workbook access errors
  • OneDrive: explain a locked item when a move is refused with HTTP 423; Microsoft: handle locked Office documents safely
  • SharePoint: keep binary files out of model context
  • Tools: keep tool listing usable when usage statistics fail
  • Builder: load each catalog list independently with its own status
  • Web: mark a rejected external stop with a client error code
  • Interactions: prepare clarification publication components and block native publication outside shared task execution; skip the v1 reply interaction close on a replayed injection
  • MCP: log the cause and HTTP status of a load failure, and stop retrying a load the server rejected with 401/403
  • MCP: preserve and validate nested tool schemas, restrict connection test execution, and acknowledge the durable dispatch boundary
  • React: keep paginated MCP reads from ending early
  • Serialize OpenAI image usage before tool results
  • A2A: accept a cancelled execution's finalizer that settles mid-cancel
  • Frontend: add the missing built-in OAuth provider display names and show the needs_reconnect state for built-in OAuth connections
  • Frontend: render interrupted trace processes as stopped instead of running
  • Workforce: allow attachments on the first run message
  • Reject inconsistent Rocketlane project results
  • Database: add a partial index on claimable task commands by id, and count the commands the dispatcher could claim
  • Xero: preserve company names in ageing exports and return complete paid invoice lists
  • OAuth: make ordinary state consumption durable across workers and encode popup data for inline scripts
  • Tasks: hold auto-resume of legacy runs stopped inside a tool call, and hand shutdown-cancelled runs to lease recovery behind a switch
  • Patch spreadsheet and math rendering dependencies
  • Escape file chip markup and enforce browser policy baselines (CASA #14)
  • Router: select the Auto model's embedding backend from the environment, and bump xrouter-llm to 0.3.6
  • Tests: a batch of stability fixes and cheaper web test fixtures, plus end-to-end coverage of automatic resume after a crash, provider outage, invalid model output, database outage and for SDK tasks
  • Bump compose images to 0.8.2