Repository navigation
feat(dsig): fund scoped reference queries - #235
Conversation
Fund selection, original facts, catalogue inspection, URI resolution and replay from the supplied current execution while preserving original identity, policy, provider and terminal causes. Carry admission through parser/DOM storage, transform parameters, XPath node sets and evaluator workspaces, OPC and binary/XML canonicalization. Use published primitives 0.6.2 ownership transfers and maintain checksum-verified parser kernels with their notices and CI checks. Closes #230
|
Important Review skippedToo many files! This PR contains 108 files, which is 8 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry. ⚙️ Run configuration
📒 Files selected for processing: 108
You can disable this status message by setting the
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: db7fdf900c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
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".
[Critical impact] No outstanding findings require changes before merging.
|
Keep missing-ID and unsupported-URI diagnostics funded by current work for their full lifetime. Preserve unsupported resolution dispositions and use allocation-free malformed-fragment errors. Make exact Base64 work qualification independent of randomized multi-key hash probes without weakening its boundary assertions.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 25c66d52ed
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
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".
- Charge every Reference text node by its byte length before the mixed-content scan, so one large whitespace node costs its bytes instead of a single child. - Build replayed layout diagnostics (wrong, trailing and mixed-content elements) through the query storage; the attacker-sized element name stays charged until the error is dropped. - Regression tests drive both cases through with_query and replay_reference.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 66ff11c8f0
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
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".
- Build a transform-allowlist rejection during replay in the current query's storage (DsigError::AccountedPolicyAlgorithm), so the attacker-sized URI stays charged until the error is dropped; the timestamp method URI is charged and checked the same way. - Parse the timestamp CanonicalizationMethod through the query storage: every text node is charged by length before the whitespace scan, and element, parameter and unsupported-algorithm diagnostics are owned by the query (ParseError::AccountedUnsupportedAlgorithm). - Drop the unfunded declaration scan in subset Exclusive C14N: a selected prefix whose parent binding is unchanged can never already be declared, so the search was redundant; a debug assertion keeps the invariant checked. - Regression tests drive the allowlist rejection, the timestamp whitespace charge and the timestamp diagnostic through with_query and replay_reference. The C14N change removes work without changing output and is covered by the existing subset canonicalization tests.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 96ff717fdf
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
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".
- The evaluation-work estimate now charges its full source scan to the current execution and keeps its per-predicate stacks in that execution's storage, so nested predicates in an authenticated expression no longer grow unaccounted vectors; the string-scan count pass is charged the same way before it runs. - A unit test checks that the estimate pays for its scan and that its stacks are refused when the current account has no capacity. - The exact-work preflight test no longer looks up an element name that misses a non-empty dictionary: such a miss compares keys only on a randomly seeded tag collision, which made two runs differ by one comparison in rare CI runs.
Summary
Changes
Testing
Workspace tests (MSRV, FIPS/xmloxide, all-features with isolated SoftHSM and the xmlsec1 oracle), Clippy with warnings denied, formatting, doctests, alloc-only/thumb/WASM builds and WASM C14N execution.
Closes #230