* docs(llm): explicit Upstream attribution line LICENSE-attested or repo-attested upstream is now called out at the top of LLM.md alongside the project description, so downstream audits (universe/docs/PRODUCTS.md) can rely on a single canonical location for the OSS lineage statement. * build(tasks): GOEXPERIMENT=jsonv2 in Dockerfile per SCALE_STANDARD Per SCALE_STANDARD.md §2 — every Go production Dockerfile that emits JSON to a client builds with GOEXPERIMENT=jsonv2. Verified on hanzoai/zip's json_bench_test.go: - Edge POST roundtrip: -12% time, -23% allocs - Marshal-only: -22% time - Unmarshal-only: -19% time, -25% allocs The conn-memory regression test is deferred to a follow-up that migrates tasksd's net/http listener to zip per §9 step-1; net/http has a fixed 3-goroutine-per-request overhead that violates §3's 1:1 goroutine-to-conn invariant.
Introduction
Hanzo Tasks is a durable execution engine that powers AI agent orchestration in the Hanzo ecosystem. It enables developers to build scalable, fault-tolerant workflows that automatically handle intermittent failures and retry failed operations.
Tasks provides the backbone for:
- Playground spaces -- each space maps to a Tasks namespace
- Agent execution -- each agent runs as a Tasks worker
- Durable cron and batch jobs -- reliable scheduled and bulk operations
MIT licensed. See LICENSE.
Getting Started
Build
make tasksd
Run
./tasksd start
Or with a config file:
./tasksd --config-file config/development-sqlite.yaml --allow-no-auth start
Build from source
go build ./cmd/tasksd/
./tasksd start
Module
github.com/hanzoai/tasks
Integration
Hanzo Tasks integrates with the broader Hanzo ecosystem:
- Playground connects to the Tasks server via the durable-execution SDK
- Base embeds Tasks for durable cron/batch execution
- Each playground space = a Tasks namespace
- Each agent = a Tasks worker
Repository
This repository contains the source code of the Hanzo Tasks server.
The wire is luxfi/zap (binary, native, on _tasks._tcp:9999).
There is no gRPC and no go.temporal.io anywhere in the build.
To drive Tasks from Go, depend on pkg/sdk — the native
ZAP client. To embed the server in a Go process (e.g. a Hanzo Base
app), depend on pkg/tasks and call tasks.Embed().
Browser clients hit the JSON shim at /v1/tasks/* and the realtime
stream at /v1/tasks/events (Server-Sent Events). AI agents hit the
MCP surface at /v1/tasks/mcp (JSON-RPC 2.0).
Contributing
See CONTRIBUTING.md for development setup and guidelines.