Skip to content

Nine campaign PRs blocked only by a human CHANGES_REQUESTED at a superseded commit #2415

Open

Description

@easonLiangWorldedtech

What this issue is

Nine campaign-authored open PRs are blocked by nothing the author side can still do. Each carries exactly one human CHANGES_REQUESTED row - edelauna, user.type: User, 0-byte body - that sits against a commit which is no longer that PR's head, and each row was re-read in state CHANGES_REQUESTED in the same pass that read the head, so each is still undismissed.

Dismissing those reviews is the whole remaining author-side action for these PRs. No campaign lane self-approves its own work, and none of the nine rows was written by the campaign login or by a campaign bot.

Population: where the nine come from, and what was re-verified

The population is the campaign's 17-PR read recorded in section 162 of .tmp-cr-audit/pr-sweep-r101.txt (written 2026-11-10T15:32:53Z): 1394, 1410, 1411, 1412, 1496, 1522, 1523, 1535, 1545, 1560, 1562, 1567, 1924, 1928, 1932, 2054, 2226. That read found 8 PRs whose newest change-request row is a human row and recorded every one of those rows against a commit it marked not current head. The other 9 PRs in the same read are held by the reviewing bot's own newest row rather than by a human row, so they are not listed here.

This issue's numbers come from a fresh re-verification pass run 2026-11-10T16:27:04Z to 16:29:10Z per PR:

  • GET /repos/Zoo-Code-Org/Zoo-Code/pulls/<n> for the head, mergeable, mergeable_state and labels;
  • GET /repos/Zoo-Code-Org/Zoo-Code/pulls/<n>/reviews?per_page=100&page=<p>, each list paged until a short page (rows < 100) with no further page read; the terminator for every PR here is the short page, and the row counts are 158 rows over 2 pages on 1291 and 1 page each on 1394 (46), 1496 (25), 1522 (28), 1523 (49), 1535 (43), 1924 (56), 1928 (34), 2054 (24);
  • GET /repos/Zoo-Code-Org/Zoo-Code/commits/<head>/check-runs?per_page=100&filter=all for the arms.

The undismissed test is the row itself: a dismissal shows up as that row leaving CHANGES_REQUESTED in /pulls/<n>/reviews. All 8 human rows the sweep found came back CHANGES_REQUESTED, so no row is reported here as already dismissed; other rows in those feeds are in state DISMISSED (11 on 1291, 2 on 1924, 2 on 2054, 1 on 1928) and all of those belong to the reviewing bot, not to edelauna.

One further PR outside that 17 meets the same condition and was read in the same pass with the same test: 1291, this lane's own PR. Its row is 5542982307, still CHANGES_REQUESTED against 441ccf8509ae..., which is not its head. The table and the title therefore count 9, not the sweep's 8: 8 rows re-verified out of the sweep's 17 PRs, plus 1291 read first-hand in the same pass. The sweep's earlier tally of "17 PRs read, 8 human verdicts" is the population count, not this issue's row count.

For every PR the review commit recorded by the sweep matches the commit_id the API reports now, and for every PR the review commit differs from the head, which is what "superseded" claims here:

[{"pr":1291,"sweep_commit12_agrees_with_api_commit_id":"outside sweep population","review_commit_neq_head":true},{"pr":1394,"sweep_commit12_agrees_with_api_commit_id":true,"review_commit_neq_head":true},{"pr":1496,"sweep_commit12_agrees_with_api_commit_id":true,"review_commit_neq_head":true},{"pr":1522,"sweep_commit12_agrees_with_api_commit_id":true,"review_commit_neq_head":true},{"pr":1523,"sweep_commit12_agrees_with_api_commit_id":true,"review_commit_neq_head":true},{"pr":1535,"sweep_commit12_agrees_with_api_commit_id":true,"review_commit_neq_head":true},{"pr":1924,"sweep_commit12_agrees_with_api_commit_id":true,"review_commit_neq_head":true},{"pr":1928,"sweep_commit12_agrees_with_api_commit_id":true,"review_commit_neq_head":true},{"pr":2054,"sweep_commit12_agrees_with_api_commit_id":true,"review_commit_neq_head":true}]

