Releases: serenorg/dispatch
Releases · serenorg/dispatch
v0.2.0
[0.2.0] - 2026-04-10
Security and hardening release.
Security
- Signing secret key files are now written with restricted permissions (0600 on Unix)
- HTTP depot tag reads are bounded to 1 MiB
- HTTP depot blob reads are bounded to 512 MiB
- HTTP depot error-body reads are bounded to 64 KiB
dispatch secret setnow supports--value-stdinto avoid exposing secrets in argv and shell history- Local tools no longer inherit
HOMEfrom the host environment - Parcels declaring
NETWORKrules are rejected until courier enforcement is implemented - Secret stdin input via
--value-stdinis capped at 1 MiB
Changed
- Replaced direct
libccalls withnixwrappers for Unix process operations; only thepre_execdetach closure retains rawlibcfor async-signal-safety - Secret store temp-file writes use unique per-process paths to prevent collisions
- Detached-run liveness checks now use process-group liveness when a distinct stored process group ID is tracked
- Signing key writes use atomic temp-file paths with per-process uniqueness
v0.1.0
[0.1.0] - 2026-04-09
First public release.
Core
Agentfileauthoring format with line-oriented, diff-friendly syntax- Content-addressed parcel builds with
manifest.jsonandparcel.lock - Parcel signing (
dispatch parcel sign) and verification (dispatch parcel verify) - Schema publication at
https://serenorg.github.io/dispatch/schemas/parcel.v1.json
Couriers
- Native: host-process model-backed execution
- Docker: sandboxed local tool execution inside containers
- WASM: component-model courier using the Dispatch WIT ABI
- Plugins: external JSONL courier protocol via subprocesses
Model Backends
- OpenAI (Responses API)
- Anthropic (Messages API)
- Gemini (generateContent)
- OpenAI-compatible (Chat Completions)
- Claude CLI (local
claudebinary using local CLI auth, config, and env) - Codex (
codex app-serverJSON-RPC with PTY transport on Unix) - Plugin backends (
dispatch-backend-<provider>) - Model fallback routing with configurable policy
- Parcel-level
MODEL,FALLBACK, andPROVIDERdirectives - Shared background reader threads for subprocess-backed backends
Runtime
- Detached runs via
dispatch run --detach --joband--heartbeat dispatch servefor long-lived service execution- Shared cross-platform subprocess layer for detached runtime helpers, tool execution, and subprocess-backed model backends
- Persisted cron schedules (
--schedule, parcelSCHEDULEdirective) - Local HTTP ingress (
--listen, parcelLISTENdirective) - Ingress controls for path filtering, method filtering, shared-secret auth, and request size limits
- Shared-secret auth with SHA-256 digest-only persistence and constant-time comparison
- Auth header redaction in forwarded payloads
- Graceful shutdown via SIGTERM and SIGINT handling
- Atomic run record persistence with platform-safe replace semantics
- Authoritative detached terminal-state snapshots for daemonless lifecycle reconciliation
- Clock-jump guard in schedule evaluation
- Run management:
dispatch ps,logs,wait,stop,restart,prune,rm,inspect-run dispatch waitdistinguishes successful exit from explicitly stopped or incomplete detached runs- Docker-style aliases:
dispatch container ls,ps,logs,wait,stop,restart,prune,rm,inspect
Secrets
- Repo-local encrypted secret store under
.dispatch/secrets/ - AES-256-GCM encrypted envelope with a base64-encoded key file
dispatch secret init,dispatch secret set,dispatch secret rm,dispatch secret ls- Secret resolution order: environment first, local store second
- Runtime integration for parcel secrets, local tools, A2A auth, and
LISTEN_SECRETshared-secret hashing
Eval
- Dataset-driven eval fanout via
--dataset <path>with repo-local TOML datasets that override inputs while keeping packaged assertions - Structured JSON trace artifacts via
--trace-dir <path>with per-case traces under<trace-dir>/evals/<parcel-digest>/ - Eval summary counts in both human-readable and JSON output
Built-in Tools
memory_put,memory_get,memory_list,memory_range(SQLite-backed)checkpoint_put,checkpoint_get,checkpoint_list- A2A remote tools with bearer, header, and basic auth
Depot
- File-backed and HTTP depot transports
dispatch pushanddispatch pullwith signature verification- Tag-based parcel references
CLI
dispatch buildto build an Agentfile into a parceldispatch runto execute a parcel with courier selectiondispatch inspectto display parcel metadatadispatch parcelcommands for eval, list, verify, keygen, and signdispatch parcel evalwith--datasetand--trace-dirdispatch secretcommands for the local encrypted storedispatch skill validateanddispatch skill rundispatch stateto inspect parcel runtime state--interactive,--session-file,--print-prompt,--list-tools, and--tool-approval