Release Notes — Week of May 19-25, 2026
Five releases ship end-to-end OpenTelemetry tracing, pointer-based task attachments, a reusable scripts runtime, and promote humans to first-class users.
Highlights
Five releases (v1.80.0 → v1.83.0) in seven days turn agent-swarm production-grade. The hero this week is full-stack distributed tracing; the supporting cast is a new scripts runtime, pointer-based attachments, and a People page that finally treats humans like the users they are.
OpenTelemetry tracing across the stack
Every task, MCP tool call, and Claude Code session is now a span in a single distributed trace. TRACEPARENT propagates from worker tasks into API calls, MCP tool spans, and the spawned Claude Code subprocess — so "where did this task spend its time?" is now answerable without sprinkling timers across the codebase.
- API spans are named by Hono route template instead of the generic
http.server, with proper nesting for child requests (033890f7,12434583). - HTTP semantic conventions (
http.route,http.method,http.status_code) attached to every span (55725280). - MCP tool calls show up as named spans — no more anonymous tool entries (
75b720d4). - Implicit-close on assistant-message boundaries prevents leaked open spans (
609cf6d6). - Eight follow-up PRs (#488, #492, #496, #497, #516, #528, #531, #535) landed the polish in the same week.
Drop a TRACEPARENT into any task and follow it end-to-end in SigNoz, Jaeger, or Tempo.
Pointer-based task attachments + agent-fs integration
store-progress now accepts attachments as pointers (agent-fs path, URL, shared-fs path, or swarm Page) instead of inline blobs. Slack threads render them as live agent-fs URLs, the UI surfaces them in the task tree, and terminal tasks still accept attachments after they've completed.
- Phase 1: pointer-based attachments on
store-progress(831ce2ed). - Phase 2a: Slack tree-message render + live agent-fs URLs (
96342ddf,62a39c9e). - Late attachments allowed on already-terminal tasks — useful for audit screenshots and follow-up logs (
67622114). - Org/drive IDs auto-resolve from swarm config — no more boilerplate (
c8e634e2).
Attachments stop bloating task records. Store the pointer, render the URL, ship.
Reusable scripts runtime + 10 seeded global scripts
A new scripts runtime foundation with a Zod-first argsSchema convention exposed as argsJsonSchema. 10 built-in scripts seed into the catalog on startup, so a fresh swarm ships with ready-made utilities out of the box.
- Typed once, runnable from any agent or workflow node (
49626825,6d74b356). - Typecheck relaxed to match runtime semantics — no more false positives on runtime globals (
9b81f912). - 10 global scripts seeded at startup (
9d7e61a9).
Humans as first-class users
The People page is now a proper directory: humans live alongside agents, GitHub/Linear/AgentMail externalIds are exposed, and webhook-triggered tasks correctly inherit the requesting user.
send-taskandresolve-userinheritrequestedByUserIdand exposeexternalIds(5859616f,8b8eb862).- Sessions list can filter by active user — no SQL required (
e988b093). - GitHub webhook tasks (comment + review events) set
requestedByUserIdcorrectly (90a01bec).
Every task now traces back to the human who triggered it.
Improvements
- Codex OAuth multi-credential pool — Multiple Codex OAuth credentials can be pooled and rotated, removing single-credential rate-limit bottlenecks at scale (
7d22c44c). - API + DB performance pass — List-endpoint payloads slimmed by default with a
?fields=fullopt-in; filter-aware pagination;listRecentSessionssingle-pass;getLogsByTaskIdLIMIT clamp;refetchIntervalbumped 5s → 10s; three new indexes onagent_tasksplus SQLite PRAGMAs from the Linear-fast-UI research (9f3b63af,da94261b,d1e4a2fd,6e4928bf). - Resilient 5h cooldown on Claude rate-limit events — Runner captures
rate_limit_eventand waits out the 5h cooldown instead of crash-looping (CAI-1279,81d62260). - Bedrock authentication via AWS SDK —
pi-monodelegates Amazon Bedrock auth to the AWS SDK instead of hand-rolling credential resolution; bun-compile entry points correctly wired (4773b8c2,09e293ea). - First-party Helm chart — Self-hosted users get a Helm chart for Kubernetes deployments (
24d8a472). - tini as PID 1 in worker containers — Workers run tini as PID 1 to reap orphaned grandchildren and avoid zombie accumulation in long-running containers (
9e71e1fe). - CI guard for DB migration numbering conflicts — PRs with duplicate or out-of-order migration numbers fail CI instead of silently colliding at runtime (
4baca519). - AgentMail integration card requires
AGENTMAIL_API_KEY— The integrations UI now surfacesAGENTMAIL_API_KEYas a required field on the AgentMail card (b82fef6e).
Bug Fixes
- Docker entrypoint: split
CLAUDE_BINARYinto argv before PATH lookup — Multi-wordCLAUDE_BINARYvalues (e.g.claude --foo bar) are split into argv before the PATH lookup, fixing "command not found" on custom binaries (2e9e67da). - Workflow webhook trigger honors
hmacHeader+ resolveshmacSecretrefs — Webhook triggers read the configuredhmacHeaderand resolvehmacSecretreferences through the swarm config instead of hardcodingX-Signature(de8bcfde). - Workflow graph connects single-branch condition node edges — Conditional nodes with only one branch wired up no longer leave dangling edges in the UI graph view (
b72c34d1). - Workflows redact resolved secrets from persisted step inputs — Resolved secrets from refs like
${{ secrets.FOO }}are redacted before being persisted to step inputs, closing a credential-leak vector in the audit log (545e1ae6). - Linear: post
task.progressas action activity —task.progressupdates post as Linear action activities with the requiredactionIdparameter, fixing silent dropped updates (9d553f22). - Scripts runtime: defensive
rawArgsparsing + compiled-binary path resolution —eval-harnessparsesrawArgsdefensively and resolves the/$bunfs/path correctly in the compiled binary, fixing crashes in production builds (58924378,1bea6708,14020277). - Workflows populate script executor output on timeout/spawn-error — Script executor failures (timeout, spawn error) populate the step output so downstream nodes can branch on the failure instead of receiving null (
4def062e). - AgentMail events — Event-handling fixes (
ed22cc4d).