The table

PR PR head at re-verification (40) Review id Review submitted_at Commit the review sits against (40) Row state on re-verification
1291 a4a629acf247eb8a59e41d4a4995c675f9f68cd3 5542982307 2026-10-16T04:11:33Z 441ccf8509ae33f8a5a5ba26a8a42825e4d82284 CHANGES_REQUESTED
1394 06658a898ef1c13c14f4b76b95f1a6538cae86f3 5795622045 2026-11-06T04:13:48Z dd060a42c679f6339ebb97d1bf6796ae4252023b CHANGES_REQUESTED
1496 b10779d6e93bfbe49506486c30edf461b03e8379 5661956731 2026-10-27T03:41:59Z 737fdd21c57c85cc2b390b029abb2b8ed60d9d12 CHANGES_REQUESTED
1522 6c27dee98c71563afcc97f4fc3ac2d0809d6b7aa 5763302796 2026-11-04T04:40:02Z 5c4c69cd3ec7480c4a43d2355ed6cd022eaee3e4 CHANGES_REQUESTED
1523 79e1c2499ba13252d5654f978da5c44ecf8dd04b 5778772789 2026-11-05T02:03:46Z 60d3acdc282e9fb197d6a1321452da28cb004d77 CHANGES_REQUESTED
1535 97916f49e17925f1e9a88f4a3cd856fca0fe3e60 5763350306 2026-11-04T04:50:58Z 6d4331ea67bfbe0af83d91da4d8999feeb4c4b8e CHANGES_REQUESTED
1924 fc17bc41b178636b8fbc9743ce993022a4f885fc 5677312836 2026-10-28T03:10:09Z d67d4a669d5c4ce11aff70b2e83375a6db68687e CHANGES_REQUESTED
1928 94f0925066a4d27c9c594ad5d1064fbceb632cea 5677485648 2026-10-28T03:35:48Z f873a3d9f512d6a0acd4501d0db3fa98cf34b942 CHANGES_REQUESTED
2054 35793cd5fec3a40ef11a5dadedc1d95d110015fe 5645717952 2026-10-26T00:14:58Z 3719b993848f4e0c835860fa95673324a8ca2aaf CHANGES_REQUESTED

Supporting columns for the same nine rows:

PR Branch Reviewer Row body Required arms at head Advisory legs not green at head mergeable_state Campaign routing comment already on the PR
1291 feat/abort-r1-openai-native-compat edelauna (User) 0 B 6/6 completed/success codecov/patch/webview-patch in_progress/null; CodeRabbit completed/skipped blocked (mergeable true) comment 6771074495
1394 feat/observation-registry-s2 edelauna (User) 0 B 6/6 completed/success CodeRabbit completed/skipped blocked (mergeable true) none
1496 fix/abandoned-subtask-save-race-1021 edelauna (User) 0 B 6/6 completed/success codecov/patch/webview-patch in_progress/null blocked (mergeable true) comment 6753651979
1522 feat/dte-v2-2-per-request-effort edelauna (User) 0 B 6/6 completed/success CodeRabbit completed/skipped; CodeRabbit completed/skipped blocked (mergeable true) comment 6641193159
1523 feat/dte-v2-3-task-runtime-effort edelauna (User) 0 B 6/6 completed/success CodeRabbit completed/skipped; webview-visual completed/failure; mutation-diff completed/cancelled blocked (mergeable true) none
1535 feat/abort-r1-gateway-a-poe edelauna (User) 0 B 6/6 completed/success CodeRabbit completed/neutral; CodeRabbit completed/neutral; CodeRabbit completed/neutral; CodeRabbit completed/skipped blocked (mergeable true) comment 6641193916
1924 fix/mutation-gate-stacked-base edelauna (User) 0 B 6/6 completed/success CodeRabbit completed/skipped blocked (mergeable true) none
1928 p1066/u7-early-return-denial-cleanup edelauna (User) 0 B 6/6 completed/success none blocked (mergeable true) comment 6754865638
2054 chore/remove-stryker-directives edelauna (User) 0 B 6/6 completed/success CodeRabbit completed/neutral; CodeRabbit completed/neutral; CodeRabbit completed/skipped blocked (mergeable true) none

