Skip to content

Inspect stranded GitHub releases before granting publication authority #598

Description

@devantler

🤖 Generated by the Agentic Engineer

Problem

Two Platform releases have tags but no GitHub release records (#587). Recovery needs trustworthy evidence of the original failed run, exact source, supported publisher configuration and current partial effects before any publication authority is obtained. Today this requires manual investigation and a successful normal release run can conceal the gap.

Proposed outcome

Deliver a reusable, explicitly enabled read-only inspection path in the maintained catalogue. It produces a bounded machine-readable diagnosis for one existing stable tag, with its original failed run and source. It performs no publication and grants no write permissions. This is the first delivery child of #587; publication, channel-note repair, legacy compatibility and protected consumer recovery remain on that parent.

Acceptance criteria

  • Validate repository, stable tag, full source SHA, original run ID/attempt and immutable original release-workflow identity before making API requests.
  • Read the exact failed push/default-branch run attempt, tag/source, strict supported GitHub-only JSON configuration and publication state. Refuse mismatches, unsupported publishers, incomplete or failed reads, redirects and conflicting publication identities.
  • Emit a machine-readable missing-publication or already-published diagnosis only after independently repeating the relevant reads. Do not describe a plan as publication success or future authorization.
  • Make only bounded GET requests using a repository-scoped read-only token; load the inspector from the reusable workflow's immutable catalogue revision. Preserve all normal release behavior and permission compatibility.
  • Exercise the actual inspector with native HTTP controls for partial, complete, changed, malformed and unavailable evidence; verify only GET requests and no partial success output.
  • Verify the shipped read-only path against the real public incident identities, while leaving both missing releases and Recover GitHub releases after a tag-only partial publication #587 open until separately recovered.

Priority: High, inherited from the recurring release incident. Effort: Medium. Service class: Risk reduction. Success is an evidenced diagnosis without any remote mutation; zero unauthorized writes is the guardrail. This bounded delivery has no prerequisite beyond #587's already completed refinement. The maintainer explicitly waived WIP limits for this round.

Part of #587.

Activity

  1. self-assigned this
    on Oct 15, 2026
  2. moved this to 🏃🏻‍♂️ In Progress in 🌊 Project Boardon Oct 15, 2026
  3. updated Priority High and Effort Medium on Oct 15, 2026
  4. added a commit that references this issue on Oct 15, 2026
  5. moved this from 🏃🏻‍♂️ In Progress to 👀 In Review in 🌊 Project Boardon Oct 15, 2026
  6. moved this from 👀 In Review to 🚀 Ready to Merge in 🌊 Project Boardon Oct 15, 2026
  7. moved this from 🚀 Ready to Merge to ✅ Done in 🌊 Project Boardon Oct 15, 2026
  8. moved this from ✅ Done to 📊 Verifying in 🌊 Project Boardon Oct 15, 2026
  9. devantler commented on Oct 15, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    Delivered in #599, merged as 226e6e7e5f3609868eb96a6a26f6dc293c88ba30, and published as v7.11.0. The fetched version tag resolves to that exact merge. Its complete tree equals reviewed source 0247eeac41fe236d9745fc97a6815393f5cf0c4c.

    The exact-head native CI succeeded with all 249 jobs settled and no failed or pending job. Fresh Codex review reports a clean result at that source; all five review threads are resolved and the body findings have specific fixes or assessments. Readable required gates passed, and the normal protected merge API accepted the expected head. The configured code-quality rule had no independently readable verdict; no bypass or protection change was used.

    The actual default-branch workflow was then evaluated at the merged revision, with run/attempt, source, job and emitted diagnosis read back:

    Evaluation Native receipt Outcome
    Inspection disabled 38771354701 Completed with no runner steps or credential acquisition
    Original v1.222.1 incident 38771366151 / job 116547736346 Built the immutable inspector, used the repository-scoped read-only App path, returned the matching missing-release diagnosis
    Original v1.223.3 incident 38771374961 / job 116547765370 Same actual path and matching diagnosis for the second incident

    Both enabled receipts bind the exact original failed run/attempt, tag, source and producer. They explicitly return authorization: none, publication_success: false, publication_scope: published-release-by-tag, and uninspected draft/channel metadata. The native implementation repeats the evidence reads before emitting that result. Earlier local HTTP/race/vet controls cover malformed, changed, unavailable and conflicting evidence, including both documented workflow-ref representations.

    This completes this child's acceptance. Neither Platform release was recovered. Publication, any necessary channel metadata, legacy delivery and protected consumer recovery stay open in #587. The separate channel-note diagnostic on that parent supports reducing the future write scope; it is not publication proof.

  10. moved this from 📊 Verifying to ✅ Done in 🌊 Project Boardon Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Fields

Priority

High

Start date

None yet

Target date

None yet

Effort

Medium

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions