1f7fd476ec
Folded into #408 from the same review. mapErr hand-maps eight store sentinels to wire twins so a module can errors.Is without importing internal/store. The design is right; the failure mode is silent. Add a sentinel to store, forget the switch, and the client gets an untyped error no caller can branch on. Three tests. The pairs, asserted through a wrap because every real caller wraps. An unrecognised error, asserted to pass through untouched. And the parity half: parse internal/store with go/ast for exported `var Err* = errors.New(...)` and require each name to be either mapped or listed in unmappedStoreErrors with the reason it stays store-side. Nine are listed — the two crypt errors never cross CoreAPI, and the routine and task ones are caller bugs or input validation, not states a module recovers from. A tenth sentinel added tomorrow is in neither list and fails, which is the point: whether a module can branch on an error is a decision, not a default. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>