Skip to content

[node-maintenance-repair/9] Preserve a published repair during later audits - #54

Merged
omry merged 1 commit into
pr53from
pr54
Nov 1, 2026
Merged

omry merged 1 commit into
pr53from
pr54

Conversation

@omry

@omry omry commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Before normal security publication can stage changes or edit the PR, inspect native commit trailers not reachable from the audited default branch. Retain an open PR containing the exact validated-repair marker, including beneath a later maintainer commit or with a stale report after partial publication. Preserve its head, body, open state and draft status. Fail closed when branch history cannot be inspected. A failed new normal audit remains visible in Actions through the existing validation status check.

Do not infer retention from editable PR text or a lookalike marker. Repairs already merged into the default branch do not block later publication. Document the implemented repair flow, preservation behavior and remaining installation boundary without changing the App service or general rollout.

Validation: 1,635 Python tests, Ruff lint/format, Pyrefly and Bash syntax passed. Fifteen native Git cases cover retention, normal closure/draft paths, later maintainer commits, stale reports, inspection failures, forged markers and merged history; nine retention cases reproduce the old behavior on the accepted baseline. Complete production growth is11/600 lines without exclusions. Fresh full trust-boundary review is clean. Exact-head PR review/CI and isolated live preservation acceptance follow. Nothing merges or rolls out automatically.


…audits

Before normal security publication can stage changes or edit the PR, inspect native commit trailers not reachable from the audited default branch. Retain an open PR containing the exact validated-repair marker, including beneath a later maintainer commit or with a stale report after partial publication. Preserve its head, body, open state and draft status. Fail closed when branch history cannot be inspected. A failed new normal audit remains visible in Actions through the existing validation status check.

Do not infer retention from editable PR text or a lookalike marker. Repairs already merged into the default branch do not block later publication. Document the implemented repair flow, preservation behavior and remaining installation boundary without changing the App service or general rollout.

Validation: 1,635 Python tests, Ruff lint/format, Pyrefly and Bash syntax passed. Fifteen native Git cases cover retention, normal closure/draft paths, later maintainer commits, stale reports, inspection failures, forged markers and merged history; nine retention cases reproduce the old behavior on the accepted baseline. Complete production growth is11/600 lines without exclusions. Fresh full trust-boundary review is clean. Exact-head PR review/CI and isolated live preservation acceptance follow. Nothing merges or rolls out automatically.
@omry
omry changed the base branch from main to pr53 November 1, 2026 17:24
@omry
omry added this pull request to stack #44 November 1, 2026 17:25
@omry

omry commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor Author

PR-cycle state — maintained automatically. Do not edit by hand.

