Outcome
The server accepts a consent-gated ATIF v1.7 trace document so openagents trace upload stops refusing. The CLI half shipped (OpenAgentsInc/openagents#14) and names this exact gap: the router has no ingest route, only GET /data/export/atif.
Contract
POST /api/v3/traces under the same bearer scope as threads; body is an ATIF v1.7 document.
- Visibility defaults to owner-only; widening is explicit and follows the transparency tiers (#205).
- Returns a trace id and URL. Bounded body size with a typed refusal over it.
- Store the digest of the uploaded document so a trace is citable and deduplicated.
- Redaction stays the client's job (the CLI ships
trace redact); the server records what it was told, not a promise it cannot check.
Notes
This is the recruitment-station surface in docs/2026-08-24-registry-network-strategy.md: traces are the public-safe projection that carries plugin usage attribution (ATIF plugin provenance shipped as OpenAgentsInc/openagents#32), so trace ingest and the registry's usage counters should read the same records.
Outcome
The server accepts a consent-gated ATIF v1.7 trace document so
openagents trace uploadstops refusing. The CLI half shipped (OpenAgentsInc/openagents#14) and names this exact gap: the router has no ingest route, onlyGET /data/export/atif.Contract
POST /api/v3/tracesunder the same bearer scope as threads; body is an ATIF v1.7 document.trace redact); the server records what it was told, not a promise it cannot check.Notes
This is the recruitment-station surface in
docs/2026-08-24-registry-network-strategy.md: traces are the public-safe projection that carries plugin usage attribution (ATIF plugin provenance shipped as OpenAgentsInc/openagents#32), so trace ingest and the registry's usage counters should read the same records.