Conversation
2626cdd to
26a59fa
Compare
3d5b543 to
2a41c23
Compare
20d78fa to
532805a
Compare
1d90381 to
8c1dc54
Compare
3a8ea63 to
b68d766
Compare
208decb to
62f5047
Compare
5a8d771 to
ddbd2e2
Compare
3fc4294 to
8575f1b
Compare
46e80e7 to
438d7bd
Compare
60f43d3 to
90b78c5
Compare
fe3034f to
68d4fbd
Compare
9762bf2 to
c275560
Compare
|
PR-cycle state — maintained automatically. Do not edit. {
"approval": {
"approved_revision_fingerprint": "sha256:d7a8ca6fb99451ef042bf4094699a7067e74a0663848fcd0c44a1af59807ebde",
"evidence": {
"delivery_deferral_ledger_digest": "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
"required_checks": [
[
"Linux CI checks",
"success"
],
[
"Target smoke (darwin-amd64)",
"success"
],
[
"Target smoke (darwin-arm64)",
"success"
],
[
"Target smoke (linux-amd64)",
"success"
],
[
"Target smoke (linux-arm64)",
"success"
],
[
"Windows host smoke (windows-amd64)",
"success"
],
[
"Windows host smoke (windows-arm64)",
"success"
]
],
"review_request": {
"body_digest": "sha256:84b8dff8f036f7ad76ef94edcb8d31ad42a9a215594b3f11d9e086df2e77e725",
"id": 5328395368
},
"review_result": {
"body_digest": "sha256:baca04ea444f0b30cb149427ea758c1c99806cd9774b909e44825181add2a85b",
"id": 5328444278
},
"revision_fingerprint": "sha256:d7a8ca6fb99451ef042bf4094699a7067e74a0663848fcd0c44a1af59807ebde",
"thread_dispositions": {
"resolved": 1,
"total": 1
}
},
"evidence_fingerprint": "sha256:a3c9f2d35abbf6521d4fab0cc206b04e56a3f89af4c3f5b9a270f414af641838",
"rounds": 2
},
"checks": {
"conclusion": "success",
"count": 7
},
"delivery_deferrals": [],
"findings": [
{
"classification": "current-slice defect",
"disposition": "fixed in 42c6f5fa01b9; also applied to validateAbsoluteRecordPathV1, which had the same gap and was not flagged",
"id": "reject-backslashes-in-record-paths",
"location": "internal/toolcatalog/records_decode.go:593",
"named_invariant": "portable record paths must match their consumer's rule in providerstore.ArtifactDescriptor.Validate, which forbids backslashes",
"note": "the preflight design-to-code audit did not catch this: the inconsistency is between a validator and its Go consumer, not between code and design",
"severity": "P2"
}
],
"preflight_audit": "design decoding rules diffed against implementation before review: reject invalid UTF-8, duplicate member names, and schema-unrepresentable values before semantic decoding, plus lowercase-hex rejection in version segments \u2014 all implemented; aggregate byte, record-count, and graph-depth limits belong to PTD-07 and closure contributions to PTD-09 per the plan",
"pull_request": {
"base": {
"ref": "pr89",
"sha": "97ae8d8f7daf852c5ba5f1406bad93d12e00de39"
},
"head": {
"ref": "pr90",
"sha": "42c6f5fa01b9"
},
"number": 90,
"repository": "github.com/omry/reploy"
},
"review": {
"request": "@codex, regular review 42c6f5fa01b9",
"result": "Codex Review \u2014 no issues on 42c6f5fa01"
},
"revision_fingerprint": "sha256:d7a8ca6fb99451ef042bf4094699a7067e74a0663848fcd0c44a1af59807ebde",
"rounds": [
{
"attempt": 1,
"finding": "backslashes accepted in record paths",
"resulting_head": "42c6f5fa01b9",
"reviewed_head": "7e823b69d2fe"
},
{
"attempt": 2,
"finding": "none \u2014 clean",
"resulting_head": "42c6f5fa01b9",
"reviewed_head": "42c6f5fa01b9"
}
],
"scope_authority": {
"docs/PORTABLE_TOOL_DEFINITION_DESIGN.md": "sha256:4c8fa535721baf22f67486a46b0b4a04eb7054713d0a892e2d6f9667bba914b6",
"docs/PORTABLE_TOOL_DEFINITION_IMPLEMENTATION_PLAN.md": "sha256:971113afcedea93da5df3fab42433a1e5f9fea62554f02a3f630e306b9455f00"
},
"version": 2
} |
|
You have reached your Codex usage limits for security reviews. Please try again later. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7e823b69d2
ℹ️ 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".
Add schema dispatch and bounded exact JSON decoding for every v1 record family, rejecting duplicate members, unknown and case-variant fields, missing required fields, JSON numbers and nulls, invalid UTF-8, unpaired surrogates, trailing tokens, and payloads past the file, depth, member, and string limits. Add the canonical value rules the model depends on: record IDs and references, positive decimals, relative and absolute record paths, credential-free HTTPS source URLs, reversible percent-encoded tool version segments, and bounded sorted unique collections. Decoding stays free of record business rules, cross-record validation, graph traversal, and network access. Record-local validation and external-evidence validation are wired into decoding by the slices that own them, so decodeRecordV1 and decodeValidationEvidenceV1 do not call them here. Delivers PTD-03 of docs/PORTABLE_TOOL_DEFINITION_IMPLEMENTATION_PLAN.md.
|
Codex Review: Didn't find any major issues. Keep it up! 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". |
Add schema dispatch and bounded exact JSON decoding for every v1 record family, rejecting duplicate members, unknown and case-variant fields, missing required fields, JSON numbers and nulls, invalid UTF-8, unpaired surrogates, trailing tokens, and payloads past the file, depth, member, and string limits.
Add the canonical value rules the model depends on: record IDs and references, positive decimals, relative and absolute record paths, credential-free HTTPS source URLs, reversible percent-encoded tool version segments, and bounded sorted unique collections.
Scope authority
Task: PTD-03 — Add Bounded Strict Portable Record Decoding, defined in docs/PORTABLE_TOOL_DEFINITION_IMPLEMENTATION_PLAN.md (PR #86 in this stack), under the normative Portable Tool Definition Design.
Acceptance criteria:
Sequencing note
In the parked source,
decodeRecordV1called record-local validation anddecodeValidationEvidenceV1called evidence validation. Those validators are owned by PTD-04 and PTD-06, and this slice's non-goals exclude record business rules, so decoding does not call them here — the slices that own those validators wire them in. One assertion in the evidence decode test depends on that wiring and moves with it, as does the reference-collection limit test that exercised it through record validation; this slice covers the same bound directly againstvalidateReferenceListV1.Exclusions: record business rules, cross-record validation, graph traversal, resolution. Source: parked extraction source
b39985d247e5.