Who can clear these rows, named once

Measured this round from GET /repos/Zoo-Code-Org/Zoo-Code/rulesets/15494382 read whole at 2026-11-10T16:28:53Z (name Protect Main, enforcement active, conditions ref_name.include: ["~DEFAULT_BRANCH"], ruleset updated_at 2026-05-24T05:51:54.945+08:00): the pull_request rule carries required_approving_review_count: 1, require_code_owner_review: true, require_extra_approval_for_unattributed_changes: true, dismiss_stale_reviews_on_push: true, dismissal_restriction: { enabled: false, allowed_actors: [] }, and required_status_checks names exactly six contexts - check-translations, platform-unit-test (ubuntu-latest), platform-unit-test (windows-latest), compile, knip, e2e-mock. GET /repos/Zoo-Code-Org/Zoo-Code/contents/.github/CODEOWNERS returns 119 bytes, blob 08c5faeec43044fa385bc0a41c205b7a8c071e20, three lines of which two are non-blank, and the single non-blank rule is the catch-all:

* @taltas @JamesRobert20 @navedmerchant @edelauna

So the population that can dismiss the nine rows above is the same population that must give the code-owner approval every one of these PRs still needs: @taltas, @JamesRobert20, @navedmerchant, @edelauna. The gap is not an unnamed "maintainer action" - it is four named logins, and because dismissal_restriction.enabled is false, any one of the four can dismiss a row without a second party.

Why another push does not clear them

dismiss_stale_reviews_on_push is true, and it still has not reached these rows. Measured, not inferred: on 1928 the lane pushed 2026-11-10 and recorded in its own comment 6754865638 that 5677485648 (0-byte body, 2026-10-28T03:35:48Z, on f873a3d9f512) "is still CHANGES_REQUESTED: this push did not dismiss it, even though upstream ruleset 15494382 carries dismiss_stale_reviews_on_push: true", and this pass re-read that row CHANGES_REQUESTED against a commit that is not 1928's head. Every one of the nine rows here sits against a commit that is not its head and is still in state CHANGES_REQUESTED, so the author-side queue is empty: a further commit cannot make a row that a human submitted against an older commit go away.

What this issue does not ask for

  • No label change. awaiting-author and awaiting-maintainer on these PRs are set by the repository's own review-state reducer, and no campaign lane edits them.
  • No review trigger, no re-request, no self-review, no approval from the campaign login: the campaign does not approve its own work.
  • No push or no-op push for the sake of moving a state.
  • No claim that these PRs are content-complete in the reviewers' judgement: the claim is narrower and measured - the six required arms are completed / success at each current head (9 of 9), mergeable is true with mergeable_state: blocked on 9 of 9, where the campaign has published a thread census it reports the threads answered and resolved (1522 comment 6641193159, 1535 comment 6641193916, and 1291's threads were measured at 2026-11-10T14:29:27.994Z as 52 threads with 10 unresolved (lane artifact threads-table.json), those ten roots were each answered in-thread and resolved inside the 16:02Z publish window (d7-publish-actions.json, 7 records with resolve_status 200), and the post-publish census of 52 threads / 0 unresolved was printed by that publish program's own verification read and is not saved in any lane file - the 16:06:38Z read instant belongs to a different artifact (d10-final-state.json: head, labels, mergeable_state, the check tally, mutation runs and review decision, no thread census)); no thread census is claimed for 1394, 1496, 1523, 1924, 1928 or 2054 in this issue; and the only row still holding a change request from a human is a 0-byte row at a superseded commit.

Routing on the PRs themselves

Four of the nine already carry a campaign comment addressed to the maintainers holding the change request, so they get no second routing artifact: 1291 (6771074495), 1496 (6753651979, "the two things that have to move before this PR merges are human and outside this token's reach"), 1522 (6641193159, "State check for the maintainers holding the changes-requested (edelauna, 04:40:02Z)"), 1535 (6641193916, "only a maintainer re-review or dismissal clears it") and 1928 (6754865638). As read in this same pass, 1394 (7 campaign comments), 1523 (20), 1924 (18) and 2054 (15) carry only bot-review triggers, review-thread dispositions and job explanations - none addressed to the maintainers holding the change request - so each of those four receives one pointer comment to this issue and nothing else.

