Skip to content

Start selected repairs from the PR conversation - #46

Open
omry wants to merge 1 commit into
pr44from
comment-repair
Open

omry wants to merge 1 commit into
pr44from
comment-repair

Conversation

@omry

@omry omry commented Oct 24, 2026

Copy link
Copy Markdown
Contributor

Maintainers can select fixes in a maintenance PR description and post a new /repair selected comment in its Conversation tab. The App verifies current permission, the canonical unedited comment, the signed description snapshot and its exact head/base binding before using the existing atomic admission and fixed-workflow dispatch. It creates one App-owned status reply before dispatch and updates it with the returned run link; replayed commands cannot dispatch again, even under another delivery UUID.

The native Check action remains secondary. The control Check stays completed/neutral because the live pilot showed that GitHub did not reopen it on an in_progress update. This replaces that presentation requirement; it does not claim to fix GitHub’s ignored transition.

This is a bounded follow-up stacked on #45. It adds a one-time migration for existing D1 databases and documents the required Issues-read / Pull-requests-write permissions and issue-comment subscription. Existing requests and active locks are preserved. Reports must include the documented revision marker. Production report integration and terminal completion handling remain later delivery slices; the current workflow is still a harmless input-validation pilot.

Validation: 183 Worker unit tests; native Workers/D1 tests with intercepted GitHub calls, concurrency and replay; pinned Wrangler dry-run bundle; JavaScript syntax and whitespace checks. No App permission change, migration, deployment, dependency repair or PR merge has been performed for this change.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 24, 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-10-24T09:08:31.747761Z 475355e Manual request
🔒 Security Review ✅ Completed 2026-10-24T07:37:37.394917Z e0cc357 PR opened
ℹ️ 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 Oct 24, 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:2d68ab1daee9917c88cf6182a8d09bfb0c3be51d14d867fb157cfdbfa92fd57e",
    "evidence": {
      "attestations": [],
      "candidate_revision_fingerprint": "sha256:2d68ab1daee9917c88cf6182a8d09bfb0c3be51d14d867fb157cfdbfa92fd57e",
      "check_conclusions": [
        {
          "conclusion": "SUCCESS",
          "name": "repair-app",
          "run_id": 120832415683
        },
        {
          "conclusion": "SUCCESS",
          "name": "test",
          "run_id": 120832415692
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (22, npm, 11.9.0)",
          "run_id": 120832415794
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (22, pnpm, 11.20.0)",
          "run_id": 120832415675
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (22, pnpm, 11.21.0)",
          "run_id": 120832415800
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (24, npm, 11.9.0)",
          "run_id": 120832415704
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (24, pnpm, 11.20.0)",
          "run_id": 120832415807
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (24, pnpm, 11.21.0)",
          "run_id": 120832415787
        }
      ],
      "delivery_deferral_ledger_digest": "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
      "finding_dispositions_digest": "sha256:4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
      "operation_identity": "sha256:0e8c4e0e4b28282761d2b3c92b712a5f23568c860aa8b8731d1f0045e41b91c7",
      "review_request": {
        "body_digest": "sha256:ba247ad19e04d15b64f8c1b8dd8ecf545301dc4cd000612b8a2ea0d273b3cab0",
        "id": 6382340908
      },
      "review_result": {
        "body_digest": "sha256:589adb5a688fd154df351f76bc81552eb18280a8b579d3a42e8bf0232435705b",
        "id": 6382356103
      }
    },
    "evidence_fingerprint": "sha256:b7048f1ad54e439386f53f21deb19c0a320a987989fb83fb203e15822fbad843",
    "head_sha": "475355edb87693bb970d28d6674c295df476684f",
    "operation_identity": "sha256:0e8c4e0e4b28282761d2b3c92b712a5f23568c860aa8b8731d1f0045e41b91c7",
    "review_request_id": 6382340908,
    "review_result_id": 6382356103,
    "status": "approved-evidence-recorded"
  },
  "candidate_revision_fingerprint": "sha256:2d68ab1daee9917c88cf6182a8d09bfb0c3be51d14d867fb157cfdbfa92fd57e",
  "check_conclusions": [
    {
      "conclusion": "SUCCESS",
      "name": "repair-app",
      "run_id": 120832415683
    },
    {
      "conclusion": "SUCCESS",
      "name": "test",
      "run_id": 120832415692
    },
    {
      "conclusion": "SUCCESS",
      "name": "toolchain (22, npm, 11.9.0)",
      "run_id": 120832415794
    },
    {
      "conclusion": "SUCCESS",
      "name": "toolchain (22, pnpm, 11.20.0)",
      "run_id": 120832415675
    },
    {
      "conclusion": "SUCCESS",
      "name": "toolchain (22, pnpm, 11.21.0)",
      "run_id": 120832415800
    },
    {
      "conclusion": "SUCCESS",
      "name": "toolchain (24, npm, 11.9.0)",
      "run_id": 120832415704
    },
    {
      "conclusion": "SUCCESS",
      "name": "toolchain (24, pnpm, 11.20.0)",
      "run_id": 120832415807
    },
    {
      "conclusion": "SUCCESS",
      "name": "toolchain (24, pnpm, 11.21.0)",
      "run_id": 120832415787
    }
  ],
  "check_observations": [
    {
      "checks": [
        {
          "conclusion": "SUCCESS",
          "name": "repair-app",
          "run_id": 120815564018,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/40074736440/job/120815564018"
        },
        {
          "conclusion": "SUCCESS",
          "name": "test",
          "run_id": 120815563835,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/40074736440/job/120815563835"
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (22, npm, 11.9.0)",
          "run_id": 120815564058,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/40074736440/job/120815564058"
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (22, pnpm, 11.20.0)",
          "run_id": 120815564047,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/40074736440/job/120815564047"
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (22, pnpm, 11.21.0)",
          "run_id": 120815563940,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/40074736440/job/120815563940"
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (24, npm, 11.9.0)",
          "run_id": 120815564077,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/40074736440/job/120815564077"
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (24, pnpm, 11.20.0)",
          "run_id": 120815564067,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/40074736440/job/120815564067"
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (24, pnpm, 11.21.0)",
          "run_id": 120815564016,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/40074736440/job/120815564016"
        }
      ],
      "head_sha": "e0cc3573e2496f25b9e8c954c3f5672ac4d9ee38",
      "id": "sha256:07204d10b31f40d0b061efa5e1ccac5e4abce34d3a5020c215e3cd1b03bd61b0",
      "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"
    },
    {
      "checks": [
        {
          "conclusion": "SUCCESS",
          "name": "repair-app",
          "run_id": 120832415683,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/40080349816/job/120832415683"
        },
        {
          "conclusion": "SUCCESS",
          "name": "test",
          "run_id": 120832415692,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/40080349816/job/120832415692"
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (22, npm, 11.9.0)",
          "run_id": 120832415794,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/40080349816/job/120832415794"
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (22, pnpm, 11.20.0)",
          "run_id": 120832415675,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/40080349816/job/120832415675"
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (22, pnpm, 11.21.0)",
          "run_id": 120832415800,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/40080349816/job/120832415800"
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (24, npm, 11.9.0)",
          "run_id": 120832415704,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/40080349816/job/120832415704"
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (24, pnpm, 11.20.0)",
          "run_id": 120832415807,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/40080349816/job/120832415807"
        },
        {
          "conclusion": "SUCCESS",
          "name": "toolchain (24, pnpm, 11.21.0)",
          "run_id": 120832415787,
          "run_status": "completed",
          "status": "success",
          "url": "https://github.com/hydra-ecosystem/github-actions/actions/runs/40080349816/job/120832415787"
        }
      ],
      "head_sha": "475355edb87693bb970d28d6674c295df476684f",
      "id": "sha256:50a5c6e0c4b09e793ef12c8f1d60d150cbff7d3c3a5a14d0360fbb176900734a",
      "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": "pr44",
    "base_sha": "6e3192f0d7fdd5bda4c8fd4a81af201ec7996531",
    "body_digest": "sha256:127429c54f9bc8078251536551bdb271c19db9d71cbb2bed6d87d2857cc5499c",
    "body_identity_version": 2,
    "diff_digest": "sha256:f6885579b042ce1b326aa4af5244032f995bfadacfe99ab84ebfabba01e49f12",
    "head_ref": "comment-repair",
    "head_sha": "475355edb87693bb970d28d6674c295df476684f",
    "pr": 46,
    "repository": "hydra-ecosystem/github-actions",
    "scope_authority": [],
    "title_digest": "sha256:2e153a9a049a05435d4627c9857f4c7162ea96f8b02973847e5ae57952f9066a"
  },
  "record_version": 8,
  "review_observations": [],
  "review_requests": [
    {
      "base_established_at": "2026-10-24T07:35:21Z",
      "base_ref": "pr44",
      "base_sha": "6e3192f0d7fdd5bda4c8fd4a81af201ec7996531",
      "body_digest": "sha256:7bea59739e06a9a1786170e0b17d5853d9ab2c3d7eed6d255b5a0101c67735c3",
      "created_at": "2026-10-24T07:46:50Z",
      "head_sha": "e0cc3573e2496f25b9e8c954c3f5672ac4d9ee38",
      "id": 6381619214,
      "kind": "regular-review"
    },
    {
      "base_established_at": "2026-10-24T07:35:21Z",
      "base_ref": "pr44",
      "base_sha": "6e3192f0d7fdd5bda4c8fd4a81af201ec7996531",
      "body_digest": "sha256:ba247ad19e04d15b64f8c1b8dd8ecf545301dc4cd000612b8a2ea0d273b3cab0",
      "created_at": "2026-10-24T09:06:48Z",
      "head_sha": "475355edb87693bb970d28d6674c295df476684f",
      "id": 6382340908,
      "kind": "regular-review"
    }
  ],
  "review_results": [
    {
      "base_ref": "pr44",
      "base_sha": "6e3192f0d7fdd5bda4c8fd4a81af201ec7996531",
      "body_digest": "sha256:ba81e6da223e15932ccd44032b1a3c93ed8a944c67ddb386fb20df9745f03cfb",
      "commit_id": "e0cc3573e2496f25b9e8c954c3f5672ac4d9ee38",
      "id": 6381628761,
      "inline_message_ids": [],
      "request_comment_id": 6381619214,
      "result_kind": "clean",
      "status": "result",
      "submitted_at": "2026-10-24T07:47:53Z",
      "unresolved_thread_ids": []
    },
    {
      "base_ref": "pr44",
      "base_sha": "6e3192f0d7fdd5bda4c8fd4a81af201ec7996531",
      "body_digest": "sha256:589adb5a688fd154df351f76bc81552eb18280a8b579d3a42e8bf0232435705b",
      "commit_id": "475355edb87693bb970d28d6674c295df476684f",
      "id": 6382356103,
      "inline_message_ids": [],
      "request_comment_id": 6382340908,
      "result_kind": "clean",
      "status": "result",
      "submitted_at": "2026-10-24T09:08:30Z",
      "unresolved_thread_ids": []
    }
  ],
  "revision_fingerprint": "sha256:2d68ab1daee9917c88cf6182a8d09bfb0c3be51d14d867fb157cfdbfa92fd57e",
  "rounds": [
    {
      "applied_fix_paths": [],
      "disposition_changes": [],
      "effective_diff_digest": "sha256:e304b19db70390d26a68b689c5681bf1050d2ffa3f0b3ca0c8e6ffc733ea95b8",
      "finding_ids": [],
      "invariants": [],
      "outcome": "clean",
      "proposed_fix_paths": [],
      "resulting_head": "e0cc3573e2496f25b9e8c954c3f5672ac4d9ee38",
      "review_observation_id": null,
      "review_request_id": 6381619214,
      "review_result_id": 6381628761,
      "reviewed_head": "e0cc3573e2496f25b9e8c954c3f5672ac4d9ee38",
      "root_cause": null,
      "round": 1,
      "unresolved_current_slice_findings": 0,
      "unresolved_design_blockers": 0
    },
    {
      "applied_fix_paths": [],
      "disposition_changes": [],
      "effective_diff_digest": "sha256:f6885579b042ce1b326aa4af5244032f995bfadacfe99ab84ebfabba01e49f12",
      "finding_ids": [],
      "invariants": [],
      "outcome": "clean",
      "proposed_fix_paths": [],
      "resulting_head": "475355edb87693bb970d28d6674c295df476684f",
      "review_observation_id": null,
      "review_request_id": 6382340908,
      "review_result_id": 6382356103,
      "reviewed_head": "475355edb87693bb970d28d6674c295df476684f",
      "root_cause": null,
      "round": 2,
      "unresolved_current_slice_findings": 0,
      "unresolved_design_blockers": 0
    }
  ],
  "schema": "awd:swe:pr-cycle-state",
  "version": 2
}

