Repository navigation
Description
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_stateand 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=allfor 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-authorandawaiting-maintaineron 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 / successat each current head (9 of 9),mergeableis true withmergeable_state: blockedon 9 of 9, where the campaign has published a thread census it reports the threads answered and resolved (1522 comment6641193159, 1535 comment6641193916, and 1291's threads were measured at 2026-11-10T14:29:27.994Z as 52 threads with 10 unresolved (lane artifactthreads-table.json), those ten roots were each answered in-thread and resolved inside the 16:02Z publish window (d7-publish-actions.json, 7 records withresolve_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.txtsection 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,stateanduser.typeare the API's own fields in those responses, quoted as returned. - The last metered core response in this pass reported
x-ratelimit-remaining: 4894at the ruleset read at 16:28:53Z (reset 1794328803was 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
APPROVEDat the delivered head: row5845039353ata4a629acf247eb8a59e41d4a4995c675f9f68cd3(1291, submitted 2026-11-10T16:02:44Z), row5779784657at6c27dee98c71563afcc97f4fc3ac2d0809d6b7aa(1522, 2026-11-05T04:15:21Z) and row5779813679at79e1c2499ba13252d5654f978da5c44ecf8dd04b(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_REQUESTEDat the delivered head: row5832305962atb10779d6e93bfbe49506486c30edf461b03e8379(1496, submitted 2026-11-09T20:33:21Z) and row5775530677atfc17bc41b178636b8fbc9743ce993022a4f885fc(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_REQUESTEDstands at a superseded commit next to the human row:5773701640ataddf98b59064(1394, 2026-11-04T18:35:00Z),5814366391atb3c011671edb(1535, 2026-11-07T18:42:28Z),5477658456atf8f7ce19a459(1928, 2026-10-10T04:51:18Z) and5702986228at07ba03e6f20d(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 humanAPPROVEDrow also sits off the head -5642805882byp12ticagainst3719b993848f4e0c835860fa95673324a8ca2aaf.
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