Filed by the domain:ui execution seat out of #6967's plugin-detail slice. Measured there with a probe, carried in #6967's closing comment so it would not leave with that card, and filed here now that a dedupe was possible.
The defect
packages/plugin-detail/src/__tests__/RelatedList.unmaterializedSort.test.tsx:153 asserts:
expect(screen.queryByRole('button',{name: /Total/})).toBeNull()That assertion depends on objectSchema, which arrives from a different promise chain than the one the block's gate covers — getObjectSchema, via the effect at RelatedList.tsx:430. The block's gate settles the fetch chain. Nothing gates the schema chain.
The measurement
With getObjectSchema held pending:
- the block's gate passes
Quantity is presentTotal is STILL present — because withheldFromServerSort falls through to isUnmaterializedFieldType(undefined), which is false
⇒ :153 goes RED.
It is green today only because that effect is declared before the fetch effect and both mocks resolve on the first microtask. Nothing pins that ordering, and nothing declares it as a requirement.
⚠️ This is a THIRD class — do not fold it into either existing one
The distinguishing fact is that the block has a gate, and the gate is simply pointed at the wrong chain.
Why it is worth a card rather than a note
A flaky RED does not merely annoy — it ejects unrelated PRs from the merge queue.#6959 is the measured precedent: one racing test ejected two PRs that do not touch its package at all, one of which passed and failed on byte-identical content. That is the cost being carried here.
Suggested first step
⛔ Not a rewrite. Establish first whether the correct remedy is to gate the schema chain as well, or to make the assertion independent of it. #6959's own fix is the precedent worth reading before choosing: it kept the existing gate and added a second one, because the two gates prove different facts, and trading one for the other would have silently weakened the test.
Dedupe bound, stated rather than implied
Full-text issue search is unavailable to this seat (the endpoint has been refusing all day). The dedupe performed was a title-level scan over all 97 open pm:queue cards, plus the 8 open cards carrying finding. No match. ⚠️ That bound does not cover cards outside pm:queue, nor a card that mentions this site only in its body. If this duplicates something, close it against the original — the miss is the seat's.
Related: #6967 (the census this came out of, measured out), #6959 (the ejection precedent and the gate-substitution trap).
Seat session: https://claude.ai/code/session_013hfmP9hoMd3dJwTh85J4yB
Filed by the
domain:uiexecution seat out of #6967'splugin-detailslice. Measured there with a probe, carried in #6967's closing comment so it would not leave with that card, and filed here now that a dedupe was possible.The defect
packages/plugin-detail/src/__tests__/RelatedList.unmaterializedSort.test.tsx:153asserts:That assertion depends on
objectSchema, which arrives from a different promise chain than the one the block's gate covers —getObjectSchema, via the effect atRelatedList.tsx:430. The block's gate settles the fetch chain. Nothing gates the schema chain.The measurement
With
getObjectSchemaheld pending:Quantityis presentTotalis STILL present — becausewithheldFromServerSortfalls through toisUnmaterializedFieldType(undefined), which isfalse⇒
:153goes RED.It is green today only because that effect is declared before the fetch effect and both mocks resolve on the first microtask. Nothing pins that ordering, and nothing declares it as a requirement.
The distinguishing fact is that the block has a gate, and the gate is simply pointed at the wrong chain.
Why it is worth a card rather than a note
A flaky RED does not merely annoy — it ejects unrelated PRs from the merge queue.#6959 is the measured precedent: one racing test ejected two PRs that do not touch its package at all, one of which passed and failed on byte-identical content. That is the cost being carried here.
Suggested first step
⛔ Not a rewrite. Establish first whether the correct remedy is to gate the schema chain as well, or to make the assertion independent of it. #6959's own fix is the precedent worth reading before choosing: it kept the existing gate and added a second one, because the two gates prove different facts, and trading one for the other would have silently weakened the test.
Dedupe bound, stated rather than implied
Full-text issue search is unavailable to this seat (the endpoint has been refusing all day). The dedupe performed was a title-level scan over all 97 open⚠️ That bound does not cover cards outside
pm:queuecards, plus the 8 open cards carryingfinding. No match.pm:queue, nor a card that mentions this site only in its body. If this duplicates something, close it against the original — the miss is the seat's.Related: #6967 (the census this came out of, measured out), #6959 (the ejection precedent and the gate-substitution trap).
Seat session:
https://claude.ai/code/session_013hfmP9hoMd3dJwTh85J4yB