Repository navigation
Share platform and package security reporting with per-release Node CVEs - #39
Conversation
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. |
|
The account paying for this security review has reached its Codex usage limits. The payer can check the Codex usage dashboard. For personal accounts, using credits requires enabling “Use credits for security reviews” in Code review settings. If you do not manage the paying account, contact this repository's admins. |
|
PR-cycle state — maintained automatically. Do not edit by hand. Mechanical PR-cycle state (JSON){
"approval": {
"candidate_revision_fingerprint": "sha256:7adcbd5577dfb3807640290e8c9d9bcdb61aca86469eb7b57077313b7058f996",
"evidence": {
"attestations": [],
"candidate_revision_fingerprint": "sha256:7adcbd5577dfb3807640290e8c9d9bcdb61aca86469eb7b57077313b7058f996",
"check_conclusions": [
{
"conclusion": "SUCCESS",
"name": "test",
"run_id": 119764433878
},
{
"conclusion": "SUCCESS",
"name": "toolchain (22, npm, 11.9.0)",
"run_id": 119764433465
},
{
"conclusion": "SUCCESS",
"name": "toolchain (22, pnpm, 11.20.0)",
"run_id": 119764433982
},
{
"conclusion": "SUCCESS",
"name": "toolchain (22, pnpm, 11.21.0)",
"run_id": 119764433921
},
{
"conclusion": "SUCCESS",
"name": "toolchain (24, npm, 11.9.0)",
"run_id": 119764434006
},
{
"conclusion": "SUCCESS",
"name": "toolchain (24, pnpm, 11.20.0)",
"run_id": 119764433910
},
{
"conclusion": "SUCCESS",
"name": "toolchain (24, pnpm, 11.21.0)",
"run_id": 119764433832
}
],
"delivery_deferral_ledger_digest": "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
"finding_dispositions_digest": "sha256:1feec8fd63736fb0c52a2d4f993f85c52527f155f8121f906ab65c7b1b02ddd6",
"operation_identity": "sha256:69d85d8a6ea0b626372845dc0dfb80ad857b07807ca760b095ae438c31fd439e",
"review_request": {
"body_digest": "sha256:21a7af85ab721b8f817b2b065defd4a9b4f4f8788d5f3527304e88051584635c",
"id": 6338247634
},
"review_result": {
"body_digest": "sha256:690b487e09627ac0e36bcf8d32257eabd2a281baa0347a69edd6fb39c0263035",
"id": 6338308917
}
},
"evidence_fingerprint": "sha256:8a1e6a329da5643e11dba00ee7d3315b8f528df9884c8747bff22e7acd7b71e3",
"head_sha": "98b026d6893dd96e91d03067a8bdc808c4b2cc2c",
"operation_identity": "sha256:69d85d8a6ea0b626372845dc0dfb80ad857b07807ca760b095ae438c31fd439e",
"review_request_id": 6338247634,
"review_result_id": 6338308917,
"status": "approved-evidence-recorded"
},
"candidate_revision_fingerprint": "sha256:7adcbd5577dfb3807640290e8c9d9bcdb61aca86469eb7b57077313b7058f996",
"check_conclusions": [
{
"conclusion": "SUCCESS",
"name": "test",
"run_id": 119764433878
},
{
"conclusion": "SUCCESS",
"name": "toolchain (22, npm, 11.9.0)",
"run_id": 119764433465
},
{
"conclusion": "SUCCESS",
"name": "toolchain (22, pnpm, 11.20.0)",
"run_id": 119764433982
},
{
"conclusion": "SUCCESS",
"name": "toolchain (22, pnpm, 11.21.0)",
"run_id": 119764433921
},
{
"conclusion": "SUCCESS",
"name": "toolchain (24, npm, 11.9.0)",
"run_id": 119764434006
},
{
"conclusion": "SUCCESS",
"name": "toolchain (24, pnpm, 11.20.0)",
"run_id": 119764433910
},
{
"conclusion": "SUCCESS",
"name": "toolchain (24, pnpm, 11.21.0)",
"run_id": 119764433832
}
],
"check_observations": [
{
"checks": [
{
"conclusion": "SUCCESS",
"name": "test",
"run_id": 119757322329,
"run_status": "completed",
"status": "success",
"url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/39758748788/job/119757322329"
},
{
"conclusion": "SUCCESS",
"name": "toolchain (22, npm, 11.9.0)",
"run_id": 119757322466,
"run_status": "completed",
"status": "success",
"url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/39758748788/job/119757322466"
},
{
"conclusion": "SUCCESS",
"name": "toolchain (22, pnpm, 11.20.0)",
"run_id": 119757322570,
"run_status": "completed",
"status": "success",
"url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/39758748788/job/119757322570"
},
{
"conclusion": "SUCCESS",
"name": "toolchain (22, pnpm, 11.21.0)",
"run_id": 119757322674,
"run_status": "completed",
"status": "success",
"url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/39758748788/job/119757322674"
},
{
"conclusion": "SUCCESS",
"name": "toolchain (24, npm, 11.9.0)",
"run_id": 119757322743,
"run_status": "completed",
"status": "success",
"url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/39758748788/job/119757322743"
},
{
"conclusion": "SUCCESS",
"name": "toolchain (24, pnpm, 11.20.0)",
"run_id": 119757322520,
"run_status": "completed",
"status": "success",
"url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/39758748788/job/119757322520"
},
{
"conclusion": "SUCCESS",
"name": "toolchain (24, pnpm, 11.21.0)",
"run_id": 119757322427,
"run_status": "completed",
"status": "success",
"url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/39758748788/job/119757322427"
}
],
"head_sha": "9e59bde57e2230d484a1b38bf5ed975980078c1b",
"id": "sha256:663680c9b709bd193bc12225ce9d1bc566f8c9abd5e4dcfa4f6af5b3e2e7f649",
"required_checks": [
"test",
"toolchain (22, npm, 11.9.0)",
"toolchain (22, pnpm, 11.20.0)",
"toolchain (22, pnpm, 11.21.0)",
"toolchain (24, npm, 11.9.0)",
"toolchain (24, pnpm, 11.20.0)",
"toolchain (24, pnpm, 11.21.0)"
],
"status": "success"
},
{
"checks": [
{
"conclusion": "SUCCESS",
"name": "test",
"run_id": 119764433878,
"run_status": "completed",
"status": "success",
"url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/39760876568/job/119764433878"
},
{
"conclusion": "SUCCESS",
"name": "toolchain (22, npm, 11.9.0)",
"run_id": 119764433465,
"run_status": "completed",
"status": "success",
"url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/39760876568/job/119764433465"
},
{
"conclusion": "SUCCESS",
"name": "toolchain (22, pnpm, 11.20.0)",
"run_id": 119764433982,
"run_status": "completed",
"status": "success",
"url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/39760876568/job/119764433982"
},
{
"conclusion": "SUCCESS",
"name": "toolchain (22, pnpm, 11.21.0)",
"run_id": 119764433921,
"run_status": "completed",
"status": "success",
"url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/39760876568/job/119764433921"
},
{
"conclusion": "SUCCESS",
"name": "toolchain (24, npm, 11.9.0)",
"run_id": 119764434006,
"run_status": "completed",
"status": "success",
"url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/39760876568/job/119764434006"
},
{
"conclusion": "SUCCESS",
"name": "toolchain (24, pnpm, 11.20.0)",
"run_id": 119764433910,
"run_status": "completed",
"status": "success",
"url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/39760876568/job/119764433910"
},
{
"conclusion": "SUCCESS",
"name": "toolchain (24, pnpm, 11.21.0)",
"run_id": 119764433832,
"run_status": "completed",
"status": "success",
"url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/39760876568/job/119764433832"
}
],
"head_sha": "98b026d6893dd96e91d03067a8bdc808c4b2cc2c",
"id": "sha256:a569fdc5ac75c1370cddff436b342e9bcb52f2916b4358df4ffec9533489ace0",
"required_checks": [
"test",
"toolchain (22, npm, 11.9.0)",
"toolchain (22, pnpm, 11.20.0)",
"toolchain (22, pnpm, 11.21.0)",
"toolchain (24, npm, 11.9.0)",
"toolchain (24, pnpm, 11.20.0)",
"toolchain (24, pnpm, 11.21.0)"
],
"status": "success"
}
],
"delivery_deferral_ledger_digest": "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
"delivery_deferrals": [],
"findings": [
{
"classification": "current-slice",
"fix_evidence": [
"Parenthesized severity regression failed before and passes after;1294tests pass; fresh final-head regular review clean."
],
"fixed_head": "98b026d6893dd96e91d03067a8bdc808c4b2cc2c",
"id": 4346985060,
"invariant": "Highest severity available in official Node22 notes must be recognized",
"path": "node/runtime/node_releases.py",
"proposed_fix_paths": [
"node/runtime/node_releases.py",
"node/tests/test_security_reporting.py"
],
"rationale": "Verified official22.13.1 parenthesized severity suffix; bounded parser-format defect",
"response_links": [
"https://github.com/hydra-ecosystem/github-actions/pull/39#discussion_r4347071867"
],
"severity": "P2",
"status": "fixed",
"thread_id": "PRRT_kwDOVJzQB86vIxAo"
}
],
"pr": {
"base_ref": "main",
"base_sha": "81ff45cbeaa2fa9939424d54bf1115adc6710b58",
"body_digest": "sha256:98cc26ac3ff802725fbe99b516f61f1b2934a9643c10a696936e96498706ee1b",
"diff_digest": "sha256:3f4e88f35041005627fc91bf0fa72d57009ce35a19f45c8cb25d690bd893bb31",
"head_ref": "codex/shared-security-report",
"head_sha": "98b026d6893dd96e91d03067a8bdc808c4b2cc2c",
"pr": 39,
"repository": "hydra-ecosystem/github-actions",
"scope_authority": [],
"title_digest": "sha256:c96fb6a82d2457d1c5a907b06ee8a37378c76dcc3a7ea4b49a0c4b90b54caed2"
},
"record_version": 6,
"review_observations": [],
"review_requests": [
{
"base_established_at": "2026-10-22T09:52:14Z",
"base_ref": "main",
"base_sha": "81ff45cbeaa2fa9939424d54bf1115adc6710b58",
"body_digest": "sha256:56d0e119638129f85822e46d964e806816cb934294165a77ecad77b62aa0761f",
"created_at": "2026-10-22T09:55:25Z",
"head_sha": "9e59bde57e2230d484a1b38bf5ed975980078c1b",
"id": 6337939852,
"kind": "regular-review"
},
{
"base_established_at": "2026-10-22T09:52:14Z",
"base_ref": "main",
"base_sha": "81ff45cbeaa2fa9939424d54bf1115adc6710b58",
"body_digest": "sha256:21a7af85ab721b8f817b2b065defd4a9b4f4f8788d5f3527304e88051584635c",
"created_at": "2026-10-22T10:11:59Z",
"head_sha": "98b026d6893dd96e91d03067a8bdc808c4b2cc2c",
"id": 6338247634,
"kind": "regular-review"
}
],
"review_results": [
{
"base_ref": "main",
"base_sha": "81ff45cbeaa2fa9939424d54bf1115adc6710b58",
"body_digest": "sha256:eba5fe303804db6a8eedc98a5d4950459684f58df39650b1e1d7c8ed3e609c9a",
"commit_id": "9e59bde57e2230d484a1b38bf5ed975980078c1b",
"id": 5612455056,
"inline_message_ids": [
4346985060
],
"request_comment_id": 6337939852,
"result_kind": "findings",
"status": "result",
"submitted_at": "2026-10-22T10:01:04Z",
"unresolved_thread_ids": [
"PRRT_kwDOVJzQB86vIxAo"
]
},
{
"base_ref": "main",
"base_sha": "81ff45cbeaa2fa9939424d54bf1115adc6710b58",
"body_digest": "sha256:690b487e09627ac0e36bcf8d32257eabd2a281baa0347a69edd6fb39c0263035",
"commit_id": "98b026d6893dd96e91d03067a8bdc808c4b2cc2c",
"id": 6338308917,
"inline_message_ids": [],
"request_comment_id": 6338247634,
"result_kind": "clean",
"status": "result",
"submitted_at": "2026-10-22T10:15:19Z",
"unresolved_thread_ids": []
}
],
"revision_fingerprint": "sha256:7adcbd5577dfb3807640290e8c9d9bcdb61aca86469eb7b57077313b7058f996",
"rounds": [
{
"applied_fix_paths": [],
"disposition_changes": [],
"effective_diff_digest": "sha256:3f4e88f35041005627fc91bf0fa72d57009ce35a19f45c8cb25d690bd893bb31",
"finding_ids": [],
"invariants": [],
"outcome": "clean",
"proposed_fix_paths": [],
"resulting_head": "98b026d6893dd96e91d03067a8bdc808c4b2cc2c",
"review_observation_id": null,
"review_request_id": 6338247634,
"review_result_id": 6338308917,
"reviewed_head": "98b026d6893dd96e91d03067a8bdc808c4b2cc2c",
"root_cause": null,
"round": 1,
"unresolved_current_slice_findings": 0,
"unresolved_design_blockers": 0
}
],
"schema": "awd:swe:pr-cycle-state",
"version": 2
} |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9e59bde57e
ℹ️ 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".
Retain the highest available severity for older supported Node22 release notes and cover their bundled-dependency CVE format.
|
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". |
Node security proposals now use the shared security report renderer, with separate platform and package sections. Platform rows cover every security release within an exact same-major jump and link each release’s CVE summary and official notes. Missing starting patches or release metadata are explicit.
Package tables show versions, severity, and action separately. Orange continues to mean “Needs review,” including retained pins that block fixes. Advisory evidence remains available for fixed, pending, and unconfirmed findings. The preview generator calls these production functions directly.
Validation: 1,294 tests pass; Ruff lint/format and Pyrefly pass. Local deep review includes before/after regression proof for retained advisory links and the missing-local-declaration notice. Preview package and validation inputs are illustrative and labelled; platform preview evidence is fetched from official Node sources.
Independent local review: clean, zero findings after checking the exact candidate and relevant unchanged audit/publication boundaries.
The first regular review identified older Node 22 release notes with parenthesized severities. The parser now handles both official formats; a failing-before/passing-after regression covers this case.