A Rust reimplementation of the Tangled knotserver.

observability: Convert ingest subsystem to tracing master

Dispatcher::apply gets a #[tracing::instrument] span — one span per firehose event, the wide event for "what happened with this record." Fields: nsid, author_did, rkey, operation, time_us at creation; outcome, skip_reason, repo_did, subject_did filled in via Span::current().record() as the handler discovers them. Handlers (publicKey, repo, repo.collaborator) replace their eprintln skip-logs with tracing::warn! events tied to the dispatcher span, plus span.record("skip_reason", ...) for the wide-event field. Now querying "show me all rejected non-owner collaborator records" becomes one structured filter instead of a string-search across log lines. Subscriber's connect / disconnect / malformed-frame eprintlns become warn!/error! events. Infra failures from dispatcher.apply() log at error! level since they signal "something is broken," distinct from per-event policy skips which are info!/warn! inside the handler span.


Author Isaac Corbrey Date Commit 0d2f9983 Parent 88c47634 Change ID xymzqquq