3.1 KiB
P7/D15 Track B — Adversarial Review Record
Multi-agent review of the Track B error-state diff (
e797926..cce3ef0): 5 per-screen reviewers → 3-lens adversarial verification (correctness / state-machine-races / reproduction; confirmed if ≥2 of 3 vote real). 38 agents, ~2.3M subagent tokens. Fixes in9f3cf2a.
Tally
11 findings → 2 confirmed / 9 refuted. Both confirmed were in B4 (Files), one root cause.
| # | Sev | Votes | Screen | Finding | Disposition |
|---|---|---|---|---|---|
| 1 | MED | 2/2 | files | Cross-directory nav failure: stale entries from the prior dir keep files.length>0, so the offline && files.length===0 error gate is skipped → a failed /sub load renders "Empty directory" + a contradictory "showing cached files" banner |
FIXED — loadedPath (set only on success); cold-error gate = offline && !haveCurrentData where haveCurrentData = loadedPath===currentPath. Regression test: nav into a failing subdir → error, not empty. |
| 2 | LOW | 2/2 | files | A known-empty dir ([] loaded OK) then a failed refresh → files.length===0 → false "Couldn't load files" for a dir we proved empty |
FIXED — same loadedPath signal: a failed refresh keeps haveCurrentData true → falls through to "Empty directory", not the cold error. Regression test: context-menu Refresh → reject → stays empty. |
Both fixed together by replacing files.length inference with an explicit loadedPath
load-outcome signal, making error / empty / cached-banner mutually exclusive regardless of
stale cross-directory data. loading initial state flipped to true so the first paint
isn't a false empty.
Refuted (9, all 0–1/3)
The panel correctly dismissed every other finding, several with detailed traces:
- Room "error UI dead in production" (HIGH, 1/3) — claimed real SSE failures (401/drop)
never set
error. Refuted: the adapter's reconnecting EventSource handlesonerrorinternally (close→backoff→token-refresh→reopen) and surfaces nothing to the hook by design (D3 SSE-revival contract).errorcorrectly fires only on a synchronous subscribe throw; the async path is the adapter's job, not a Track B regression. - Approvals partial-success / poll-flash (HIGH+MED, 0/3) — the single
errordoes not defeat partial success:allSettledstill renders the fulfilled source; a transient poll failure resolving to error-then-heal is the intended 5s-cadence behavior. - Room
connectingsync-flip, error∧tiles coexistence (MED+LOW, 0/3) — whenerroris truthy the event callback never ran, soworkspaceMapis empty and the ungated tile blocks are unreachable; no state combo renders tiles beside the error. - Command Center boundary/portal, searchDegraded race (0/3), B5 filter-masking / gate-coverage (0/3) — traced and dismissed.
Gate (post-fix)
FE 897/897 · tsc 0 (apps/web) · lint 0. 9f3cf2a.
Note: several verifier agents hit a weekly model limit mid-run; both confirmed findings reached a clean 2/2 and the load-bearing refutals completed, so the verdict is sound.