Tonic/tower layer: root span per RPC (request_id+method), log terminal Status, propagate id into spawned sync/outbox; log BearerAuthInterceptor accept AND reject (never token). After OBS-1. Part of the Observability-to-9/10 program. Full brief: scratchpad/design/OBS-ROADMAP.md. DoD per docs/STORY-WORKFLOW.md; gate green; no unwrap/expect/panic in non-test; SSH-signed; PR to dev.
Tonic/tower layer: root span per RPC (request_id+method), log terminal Status, propagate id into spawned sync/outbox; log BearerAuthInterceptor accept AND reject (never token). After OBS-1. Part of the Observability-to-9/10 program. Full brief: scratchpad/design/OBS-ROADMAP.md. DoD per docs/STORY-WORKFLOW.md; gate green; no unwrap/expect/panic in non-test; SSH-signed; PR to dev.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Tonic/tower layer: root span per RPC (request_id+method), log terminal Status, propagate id into spawned sync/outbox; log BearerAuthInterceptor accept AND reject (never token). After OBS-1. Part of the Observability-to-9/10 program. Full brief: scratchpad/design/OBS-ROADMAP.md. DoD per docs/STORY-WORKFLOW.md; gate green; no unwrap/expect/panic in non-test; SSH-signed; PR to dev.
Delivered via PR #371 (OBS-2). RpcTraceLayer (tower) mounted first on Server::builder ahead of WS-D8 limits: per-RPC span with request_id (-), logs open + terminal grpc-status + elapsed; request_id propagated into Mail.Sync->SyncDispatcher via Span::current()+.instrument(). BearerAuthInterceptor logs ACCEPT(debug)/REJECT(warn) with peer only, never token; ct_eq intact. Secret-safety grep clean; 7 tests. Follow-up gaps (noted): coalesced-sync uses owner request_id; transport-timeout logged via drop path; detached scheduled/outbox tasks not yet correlated.