Skip to content

fix(queen): export_push read the wrong field, and took 0 of 348 branches - #4608

Merged
gHashTag merged 1 commit into
masterfrom
fix/export-push-reads-commits
Sep 23, 2026
Merged

gHashTag merged 1 commit into
masterfrom
fix/export-push-reads-commits

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

The secret landed today and the workflow proved it works on its very first run:

waiting: 348 branch(es); taking 0 (base origin/master)

348 waiting, 0 taken. The filter read entry["ahead"]; the route sends commits — queen-export.ts: waiting.push({ issue, branch, commits: ahead, files, head }). A name that is not there defaults to zero, and zero is what the filter drops, so every branch was discarded before anything was fetched.

The credential was never the last blocker. The field name was, and it had been wrong since the day this script was written — invisible, because without the secret the run never got past the listing.

The self-test did not catch it, and that is the part worth keeping

Its fixtures were written from the same wrong assumption as the reader:

([{"branch": "queen-2", "ahead": 1}, ...], 10, ["queen-1", "queen-2"], "oldest issue first")

Both said ahead, so they agreed with each other and disagreed with production. A test whose fixtures come from the same hand as the code under test is checking a guess against itself, not against the thing it stands in for.

Fix

Read commits; keep accepting ahead as a fallback so a later route change cannot become a second silent zero. Fixtures rewritten with the route's own names, plus two cases: the old name still works, and an entry carrying neither name means nothing to take rather than something.

python3 tools/queen/export_push.py --self-test — PASS.

Closes #4607

🤖 Generated with Claude Code

The secret landed today and the workflow proved it works on its first run:

  waiting: 348 branch(es); taking 0 (base origin/master)

348 waiting, 0 taken. The filter read `entry["ahead"]`; the route sends
`commits` (queen-export.ts: waiting.push({ issue, branch, commits: ahead, ... })).
A name that is not there defaults to zero, and zero is what the filter drops,
so every branch was discarded before anything was fetched.

The credential was never the last blocker. The field name was, and it had been
wrong since the day this script was written - invisible because without the
secret the run never got past the listing.

THE SELF-TEST DID NOT CATCH IT, and that is the part worth keeping. Its
fixtures were written from the same wrong assumption as the reader: both said
`ahead`, so they agreed with each other and disagreed with production. A test
whose fixtures come from the same hand as the code under test is checking a
guess against itself, not against the thing it stands in for.

So the fixtures are rewritten with the route's own names, and two cases are
added: `ahead` is still accepted - a later route change must not become a
second silent zero - and an entry carrying neither name means nothing to take
rather than something.

Closes #4607

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-23 08:04:34 UTC

Summary

Status Count
Total Open PRs 29
PRs with Failing Checks 25
PRs with All Checks Green 4
READY 3
FAILING 25
PENDING 0
NO CHECKS YET 0

These columns do not partition: 3 + 25 + 0 + 0 = 28, and there are 29 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=403499176a5d != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag merged commit 4ce60d5 into master Sep 23, 2026
29 of 34 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

export_push read the wrong field name, so 348 waiting branches were taken as 0

1 participant