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
cd xagent && git pull
docker compose up -d
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