@omry
omry added this pull request to stack #44 October 24, 2026 07:43
@omry

omry commented Oct 24, 2026

Copy link
Copy Markdown
Contributor Author

@codex review

Exact head: e0cc357

@chatgpt-codex-connector

Copy link
Copy Markdown

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

Reviewed commit: e0cc3573e2

ℹ️ 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 Oct 24, 2026
Accept a maintainer's /repair selected comment for the exact checked versions
and report revision in a managed maintenance PR. Validate the canonical
comment, current permission, PR and App-owned Check before atomic D1 admission.
Retain one App-owned status reply and the exact dispatched workflow identity;
replayed deliveries cannot dispatch a second workflow.

Overlap independent canonical reads so the first command can update its Check
and conversation reply within the existing eight-second webhook deadline.
The live Hydra pilot dispatched successfully but timed out before these updates;
an authorized redelivery recovered status without another workflow. Keep that
initial failure visible until a corrected live pilot proves the first delivery.

Validation: 186 Worker tests, native Workers/D1 concurrency and comment probes,
and the pinned Wrangler dry-run bundle pass. The latency regression fails on
the original source at eight seconds and passes at about 6.6 seconds with
550 ms per GitHub call. Permission and PR-revision race regressions also pass.

The harmless pilot changes no dependency files. Terminal workflow completion
and production report integration remain separate delivery steps.
@omry omry removed the approved label Oct 24, 2026
@omry

omry commented Oct 24, 2026

Copy link
Copy Markdown
Contributor Author

@codex review

Exact head: 475355e

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Delightful!

Reviewed commit: 475355edb8

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

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