Provenance

  • Sweep rows: .tmp-cr-audit/pr-sweep-r101.txt section 162, lines 3140-3244 of the file as it stood at 1,243,160 bytes; parsed line by line, no API request used for that column.
  • Re-verification: 9 PR objects, 10 review pages (1 short-page terminator each; 1291 needed 2), 9 check-run lists, 2 ruleset reads and 1 CODEOWNERS content read, all on 2026-11-10 between 16:27:04Z and 16:29:10Z for the per-PR reads and 16:28:53Z for the ruleset.
  • Per-row submitted_at, commit_id, state and user.type are the API's own fields in those responses, quoted as returned.
  • The last metered core response in this pass reported x-ratelimit-remaining: 4894 at the ruleset read at 16:28:53Z (reset 1794328803 was reported earlier in the campaign's own reads).

Where the title's framing is exact, and where it is not (added after the table was filed)

This paragraph was added after the table above was filed, because whether the title's phrase - blocked only by a human CHANGES_REQUESTED at a superseded commit - is exact is a per-PR fact, and it is not the same fact on all nine rows. Every figure in it comes from the re-verification of the nine PRs read between 2026-11-10T16:27:04Z and 2026-11-10T16:29:10Z, recorded in e2-verify-a.json and e5-verify-b.json, which is the same read the campaign graded its own already-published comment figures against. Nothing in this paragraph is quoted from memory.

  • On three of the nine, 1291, 1522 and 1523, the reviewing bot's newest row is APPROVED at the delivered head: row 5845039353 at a4a629acf247eb8a59e41d4a4995c675f9f68cd3 (1291, submitted 2026-11-10T16:02:44Z), row 5779784657 at 6c27dee98c71563afcc97f4fc3ac2d0809d6b7aa (1522, 2026-11-05T04:15:21Z) and row 5779813679 at 79e1c2499ba13252d5654f978da5c44ecf8dd04b (1523, 2026-11-05T04:20:00Z). On those three the human row in the table is the only standing change request, and dismissing it is the whole remaining review action on the PR.
  • On two of the nine, 1496 and 1924, the reviewing bot's own newest row is CHANGES_REQUESTED at the delivered head: row 5832305962 at b10779d6e93bfbe49506486c30edf461b03e8379 (1496, submitted 2026-11-09T20:33:21Z) and row 5775530677 at fc17bc41b178636b8fbc9743ce993022a4f885fc (1924, 2026-11-04T20:47:04Z). There, dismissing the superseded human row is necessary but not sufficient - the row standing at the head has to clear too, by a fresh review at that head or by a dismissal of its own - so for those two the title understates what is still owed.
  • On the remaining four, 1394, 1535, 1928 and 2054, the bot's own CHANGES_REQUESTED stands at a superseded commit next to the human row: 5773701640 at addf98b59064 (1394, 2026-11-04T18:35:00Z), 5814366391 at b3c011671edb (1535, 2026-11-07T18:42:28Z), 5477658456 at f8f7ce19a459 (1928, 2026-10-10T04:51:18Z) and 5702986228 at 07ba03e6f20d (2054, 2026-10-29T18:31:01Z). Those are author-side work for nobody: the same four logins named above can dismiss them, and a fresh review at the current head clears them as well. On 2054 a human APPROVED row also sits off the head - 5642805882 by p12tic against 3719b993848f4e0c835860fa95673324a8ca2aaf.

Read together with the table, the author-side ask is unchanged and is nil: no row on this list waits on a campaign push, and no campaign lane self-approves its own work. What differs is the maintainer-side count - one dismissal clears 1291, 1522 and 1523; on 1496 and 1924 a dismissal plus a review at the head, or a dismissal of both standing rows, is what clears the review state; and on 1394, 1535, 1928 and 2054 either two dismissals or one fresh review at the current head clears it. The nine human rows themselves are exactly as the table states them.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions