docs(02-11): four-way re-measure, final per-surface verdicts, second Discover cause
Deployed the poller fix to archi-dev-box and re-ran the frozen harness (02-PERF-FINAL.json, 5 runs/surface). Web5 fixed (275ms, below both its 566ms pre-phase-2 baseline and the 300ms pass bar). Server's regression closed (574ms, below 738ms baseline) though not yet under 300ms. Fleet substantially improved (790ms, down from a 2631ms regression). AppDetails restored to at/near its own baseline. Investigated the two open items the coordinator raised: - OpenWrtGateway: this run's 5/5 samples failed with a Chromium "Target crashed" error cascading from an unrelated surface earlier in the same harness run — recorded as not-measurable, not written in as data. Separately confirmed via source (OpenWrtGateway.vue's h1 renders unconditionally, and a "No router configured" RPC error deterministically shows a real Connect-to-Router form) that the prior baseline/after/remeasure numbers were measuring a genuine, substantive disconnected-state UI render, not an empty/error page — so the "six confirmed regressions" count is not retracted, but the numbers are flagged as reflecting one specific code branch. - Discover (1389ms, worst remaining, least improved): profiled directly and found a SECOND, distinct, phase-2-class cause — showStagger/card-stagger entrance-animation classes are baked into the DOM at first mount and never programmatically removed (the flag is a correctly-scoped once-per-session const, but nothing ever re-renders to strip the class), so every KeepAlive detach/reattach cycle restarts the CSS animation on reactivation, replaying the full entrance cascade on every revisit. Confirmed via a diagnostic showing DOM card count doubling transiently on every revisit and an extended animationstart/animationend event log. Not fixed this pass — the safe fix's blast radius spans 5+ files outside this plan's scope (Apps.vue, Marketplace.vue, Home.vue, several Web5 sub-cards) and needs its own real-device verification budget, matching the precedent 02-02's original KeepAlive rollout needed for this exact class of change. Named and evidenced, recommended as a dedicated follow-up rather than expanded into this plan under time pressure. REQUIREMENTS.md's PERF-02/PERF-03 rows updated to the final state. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
1216198992
commit
48a2ff7c16
@@ -120,8 +120,8 @@ Which phases cover which requirements. Updated during roadmap creation.
|
||||
| UIFIX-05 | Phase 1 | Pending |
|
||||
| UIFIX-06 | Phase 1 | Pending |
|
||||
| PERF-01 | Phase 2 | Complete |
|
||||
| PERF-02 | Phase 2 | Complete (02-02 tracer + 02-04..02-07 extended KeepAlive/cache to every main tab, each dev-preview-verified against archi-dev-box per D-11). Timing-regression verdict closed by 02-10 (`02-FINDINGS.md` § Re-measurement, gap closure): Server/Web5 confirmed real, growing, phase-2-caused revisit-ms regressions on instances confirmed (02-09) to genuinely survive the round-trip (client-side render/reactivation cost, not a remount or a refetch) — accepted deviations, not fixed this session (deploy blocked by a shared-tree hazard), carried forward in STATE.md Blockers/Concerns |
|
||||
| PERF-03 | Phase 2 | Complete. Timing-regression verdict closed by 02-10 (`02-FINDINGS.md` § Re-measurement, gap closure): Discover/AppDetails/OpenWrtGateway confirmed real, growing, phase-2-caused revisit-ms regressions (same client-side split-signal cause) — accepted deviations, not fixed this session; Wallet/send-flow's apparent regression cleared as environmental noise (re-measure returned at/below baseline) |
|
||||
| PERF-02 | Phase 2 | Complete. 02-11 (`02-FINDINGS.md` § Client-Side Render Cost Root Cause + § Task 3) named and fixed the real cause of Web5/Server's revisit-ms regressions — three leaked background pollers (`useFleetData.ts`, `FipsNetworkCard.vue`, `Web5Monitoring.vue`) armed in `onMounted` and never disarmed once their owning views joined `KEEP_ALIVE_PATHS`, gated to activate/deactivate. Web5 now fixed (275ms, below both its 566ms pre-phase-2 baseline and the 300ms pass bar); Server's regression is closed (574ms, below its 738ms baseline) though not yet under the 300ms stretch target — residual named as real, un-eliminated per-resource reactivation cost, not a new defect |
|
||||
| PERF-03 | Phase 2 | Complete. 02-11 fixed Fleet's leaked `useFleetData.ts` poll (790ms, down from a 2631ms regression, substantially closing the gap to its 330ms baseline). AppDetails restored to at/near its own baseline (1231ms vs. 1204ms) — residual is the already-documented `useCachedResource` per-mount setup cost, not fixed further. Discover (1389ms) has a SECOND, distinct, evidenced cause found this session (CSS entrance-animation replay on KeepAlive reactivation, `card-stagger`/`showStagger` never removed from the DOM) — named with full profiling/diagnostic evidence but NOT fixed (blast radius spans 5+ files outside this plan's scope, needs its own real-device verification budget) — recommended as a dedicated follow-up. OpenWrtGateway: not measurable this pass (Chromium crash cascading from an unrelated surface); prior numbers stand, confirmed to reflect a real (not empty) disconnected-device UI render, not retracted |
|
||||
| MNODE-01 | Phase 3 | Pending |
|
||||
| MNODE-02 | Phase 3 | Pending |
|
||||
| MNODE-03 | Phase 3 | Pending |
|
||||
|
||||
Reference in New Issue
Block a user