ingest: parallel verification pipeline, wired and measured master
the full chunk, upstream-faithful (no unverified pass-through): - zat v0.3.15 onRawFrame hook feeds raw frames into the pipeline; workers decode ONCE (arena handed through the slot to the writer) and verify signatures in parallel, each worker owning its own DidResolver so cache misses resolve concurrently - writer emits in ticket order: archive/tail/cursor semantics remain byte-identical to the single-threaded path - workers/writer run as io.concurrent tasks, not raw std.Threads — raw threads doing io-backed I/O silently stalled (lessons #2) - pipeline stage gauges (submitted/claimed/emitted) on /metrics; they found both real bugs: a serialized resolver pinning the reorder window (44 evt/s), and the writer's redundant re-decode measured (ReleaseSafe, local simulator): 768 evt/s fully verified at 76% CPU with the serialized-resolver fix; decode-once cuts CPU to 44% at the same throughput. at every simulator rate the pipeline drains to empty with idle CPU — the local sim's per-client delivery is now the measurement ceiling, so absolute throughput validation moves to the relay node per the bench-network-boundaries norm. e2e suite green; 38/38 unit tests. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>