Mechanical PR-cycle state (JSON)
{
  "approval": {
    "candidate_revision_fingerprint": "sha256:da97cc2aa911db38e151842b93dce1f8e2badf1485dd85e3b4842a2a7b86228d",
    "evidence": {
      "attestations": [],
      "candidate_revision_fingerprint": "sha256:da97cc2aa911db38e151842b93dce1f8e2badf1485dd85e3b4842a2a7b86228d",
      "check_conclusions": [
        {
          "conclusion": "SUCCESS",
          "name": "repair-app",
          "run_id": 124921935624
        },
        {
          "conclusion": "SUCCESS",
          "name": "test",
          "run_id": 124921935777
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (22, npm, 11.9.0)",
          "run_id": 124921935961
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (22, pnpm, 11.20.0)",
          "run_id": 124921935838
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (22, pnpm, 11.21.0)",
          "run_id": 124921935931
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (24, npm, 11.9.0)",
          "run_id": 124921935896
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (24, pnpm, 11.20.0)",
          "run_id": 124921935855
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (24, pnpm, 11.21.0)",
          "run_id": 124921935995
        }
      ],
      "delivery_deferral_ledger_digest": "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
      "finding_dispositions_digest": "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
      "operation_identity": "sha256:bff52df6d069b488ece02c73b0c8f8a0db30d1729b6a2c13d2a4f59becf3c001",
      "review_request": {
        "body_digest": "sha256:cd72a1fd7ba0b29a082154a724100a777c535e8e53f73a754599015128207cf9",
        "id": 6561451967
      },
      "review_result": {
        "body_digest": "sha256:b6683a2f8b68e478d8ddbfd3dd2a2774a3120e3b982d4d341899d852189b2ce2",
        "id": 6561461813
      }
    },
    "evidence_fingerprint": "sha256:aff8de0c9e49c3921f87eac92fa425bcd2f3ca96c2abd20fa634f7f73215e251",
    "head_sha": "f22661948429e391906b887842932a7b9fa7906a",
    "operation_identity": "sha256:bff52df6d069b488ece02c73b0c8f8a0db30d1729b6a2c13d2a4f59becf3c001",
    "review_request_id": 6561451967,
    "review_result_id": 6561461813,
    "status": "approved-evidence-recorded"
  },
  "candidate_revision_fingerprint": "sha256:da97cc2aa911db38e151842b93dce1f8e2badf1485dd85e3b4842a2a7b86228d",
  "check_conclusions": [
    {
      "conclusion": "SUCCESS",
      "name": "repair-app",
      "run_id": 124921935624
    },
    {
      "conclusion": "SUCCESS",
      "name": "test",
      "run_id": 124921935777
    },
    {
      "conclusion": "SUCCESS",
      "name": "toolchain (22, npm, 11.9.0)",
      "run_id": 124921935961
    },
    {
      "conclusion": "SUCCESS",
      "name": "toolchain (22, pnpm, 11.20.0)",
      "run_id": 124921935838
    },
    {
      "conclusion": "SUCCESS",
      "name": "toolchain (22, pnpm, 11.21.0)",
      "run_id": 124921935931
    },
    {
      "conclusion": "SUCCESS",
      "name": "toolchain (24, npm, 11.9.0)",
      "run_id": 124921935896
    },
    {
      "conclusion": "SUCCESS",
      "name": "toolchain (24, pnpm, 11.20.0)",
      "run_id": 124921935855
    },
    {
      "conclusion": "SUCCESS",
      "name": "toolchain (24, pnpm, 11.21.0)",
      "run_id": 124921935995
    }
  ],
  "check_observations": [
    {
      "checks": [
        {
          "conclusion": "SUCCESS",
          "name": "repair-app",
          "run_id": 124921935624,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/41331346119/job/124921935624"
        },
        {
          "conclusion": "SUCCESS",
          "name": "test",
          "run_id": 124921935777,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/41331346119/job/124921935777"
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (22, npm, 11.9.0)",
          "run_id": 124921935961,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/41331346119/job/124921935961"
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (22, pnpm, 11.20.0)",
          "run_id": 124921935838,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/41331346119/job/124921935838"
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (22, pnpm, 11.21.0)",
          "run_id": 124921935931,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/41331346119/job/124921935931"
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (24, npm, 11.9.0)",
          "run_id": 124921935896,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/41331346119/job/124921935896"
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (24, pnpm, 11.20.0)",
          "run_id": 124921935855,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/41331346119/job/124921935855"
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (24, pnpm, 11.21.0)",
          "run_id": 124921935995,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/41331346119/job/124921935995"
        }
      ],
      "head_sha": "f22661948429e391906b887842932a7b9fa7906a",
      "id": "sha256:8c2a0b2da216a2578b59035347fa09bb51e770c83a9adab424fa9b47b7270a58",
      "required_checks": [
        "repair-app",
        "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": [],
  "pr": {
    "base_ref": "pr53",
    "base_sha": "737d02090446722e172f45ce6394a63d3b080098",
    "body_digest": "sha256:3cc812797bfd3587bbfb0b76ee79b6863707792921b1a72f90d77186d1eb016c",
    "body_identity_version": 2,
    "diff_digest": "sha256:4612e45777176a831c08db49d7d918c5cf6c6ab608020f6802b240266a937e5f",
    "head_ref": "pr54",
    "head_sha": "f22661948429e391906b887842932a7b9fa7906a",
    "pr": 54,
    "repository": "hydra-ecosystem/github-actions",
    "scope_authority": [],
    "title_digest": "sha256:a81b1a2023a174beb6a1855ceaf4d9a9646a86c7a955b59593ea7286a7c80e5f"
  },
  "record_version": 4,
  "review_observations": [],
  "review_requests": [
    {
      "base_established_at": "2026-11-01T17:24:58Z",
      "base_ref": "pr53",
      "base_sha": "737d02090446722e172f45ce6394a63d3b080098",
      "body_digest": "sha256:cd72a1fd7ba0b29a082154a724100a777c535e8e53f73a754599015128207cf9",
      "created_at": "2026-11-01T17:34:49Z",
      "head_sha": "f22661948429e391906b887842932a7b9fa7906a",
      "id": 6561451967,
      "kind": "regular-review"
    }
  ],
  "review_results": [
    {
      "base_ref": "pr53",
      "base_sha": "737d02090446722e172f45ce6394a63d3b080098",
      "body_digest": "sha256:b6683a2f8b68e478d8ddbfd3dd2a2774a3120e3b982d4d341899d852189b2ce2",
      "commit_id": "f22661948429e391906b887842932a7b9fa7906a",
      "id": 6561461813,
      "inline_message_ids": [],
      "request_comment_id": 6561451967,
      "result_kind": "clean",
      "status": "result",
      "submitted_at": "2026-11-01T17:35:42Z",
      "unresolved_thread_ids": []
    }
  ],
  "revision_fingerprint": "sha256:da97cc2aa911db38e151842b93dce1f8e2badf1485dd85e3b4842a2a7b86228d",
  "rounds": [
    {
      "applied_fix_paths": [],
      "disposition_changes": [],
      "effective_diff_digest": "sha256:4612e45777176a831c08db49d7d918c5cf6c6ab608020f6802b240266a937e5f",
      "finding_ids": [],
      "invariants": [
        "Normal security publication preserves the native head, body, open state and draft status of an unmerged validated repair, including below maintainer commits and with stale report text.",
        "Native unmerged exact trailer values establish retention; merged history, forged body text and lookalike values do not. Missing or unreadable history fails closed.",
        "Failed new normal validation remains visible in Actions without altering the preserved repaired PR. Existing isolated repair trust boundaries remain intact.",
        "Exact-head full local validation, fresh independent full trust-boundary review, regular review and all8CI pass before source approval; live retention and final G-REPAIR remain separate gates."
      ],
      "outcome": "clean",
      "proposed_fix_paths": [],
      "resulting_head": "f22661948429e391906b887842932a7b9fa7906a",
      "review_observation_id": null,
      "review_request_id": 6561451967,
      "review_result_id": 6561461813,
      "reviewed_head": "f22661948429e391906b887842932a7b9fa7906a",
      "root_cause": "Clean first regular review of the complete11-line preservation guard and five-file candidate. No code correction, unresolved finding, deferral or failed check occurred. Full1635-test/static evidence and fresh independent full trust-boundary review verified; all8CI passed. Actual current-reference hosted retention remains pending.",
      "round": 1,
      "unresolved_current_slice_findings": 0,
      "unresolved_design_blockers": 0
    }
  ],
  "schema": "awd:swe:pr-cycle-state",
  "version": 2
}

@omry
omry marked this pull request as ready for review November 1, 2026 17:32
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-01T17:35:43.358832Z f226619 Manual request
🔒 Security Review ✅ Completed 2026-11-01T17:35:04.483875Z f226619 Draft marked ready
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@omry

omry commented Nov 1, 2026

Copy link
Copy Markdown
Contributor Author

@codex review

Exact head: f226619

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Already looking forward to the next diff.

Reviewed commit: f226619484

ℹ️ 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".

@omry omry added the approved label Nov 1, 2026

omry commented Nov 1, 2026

Copy link
Copy Markdown
Contributor Author

G-REPAIR passed on reviewed source f22661948429e391906b887842932a7b9fa7906a (source PR #54). The actual repair run 41334589821 passed guard, trusted preparation, separate validation and isolated two-file publication at 765020d858dcfb1b6fd29e9113dacc2044abe3b1. Original producer Check 124931664666, artifact 13094631418, archive SHA-256 2dde7568585e934dea6a300c25fc3aa50a0f3ef91a5b6823d0518b59e6592dd7, and complete native three-attempt history verified. The actual publisher used sealed preparation bytes despite validator-local artifact forgery. The cumulative report retained original minimist GHSA-xvch-5gv4-984h, launch-editor GHSA-698v-4r3x-3vcv, GHSA-r825-w8mm-5pxw, GHSA-587h-7wmj-h5pm, and exact platform/CVE text.

The actual reviewed-source normal audit 41335290085 retained later maintainer commit dcb70e6996bea87929a97cea4d21ca1df454ecd8. Audit 41335868118 retained genuine partial publication 855ad308414e2a0c5f0d2056c6cc64c73828c80c and the exact stale description left by the historical failed body update. Both publisher logs took the retention path; head/body/title/open/ready state, native history and original sealed normal producer artifacts were independently verified. A real stale remote Git lease was rejected without a head change. Durable native bundles retain the repaired and maintainer histories.

Earlier live failure-validation (40211853579), validator-tamper (40212050676) and stale-revision rejection (40199048593) evidence was reused honestly. Runtime guard/validation functions are AST-identical, guard/validation workflow blocks are byte-identical, original artifact hashes were rechecked, and the current publisher requires actual prepare/validate success. No fresh hosted failing normal audit is claimed; that signaling is covered by real-Git local regressions and independent review. Full trust-boundary independent review and regular exact-head review are clean; 1,635 Python tests/static checks and all 8 CI jobs passed. Production growth for slice9 is 11/600 lines.

Exact original demo tree/head/body are restored through ordinary cleanup dfcf2ac00ddcc29f4a6e5fa7629e3c9702c4ed4f; original PR head 9882877525c41bbda92afdb12fc44f053c298018, body SHA-256 c105a987ba7c0940a78eb02d4c3ba18ee70907a6537542d34b743e410488dc8d. The App request completed normally. Stable v1, experiment tag, frozen campaign and source stack are unchanged; nothing merged or deployed. Manual usage remains 13/18 work items, 0/28 reconciliations, 10/10 fresh full convergence. Supported consumer installation/service wording and any Hydra pilot remain separately gated slice10.

Final merge-readiness audit found PR #51's post-approval description update invalidated its saved review identity. Its source is unchanged. Renewing its normal review against the actual successful-hosted-acceptance description is the remaining merge-readiness task; no source approval is being silently transferred.

omry commented Nov 1, 2026

Copy link
Copy Markdown
Contributor Author

Slice9 is complete under the approved explicit manual controls. G-REPAIR passed; the detailed live evidence and original advisory links are retained in the acceptance comment above. Both real normal-audit preservation cases passed, the real stale remote lease was rejected, and the exact demo tree/head/body are restored. The original frozen campaign remains stopped and byte-identical; no managed completion is claimed.

The final check of all12 source PRs found unchanged native/local/remote heads, current review identities, approved open/ready state, clean mergeability, and the complete8-check CI set passing. PR51's post-approval hosted-status description drift is now reconciled through the normal frontend, with its source unchanged, original valid code-review evidence retained, fresh1,527-test/static validation, and historical rounds preserved. Stack-tip source remains f22661948429e391906b887842932a7b9fa7906a; slice9's 1,635-test/static proof, clean fresh independent full review, regular review and all8CI remain bound to it. Read-only integration with current main f24a71a35ba24f832ceb0dc183c4beb8a423a5d6 is clean and adds only known design/ignore files.

The existing source stack is ready to begin its normal gated merge procedure. Recheck any later candidate/base identity changed by landing. Nothing was merged or deployed; stablev1 is unchanged. Supported consumer installation/service wording and a separately authorized Hydra pilot remain slice10. Cumulative manual usage remains13/18 work items,0/28 reconciliations,10/10 fresh full convergence.

@omry
omry merged commit 2297871 into main Nov 1, 2026
8 checks passed
@omry
omry deleted the pr54 branch November 1, 2026 18:50

omry commented Nov 1, 2026

Copy link
Copy Markdown
Contributor Author

Correction to the manual accounting reported above: the original convergence budget is for whole-campaign delivery passes, not a total allowance of independent code reviews. The frozen original campaign records1/10 passes. I incorrectly added nine later manual review reservations to that different counter and called the resulting10 a spent review allowance. Those nine review records, findings, corrections and test results remain preserved; they are now classified separately. No limit was raised or reset, and the frozen campaign remains unchanged. This corrects accounting only; the source approval, CI and live acceptance evidence above is unchanged. Installation work is continuing under the existing limits.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant