Replace ~90 stringly Status::internal with a nuncio.v1.ErrorInfo (reason enum + metadata) attached via Status details; taxonomy maps each reason to the right canonical code. Size M. Do first (unblocks WS-F typed-error hints + WS-A error-code pass).
Part of the Roadmap-to-9/10 program (design: scratchpad/design/, ROADMAP-TO-9.md). Serial PROTO queue: only one [PROTO] story in flight at a time; WS-A is the sole .proto editor. Detailed brief written at dispatch. DoD per docs/STORY-WORKFLOW.md (engine+proto+CLI+offline mock-only E2E, no fabrication, golden regen on proto change).
Replace ~90 stringly Status::internal with a nuncio.v1.ErrorInfo (reason enum + metadata) attached via Status details; taxonomy maps each reason to the right canonical code. Size M. Do first (unblocks WS-F typed-error hints + WS-A error-code pass).
Part of the Roadmap-to-9/10 program (design: scratchpad/design/, ROADMAP-TO-9.md). Serial PROTO queue: only one [PROTO] story in flight at a time; WS-A is the sole .proto editor. Detailed brief written at dispatch. DoD per docs/STORY-WORKFLOW.md (engine+proto+CLI+offline mock-only E2E, no fabrication, golden regen on proto change).
Delivered via PR #342 (WS-A1, squash-merged to dev). Typed errors: frozen ErrorReason enum + ErrorInfo{reason,metadata,message}, prost-encoded into the grpc-status-details-bin trailer via nuncio_proto::errors::status(); reason->canonical-code mapping centralized; representative error sites (not-found/validation/not-configured) now carry typed details with the offending id as metadata, each keeping its prior canonical code (existing code()/message() assertions hold). Over-the-wire decode E2E + 4 unit tests. Golden regenerated; contract_stability passes. Sets the typed-error pattern for the contract + CLI (WS-F12). WS-A7 will do the full ~90-site code-correctness sweep (Contacts.Sync Internal->NOT_CONFIGURED etc.).
Delivered via PR #342 (WS-A1, squash-merged to dev). Typed errors: frozen ErrorReason enum + ErrorInfo{reason,metadata,message}, prost-encoded into the grpc-status-details-bin trailer via nuncio_proto::errors::status(); reason->canonical-code mapping centralized; representative error sites (not-found/validation/not-configured) now carry typed details with the offending id as metadata, each keeping its prior canonical code (existing code()/message() assertions hold). Over-the-wire decode E2E + 4 unit tests. Golden regenerated; contract_stability passes. Sets the typed-error pattern for the contract + CLI (WS-F12). WS-A7 will do the full ~90-site code-correctness sweep (Contacts.Sync Internal->NOT_CONFIGURED etc.).
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.
Replace ~90 stringly Status::internal with a nuncio.v1.ErrorInfo (reason enum + metadata) attached via Status details; taxonomy maps each reason to the right canonical code. Size M. Do first (unblocks WS-F typed-error hints + WS-A error-code pass).
Part of the Roadmap-to-9/10 program (design: scratchpad/design/, ROADMAP-TO-9.md). Serial PROTO queue: only one [PROTO] story in flight at a time; WS-A is the sole .proto editor. Detailed brief written at dispatch. DoD per docs/STORY-WORKFLOW.md (engine+proto+CLI+offline mock-only E2E, no fabrication, golden regen on proto change).
Delivered via PR #342 (WS-A1, squash-merged to dev). Typed errors: frozen ErrorReason enum + ErrorInfo{reason,metadata,message}, prost-encoded into the grpc-status-details-bin trailer via nuncio_proto::errors::status(); reason->canonical-code mapping centralized; representative error sites (not-found/validation/not-configured) now carry typed details with the offending id as metadata, each keeping its prior canonical code (existing code()/message() assertions hold). Over-the-wire decode E2E + 4 unit tests. Golden regenerated; contract_stability passes. Sets the typed-error pattern for the contract + CLI (WS-F12). WS-A7 will do the full ~90-site code-correctness sweep (Contacts.Sync Internal->NOT_CONFIGURED etc.).