feat(proto): typed errors (ErrorInfo/ErrorReason) via Status details #342

Merged
KofTwentyTwo merged 2 commits from story/ws-a1-typed-errors into dev 2026-07-31 19:12:45 +00:00
2 Commits
Author SHA1 Message Date
James Maes b1538b2cb4 feat(nunciod): return typed ErrorInfo details from error sites
Convert a representative set of daemon gRPC error returns to carry a typed
ErrorInfo in the status-details trailer via the nuncio-proto errors helper:
account/message/event/contact/rule not-found (with the offending id as
metadata), NSQL validation failures, and the calendar not-configured
precondition. Canonical status codes are unchanged, so existing error-path
assertions still hold. Add an offline over-the-wire E2E test that decodes the
reason and metadata from a returned Status against the real daemon server.

Refs #273
2026-07-31 14:09:51 -05:00
James Maes 8cefa903f9 feat(proto): add typed error taxonomy and Status helper
Introduce a frozen, machine-readable error taxonomy for the nuncio.v1
contract: an ErrorReason enum and an ErrorInfo message carrying a reason,
optional metadata, and a human message. A nuncio-proto errors helper builds
a tonic::Status that encodes ErrorInfo into the grpc-status-details-bin
trailer with the canonical gRPC code per reason, and decodes the reason back
on the client side. Regenerate the committed descriptor golden.

Refs #273
2026-07-31 14:08:58 -05:00