fix(functions): preserve cached resolution error metadata - #176
Conversation
|
@codex review. Please review code and security on the current head. This preserves the original missing-function error message/code across negative-cache hits using owned metadata and a fresh exception per caller. The fail-first native regression includes caller mutation of the earlier error. Native checks, feature-copy validation and public docs lint pass. No canonical scenario or wire-contract change. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Codex Review: Didn't find any major issues. 🎉 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
🛡️ Codex Security Review · Automatically triggeredSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
Repeated invocation of a missing function lost the resolver’s original error message and code on a cache hit. Store immutable error metadata with the cached miss and create a fresh NotFoundError for each call, so mutating an earlier exception cannot change later results. The function guide documents the retained metadata.
Validation: a native regression failed before the fix; 1,143 unit tests, Ruff, mypy, Pyright, deterministic generation, build/package smoke checks and docs lint pass. Current 21/proposed 39 canonical feature copies are unchanged and validate. Coordinates with JavaScript #139 and the matching Ruby cache fix; Hosting #1127 merges last.