From 0a080be1f800d4be648b225e66a9b0b3adb84645 Mon Sep 17 00:00:00 2001 From: "n.siegfried" Date: Fri, 14 Aug 2026 18:54:32 -0500 Subject: [PATCH] T2.1 - B1 part 1: the drawer is already one shared component; verified, not rebuilt No code change. T2.1 asks to lift the drawer out of "three near-copies" into one shared implementation. There are no copies to lift. html/wp-sidenav.js and html/wp-sidenav.css are already a single implementation included by admin, field view and directory. .wp-sidenav, .wp-navscrim and .wp-navbtn are each declared in exactly one file, and no page defines its own drawer. The review's sentence was that the drawer "ships on 3 of 6 pages while a flat strip duplicates it" - the duplication is between the drawer and the flat strip, not among three drawers. The plan read "3 of 6 pages" as "3 copies". It already satisfies every T2.1 done-when, including the one that could have failed: activeProjectId() at wp-sidenav.js:62-68 reads ?project= and falls back to ProjectData.getActiveId(), which is the single source T1.1 established. It also self-mounts into .wp-appbar OR .header and returns early inside an iframe, so it is already built for the pages T2.2 has to put it on. Refactoring a single shared component into a single shared component would be churn with regression risk and nothing gained, so nothing was touched. Recorded as file-map D5 so the next reader does not go looking for the copies either. The real work of this wave is T2.2. Co-Authored-By: Claude Opus 5 (1M context) --- docs/reference/file-map.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docs/reference/file-map.md b/docs/reference/file-map.md index 23a1e45..3be9a2d 100644 --- a/docs/reference/file-map.md +++ b/docs/reference/file-map.md @@ -296,6 +296,27 @@ input and goes looking for a rename. `backlog.md:16` contains `path/to/file.js:120` inside a fenced format template. It is a placeholder, not a reference — do not resolve it. +### D5 — `T2.1`'s premise is already satisfied: there are no "three near-copies" + +`wave-2.md:25` asks to "lift the drawer into one shared implementation the pages include, +rather than three near-copies". There are no copies. `html/wp-sidenav.js` (221 lines) and +`html/wp-sidenav.css` (90 lines) are already **one** implementation, included by admin, +field view and directory. Verified: `.wp-sidenav`, `.wp-navscrim` and `.wp-navbtn` are +declared in exactly one file, and no page defines its own drawer. + +The review said the drawer "ships on 3 of 6 pages while a flat strip duplicates it". The +duplication is between the drawer and the **flat strip**, not among three drawers. The plan +appears to have read "3 of 6 pages" as "3 copies". + +It already meets every `T2.1` done-when as it stands, including the last one: `activeProjectId()` +(`wp-sidenav.js:62-68`) reads `?project=` then falls back to `ProjectData.getActiveId()`, which +is the single source `T1.1` established. It also self-mounts into `.wp-appbar` **or** `.header` +and returns early inside an iframe, so it is already built to go on the remaining pages. + +**Consequence:** `T2.1` is a no-op beyond this verification. The real work of wave 2 is `T2.2`. +Nothing was refactored, because refactoring a single shared component into a single shared +component would be churn with regression risk and no gain. + ### D4 — the creator overflows horizontally at 1440px, not just at 390px Measured during `T0.2`, not in the review. Content width against the viewport it was given: