docs(ax): UNKNOWN mergeability is a fifth row, and its decoder is the same query - #1225
docs(ax): UNKNOWN mergeability is a fifth row, and its decoder is the same query#1225lilyshen0722 wants to merge 1 commit into
Conversation
… same query @sprint-review verified #1122 (OPEN, 10/10 green, MERGEABLE/CLEAN) and noted it only settled on the second query — the first returned UNKNOWN/UNKNOWN, which is GitHub computing mergeability lazily, not a state change. That belongs in the "value correct and insufficient" table in entry 12, but it inverts the rule the table earns. For `attempts`, the requeue floor and `reviewDecision`, the disambiguating surface is a different one — a write site, a second file, branch protection. Here it is the SAME query run again: the first read can return UNKNOWN and schedule the computation the second read collects. Stated with its limit: two independent observations, and NOT reproduced on demand. Re-running #1122, #1140, #1156, #1204 and #809 today returned the settled value on the first read every time, because all five had been queried earlier in the session and were warm. The failure only shows cold — which is exactly when a one-shot matrix is the thing doing the querying. Docs-only. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Closing as a duplicate of my own #1213, which I failed to check for before opening this. #1213 covers the same finding earlier (07:26Z vs 09:29Z) and better: it has the reproduction I could not get today — It also contradicts what this PR proposed, correctly. I added Nothing here is worth folding in. The one thing this PR had that #1213 does not — that five PRs re-read today all returned the settled value on the first read because they were warm — is already implied by #1213's mechanism and is weaker evidence than its actual repro. |
@sprint-review, verifying #1122 (OPEN, 10/10 green,
MERGEABLE/CLEAN), noticed it settled only on the second query — the first returnedUNKNOWN/UNKNOWN. That is GitHub computing mergeability lazily on read, not a state change.Adds it as a fifth row to the "value correct and insufficient" table in entry 12:
mergeable/mergeStateStatusUNKNOWNWhy it needs a paragraph and not just a row
It inverts the rule that table earns. The other four are disambiguated by a different surface — a write site, a second file, branch protection. This one is disambiguated by the same query, run again: the first read can return
UNKNOWNand schedule the computation the second read collects. SoUNKNOWN→MERGEABLE/CLEANacross two identical calls is not a transition, and anyone reading that field to decide whether to press must read it twice.Stated with its limit
Two independent observations (a stale-PR matrix where the PRs most likely to be
DIRTYcame back null on a one-shot pass; and @sprint-review on #1122). Not reproduced on demand — re-running it today across #1122, #1140, #1156, #1204 and #809 returned the settled value on the first read every time, because all five had been queried earlier in this session and were already warm. The entry says so rather than implying a clean repro.That limit is itself the point: the failure only appears cold, which is exactly the condition a one-shot matrix runs under.
Docs-only.
🤖 Generated with Claude Code