[PR #156] [MERGED] docs(bump-callers): mark the detect-unreviewed-merge fleet seeded (BE-6473) #165

Closed
opened 2026-10-26 22:36:56 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/Comfy-Org/github-workflows/pull/156
Author: @mattmillerai
Created: 8/12/2026
Status: ✅ Merged
Merged: 8/13/2026
Merged by: @mattmillerai

Base: main ← Head: matt/be-6473-seed-detect-unreviewed-merge-roster


📝 Commits (2)

  • d7127af docs(bump-callers): mark the detect-unreviewed-merge fleet seeded (BE-6473)
  • f3ffa7f Merge origin/main to resolve conflict in docs/callers/README.md

📊 Changes

5 files changed (+33 additions, -58 deletions)

View changed files

📝 .github/bump-callers/README.md (+1 -23)
📝 .github/workflows/bump-detect-unreviewed-merge-callers.yml (+23 -26)
📝 AGENTS.md (+3 -3)
📝 docs/callers/README.md (+1 -1)
📝 docs/callers/detect-unreviewed-merge.md (+5 -5)

📄 Description

ELI-5

The bumper that keeps every consumer repo's detect-unreviewed-merge pin up to date has been sitting deliberately switched off, because its list of consumers included two repos whose names would have been printed in this public repo's run log. That leak is fixed (rosters are secrets now), so the list has been loaded into the secret and the fleet is on. This PR is the paperwork: it deletes the "still unseeded, expect a red run" prose everywhere it appears and replaces it with the normal wording the other fleets use.

What changed

The functional half of this ticket is not a code change — the workflow already binds CALLERS_JSON: ${{ secrets.DETECT_UNREVIEWED_MERGE_CALLERS }} (the secrets migration did that). The deliverable was seeding the secret, which is done. So this diff is documentation only:

  • .github/workflows/bump-detect-unreviewed-merge-callers.yml — dropped the pre-seed paragraphs (STILL UNSEEDED, READ THIS BEFORE ACTING ON A RED RUN) and the matching ALLOW_EMPTY env comment. Replaced with the standard post-migration prose: roster in a repo secret, masked everywhere, and an empty roster now always means a clobbered secret to restore from the canonical callers.json — never a reason to flip ALLOW_EMPTY. ALLOW_EMPTY: "false" is unchanged.
  • .github/bump-callers/README.md — the fleet's table row is now non-empty (hard-fails if empty), matching the auto-label fleet; the "Why the detect-unreviewed-merge roster is not seeded yet" section is deleted.
  • AGENTS.md — the workflows bullet now says the fleet is live and its roster seeded/secret-stored. The conventions bullet already listed the secret, so it needed no change. Kept line-neutral (see caveats).
  • docs/callers/detect-unreviewed-merge.md, docs/callers/README.md — not enumerated in the ticket, but both still told consumers the roster was unseeded and their pins moved by hand. Leaving them would have shipped self-contradicting public docs.

Judgment calls — please read, two ticket premises were stale

1. The roster is seeded with 11 entries, not the 12 the ticket lists. The 12th entry was this repo's own self-caller. That file no longer exists: it was deleted by #148 (chore(ci): unenroll this repo from its own unreviewed-merge detector), which landed after the ticket was written. AGENTS.md independently says "Do not re-add a ci-detect-unreviewed-merge.yml caller."

This is load-bearing, not cosmetic. The ticket's reasoning for that entry was that the canonical filename would land it in "bump_repo's warn-and-succeed 404 branch" — but BE-6471 (#134) changed that branch: a 404 is now recorded in NOPIN and fails the job at the end. So seeding the entry as written would have hard-failed the fleet's first run, the exact opposite of the acceptance criterion. I added an NB: to the entrypoint header explaining why this repo is absent from its own roster, so nobody "fixes" it back.

Evidence for the absence (checked by every available path rather than assumed): the path 404s on the default branch via the contents API, it is absent from git ls-tree origin/main, git log names the PR that deleted it, and AGENTS.md forbids re-adding it.

I verified the other 11 entries live before seeding — every one resolves 200 on its default branch and pins the reusable at a full 40-hex SHA, so none can trip the 404 hard-fail.

2. I did not run the post-merge dispatch verification, because its stated expectation is false. The ticket expects "12 already-pinned skips, the correct no-op". The 11 live callers are all pinned at the SHA the ticket names, but the reusable has moved twice since (3b5886b, d0c6271), so main is far ahead of that pin. bump-callers.sh only skips on already at <NEW_SHA>, so a dispatch would not be a no-op — it would open ~11 real bump PRs across 11 repos. That is the fleet working as designed and is presumably wanted soon, but it is a wide outward action on a premise that turned out to be wrong, so it is your call, not one to take unattended. Nothing about merging this PR triggers it: the fleet's push filter watches only detect-unreviewed-merge.yml, which this diff does not touch. Dispatch it when you want the pins to move.

Unmet criterion

The canonical callers.json was not committed to the private ops repo. The ticket says to put it "alongside the other fleets' rosters (find them there)" — there are none. No callers.json exists in any Comfy-Org repo I can reach (org-wide code search, plus the file trees of the two plausible ops repos). The private-ops-repo roster home appears to be a convention the workflow headers describe but that was never actually created. Rather than invent a location and split the source of truth, I left it undone. The roster JSON is otherwise unrecorded, so this is worth closing soon — it is the only readback path, since there is no gh secret get.

Verification

  • bash .github/bump-callers/tests/test_bump_callers.sh — 368 passed, 0 failed. This includes the phase-1 static guard, which covers this entrypoint automatically through its bump-*-callers.yml glob (8 files, floor >= 8) — no extension needed.
  • shellcheck -x .github/bump-callers/bump-callers.sh .github/bump-callers/tests/test_bump_callers.sh — clean.
  • Workflow file parses as YAML; no vars. binding reintroduced.
  • Secret confirmed present on the repo. No variable-era DETECT_UNREVIEWED_MERGE_CALLERS variable existed, so there was nothing to delete.

Caveats

AGENTS.md is 225 lines, already over the checker's 200-line hard ceiling on main — pre-existing, not introduced here, and not caught in CI because this repo has no self-caller for agents-md-integrity.yml. I kept my edit exactly line-neutral rather than widen the gap. Worth a separate trim.

No caller repo names appear in this PR, the commit message, or any file in the diff — the roster exists only in the secret.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/Comfy-Org/github-workflows/pull/156 **Author:** [@mattmillerai](https://github.com/mattmillerai) **Created:** 8/12/2026 **Status:** ✅ Merged **Merged:** 8/13/2026 **Merged by:** [@mattmillerai](https://github.com/mattmillerai) **Base:** `main` ← **Head:** `matt/be-6473-seed-detect-unreviewed-merge-roster` --- ### 📝 Commits (2) - [`d7127af`](https://github.com/Comfy-Org/github-workflows/commit/d7127af2d2cab30834c8053423ca69f93255d3cd) docs(bump-callers): mark the detect-unreviewed-merge fleet seeded (BE-6473) - [`f3ffa7f`](https://github.com/Comfy-Org/github-workflows/commit/f3ffa7fa4b385487f268c627d25e4a0578b82dfc) Merge origin/main to resolve conflict in docs/callers/README.md ### 📊 Changes **5 files changed** (+33 additions, -58 deletions) <details> <summary>View changed files</summary> 📝 `.github/bump-callers/README.md` (+1 -23) 📝 `.github/workflows/bump-detect-unreviewed-merge-callers.yml` (+23 -26) 📝 `AGENTS.md` (+3 -3) 📝 `docs/callers/README.md` (+1 -1) 📝 `docs/callers/detect-unreviewed-merge.md` (+5 -5) </details> ### 📄 Description ## ELI-5 The bumper that keeps every consumer repo's `detect-unreviewed-merge` pin up to date has been sitting deliberately switched off, because its list of consumers included two repos whose names would have been printed in this public repo's run log. That leak is fixed (rosters are secrets now), so the list has been loaded into the secret and the fleet is on. This PR is the paperwork: it deletes the "still unseeded, expect a red run" prose everywhere it appears and replaces it with the normal wording the other fleets use. ## What changed The functional half of this ticket is **not a code change** — the workflow already binds `CALLERS_JSON: ${{ secrets.DETECT_UNREVIEWED_MERGE_CALLERS }}` (the secrets migration did that). The deliverable was seeding the secret, which is done. So this diff is documentation only: - `.github/workflows/bump-detect-unreviewed-merge-callers.yml` — dropped the pre-seed paragraphs (`STILL UNSEEDED`, `READ THIS BEFORE ACTING ON A RED RUN`) and the matching `ALLOW_EMPTY` env comment. Replaced with the standard post-migration prose: roster in a repo secret, masked everywhere, and an empty roster now **always** means a clobbered secret to restore from the canonical `callers.json` — never a reason to flip `ALLOW_EMPTY`. `ALLOW_EMPTY: "false"` is unchanged. - `.github/bump-callers/README.md` — the fleet's table row is now `non-empty (hard-fails if empty)`, matching the auto-label fleet; the "Why the detect-unreviewed-merge roster is not seeded yet" section is deleted. - `AGENTS.md` — the workflows bullet now says the fleet is live and its roster seeded/secret-stored. The conventions bullet already listed the secret, so it needed no change. Kept line-neutral (see caveats). - `docs/callers/detect-unreviewed-merge.md`, `docs/callers/README.md` — **not enumerated in the ticket**, but both still told consumers the roster was unseeded and their pins moved by hand. Leaving them would have shipped self-contradicting public docs. ## Judgment calls — please read, two ticket premises were stale **1. The roster is seeded with 11 entries, not the 12 the ticket lists.** The 12th entry was this repo's own self-caller. That file no longer exists: it was deleted by #148 (`chore(ci): unenroll this repo from its own unreviewed-merge detector`), which landed after the ticket was written. `AGENTS.md` independently says *"Do not re-add a `ci-detect-unreviewed-merge.yml` caller."* This is load-bearing, not cosmetic. The ticket's reasoning for that entry was that the canonical filename would land it in "bump_repo's warn-and-succeed 404 branch" — but BE-6471 (#134) changed that branch: a 404 is now recorded in `NOPIN` and **fails the job at the end**. So seeding the entry as written would have hard-failed the fleet's first run, the exact opposite of the acceptance criterion. I added an `NB:` to the entrypoint header explaining why this repo is absent from its own roster, so nobody "fixes" it back. Evidence for the absence (checked by every available path rather than assumed): the path 404s on the default branch via the contents API, it is absent from `git ls-tree origin/main`, `git log` names the PR that deleted it, and `AGENTS.md` forbids re-adding it. I verified the other 11 entries live before seeding — every one resolves 200 on its default branch and pins the reusable at a full 40-hex SHA, so none can trip the 404 hard-fail. **2. I did not run the post-merge dispatch verification, because its stated expectation is false.** The ticket expects "12 already-pinned skips, the correct no-op". The 11 live callers are all pinned at the SHA the ticket names, but the reusable has moved twice since (`3b5886b`, `d0c6271`), so `main` is far ahead of that pin. `bump-callers.sh` only skips on `already at <NEW_SHA>`, so a dispatch would not be a no-op — it would open ~11 real bump PRs across 11 repos. That is the fleet working as designed and is presumably wanted soon, but it is a wide outward action on a premise that turned out to be wrong, so it is your call, not one to take unattended. Nothing about merging this PR triggers it: the fleet's push filter watches only `detect-unreviewed-merge.yml`, which this diff does not touch. Dispatch it when you want the pins to move. ## Unmet criterion **The canonical `callers.json` was not committed to the private ops repo.** The ticket says to put it "alongside the other fleets' rosters (find them there)" — there are none. No `callers.json` exists in any Comfy-Org repo I can reach (org-wide code search, plus the file trees of the two plausible ops repos). The private-ops-repo roster home appears to be a convention the workflow headers describe but that was never actually created. Rather than invent a location and split the source of truth, I left it undone. The roster JSON is otherwise unrecorded, so this is worth closing soon — it is the only readback path, since there is no `gh secret get`. ## Verification - `bash .github/bump-callers/tests/test_bump_callers.sh` — **368 passed, 0 failed**. This includes the phase-1 static guard, which covers this entrypoint automatically through its `bump-*-callers.yml` glob (8 files, floor `>= 8`) — no extension needed. - `shellcheck -x .github/bump-callers/bump-callers.sh .github/bump-callers/tests/test_bump_callers.sh` — clean. - Workflow file parses as YAML; no `vars.` binding reintroduced. - Secret confirmed present on the repo. No variable-era `DETECT_UNREVIEWED_MERGE_CALLERS` variable existed, so there was nothing to delete. ## Caveats `AGENTS.md` is **225 lines, already over the checker's 200-line hard ceiling on `main`** — pre-existing, not introduced here, and not caught in CI because this repo has no self-caller for `agents-md-integrity.yml`. I kept my edit exactly line-neutral rather than widen the gap. Worth a separate trim. No caller repo names appear in this PR, the commit message, or any file in the diff — the roster exists only in the secret. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-26 22:36:56 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Comfy-Org/github-workflows#165
No description provided.