Resolves #17625
Two rows of the #17596 census failed with Received: undefined and a row count of zero, and were classified — by me, and independently corroborated by @neo-gpt from the same failure text — as a real product defect. They are not. The possession hand-off works; the witness was holding the wrong object.
Related: #17596 · #17598
Evidence: L3 (live drill on the real cockpit, component census read through Neural Link, mutation-verified both directions) → L3 required (the claim is about which mounted instance a running journey resolves). No residuals. ⚠️ The e2e layer does not gate in CI — #17596 owns that finding — so these receipts are local-run.
AC Evidence
| Acceptance criterion |
Evidence |
| AC-1 |
FleetMailboxTabNL:58 and :237 pass on dev, resolving the AgentDetail tab's pane by identity: the DOM node inside .fm-agent-detail, whose element id is the component id (verified live — neo-fm-mailbox-pane-2). |
| AC-2 |
Load-bearing control, mutation-verified. Reverting resolution to first-match reproduces the original failure on both rows (Expected: "neo-opus-ada", row count 0). The helper additionally fails naming wanted vs available ids rather than letting undefined surface three assertions downstream. |
| AC-3 |
Resolution does not depend on queryComponent ordering — it matches an id obtained from the tab's own DOM subtree. |
| AC-4 |
No production change. One spec file. |
| AC-5 |
The corrected classification is posted on #17596 (comment) so the next reader does not re-inherit "real product defect". |
Deltas from ticket
The drift probe changed what I trusted before I wrote a line. #17596's diagnosis predates two merges that touched this exact surface — #17593 (the roster animate and select PR) and #17594. Since the failing assertion is about a selection hand-off and a selection PR landed after the census, I re-measured rather than inherit. Both rows still failed, but one recorded detail had already gone stale: the expected agent had moved from neo-gemini-pro to neo-opus-ada while the failure shape held. That is why the single-seam reading survived and the recorded owner did not.
I checked for a leak before concluding "spec defect". pane-1 (unmounted, parent neo-fm-operator-mailbox-1) and pane-2 (mounted, holding the drilled record) — a leaked instance and two legitimate instances are different defects with opposite owners, and the error text cannot tell them apart. pane-1 is the Operator Mailbox's own pane, legitimately mounted elsewhere; "fixing" it by destroying it would break that surface.
Rejected the cheaper fix. Filtering on mounted === true passes today only because the Operator pane happens to be unmounted during this journey. That is a coincidence the spec would then depend on, and it would silently re-break the day both surfaces are mounted. Identity states the intent.
Test Evidence
agentos/FleetMailboxTabNL — 2/2 green at this head.
- Mutation both ways: first-match → both rows red with the original signatures; identity → green.
- Instance census, read live during the drill (the measurement that inverted the diagnosis):
[{id: neo-fm-mailbox-pane-1, agentId: null, mounted: false, parentId: neo-fm-operator-mailbox-1}, {id: neo-fm-mailbox-pane-2, agentId: "neo-opus-ada", mounted: true}].
- Full directory re-run —
npm run test-e2e -- test/playwright/e2e/agentos --workers=1: 43 passed, 0 failed (no Playwright failure artifacts written). Stated carefully: this is not evidence that these two rows caused the census's 17 reds. #17598/PR #17599 and several other PRs merged between the census and now, and the test count itself differs from the census's 62 — the surface moved. What this run supports is that the directory is green at this head, not an attribution.
Post-Merge Validation
None required — every acceptance property is asserted at this head.
Authored by Grace (Claude Opus 5, Claude Code). Session eb671e6e-ca17-4a53-8069-64fd5885ce84.
Resolves #17625
Two rows of the #17596 census failed with
Received: undefinedand a row count of zero, and were classified — by me, and independently corroborated by @neo-gpt from the same failure text — as a real product defect. They are not. The possession hand-off works; the witness was holding the wrong object.Related: #17596 · #17598
Evidence: L3 (live drill on the real cockpit, component census read through Neural Link, mutation-verified both directions) → L3 required (the claim is about which mounted instance a running journey resolves). No residuals. ⚠️ The e2e layer does not gate in CI — #17596 owns that finding — so these receipts are local-run.
AC Evidence
FleetMailboxTabNL:58and:237pass ondev, resolving the AgentDetail tab's pane by identity: the DOM node inside.fm-agent-detail, whose element id is the component id (verified live —neo-fm-mailbox-pane-2).Expected: "neo-opus-ada", row count0). The helper additionally fails naming wanted vs available ids rather than lettingundefinedsurface three assertions downstream.queryComponentordering — it matches an id obtained from the tab's own DOM subtree.Deltas from ticket
The drift probe changed what I trusted before I wrote a line. #17596's diagnosis predates two merges that touched this exact surface — #17593 (the roster animate and select PR) and #17594. Since the failing assertion is about a selection hand-off and a selection PR landed after the census, I re-measured rather than inherit. Both rows still failed, but one recorded detail had already gone stale: the expected agent had moved from
neo-gemini-protoneo-opus-adawhile the failure shape held. That is why the single-seam reading survived and the recorded owner did not.I checked for a leak before concluding "spec defect".
pane-1(unmounted, parentneo-fm-operator-mailbox-1) andpane-2(mounted, holding the drilled record) — a leaked instance and two legitimate instances are different defects with opposite owners, and the error text cannot tell them apart.pane-1is the Operator Mailbox's own pane, legitimately mounted elsewhere; "fixing" it by destroying it would break that surface.Rejected the cheaper fix. Filtering on
mounted === truepasses today only because the Operator pane happens to be unmounted during this journey. That is a coincidence the spec would then depend on, and it would silently re-break the day both surfaces are mounted. Identity states the intent.Test Evidence
agentos/FleetMailboxTabNL— 2/2 green at this head.[{id: neo-fm-mailbox-pane-1, agentId: null, mounted: false, parentId: neo-fm-operator-mailbox-1}, {id: neo-fm-mailbox-pane-2, agentId: "neo-opus-ada", mounted: true}].npm run test-e2e -- test/playwright/e2e/agentos --workers=1: 43 passed, 0 failed (no Playwright failure artifacts written). Stated carefully: this is not evidence that these two rows caused the census's 17 reds. #17598/PR #17599 and several other PRs merged between the census and now, and the test count itself differs from the census's 62 — the surface moved. What this run supports is that the directory is green at this head, not an attribution.Post-Merge Validation
None required — every acceptance property is asserted at this head.
Authored by Grace (Claude Opus 5, Claude Code). Session eb671e6e-ca17-4a53-8069-64fd5885ce84.