# HMDesignSystem Storybook LAN Preview > HISTORICAL_RECORD — observations from the 2026-10-07 Track B QA session, including ports, processes and validation status. These are not current server availability or general execution instructions. The current Storybook default is **6024**; follow the [official execution guide](../../docs/guidelines/publisher-distribution-guide.md). Optional LAN QA is described in [LAN-PREVIEW.md](LAN-PREVIEW.md). The private address and old worktree path are neutral placeholders; historical results remain unchanged. Result: **PARTIAL** — same-host LAN Preview is READY. A second physical PC was unavailable, so cross-PC access and cross-PC HMR remain NOT_VERIFIED. TEMP_STORYBOOK_URL: http://:6008/ ## 1. Worktree - Path: `` - Branch: `chore/storybook-cleanup` - HEAD: `6b4a39e4e9fef7cd706630ffc72b5e97e8696823` - Remote: `https://gitea.hmac.kr/b25027/HMDesign.git` - Track A Modified: **NO** - Track A remains clean on `main`, HEAD `4e2402e6cb3507c4bb5e58549004323db59b66a8`. ## 2. Storybook Server - Installed binary: Storybook **10.6.1** from Track B node_modules; dependencies already existed, so npm ci was unnecessary. - Port: **6008**; Bind: **0.0.0.0**; Server: **RUNNING** - LAN listener PID at verification: **23804** - Command: `node node_modules/storybook/dist/bin/dispatcher.js dev -p 6008 --host 0.0.0.0 --no-open --disable-telemetry --exact-port` - Local: http://localhost:6008/ - LAN: http://:6008/ - Verified current IPv4: **** (Ethernet 3); this is a temporary LAN address, not a permanent URL. - The old LAN process was started on 6007 and had fallen back to 6008. Only that confirmed Track B LAN process was replaced with explicit 6008/exact-port operation. The existing localhost-only Track B process (PID 33604) was preserved; both addresses use the same worktree and matched 289 Story IDs. - package.json's official **6007** script was unchanged. Track A and other ports/processes were not stopped. - Server stdout/stderr are in ignored `.storybook/qa/lan-preview.*.log` files. PIDs are session observations, not durable shutdown instructions. ## 3. LAN Verification - localhost: **PASS**, HTTP 200 and Button render - LAN IP Same Host: **PASS**, HTTP 200; manager, sidebar, preview, navigation and representative stories loaded - SECOND_PHYSICAL_PC: **NOT_VERIFIED** - HMR localhost: **PASS** - HMR LAN Same Host: **PASS** - HMR Second Physical PC: **NOT_VERIFIED** - A temporary visible `HM LAN HMR QA` paragraph was inserted into GNB All. Both origins displayed it without reload. Removal was also applied by HMR; the Story file was restored to its exact pre-probe SHA-256. No temporary probe remains. - Existing firewall policy was inspected: Public network profile, enabled firewall profiles and pre-existing inbound Node allow rules. Firewall rule additions: **NO**. Network profile changes: **NO**. ## 4. Storybook Chrome - Top Bar: **#266651 PASS** (`rgb(38, 102, 81)`) - Toolbar icon/text: **#FFFFFF PASS** (all sampled button/SVG computed colors were white) - Bottom Panel: **DEFAULT_HIDDEN PASS** - Alt+A: **PASS**, panel opened with Controls/Actions/Interactions; hidden state restored afterward - Preview Rail: **0px PASS**, preview main border-left and padding-left measured 0px - Final browser viewport overrides were reset, and a LAN Dashboard tab remains available in Codex. ## 5. Viewports Measured in Chrome, browser zoom 100%, Storybook zoom 100%, devicePixelRatio 1: - 1280: **PASS** — iframe / innerWidth 1280; innerHeight 900; GNB nav visible - 1024: **PASS** — iframe / innerWidth 1024; innerHeight 900; GNB nav visible; LNB column visible - 1023: **PASS** — iframe / innerWidth 1023; innerHeight 900; GNB nav hidden; LNB column hidden and Local mobile bar visible - 390: **PASS** — iframe / innerWidth 390; innerHeight 844; mobile UI visible - GNB Mobile Menu Open automatically selected 390 × 844 and its Sheet was visible. - Existing LNB `hmMobile` preset still selected 390 × 844. Its service-menu Sheet opened successfully, including the nested three-depth menu. - **Browser limitation:** the Codex in-app browser had a fractional-width anomaly at the 1023 boundary: rounded innerWidth was 1023 but both max-width 1023 and min-width 1024 media queries returned false. Chrome passed both boundaries. Production CSS and breakpoints were not changed; exact boundary QA should use Chrome. ## 6. Representative Stories LAN rendering and navigation checks passed for: - Button: **PASS** — representative variants/sizes/state board - GNB: **PASS** — four viewport measurements and mobile menu - LNB: **PASS** — representative board, both embedded standalone iframes, desktop/mobile boundary and mobile Sheet - Dashboard: **PASS** — current heading, status filter and data table rendered - Calendar: **PASS** — single/disabled/range/two-month board - Date Picker: **PASS** — empty/selected/format/controlled/size/disabled board - Theme Designer: **PASS** — editor/live preview and successful application of `/themes/default.json` and `/themes/service-example.json`; reset to HM Default afterward - CENTER: **PASS** — Title compositions and Tunnel reference render These are targeted rendering/navigation/responsive checks, not a full interaction or accessibility audit of every Story. ## 7. Story Cleanup - Story Files: **61**; Stories: **289** - Hierarchy: **Foundation → Components → Patterns → Center Graphic → Theme** - PRIMARY: **65** - VERIFICATION: **211** - UTILITY: **13** (executable verification, compatibility and playground tools) - Proven LEGACY / DUPLICATE: **0** - KEEP: **65**; HIDE: **224** through the existing verification filter - MERGE_CANDIDATE: **31**, advisory possible overlap with representative boards; all retained - DELETE_CANDIDATE: **0**; deleted stories: **0** - Full source-defined meta.title, Story export/name and meta/story/custom effective tags: `STORY-INVENTORY.md` and `story-inventory.json`. - Framework-injected dev/test/manifest tags are in compiled index.json rather than the source-tag inventory. - Before / built / inventory Story IDs: **289 / 289 / 289**, with no missing, added or renamed IDs. - LNB `iframe.html?id=patterns-layout-lnb--standalone-desktop` and `--standalone-mobile` references were found and both nested frames rendered. - Own Story change: GNB Mobile and Mobile Menu Open now start on global `hmMobile390`. Existing global presets, sorting, verification filtering and LNB 390 configuration were retained. ## 8. Errors - Console: **no new errors observed** in the representative checks or final LAN tab; no Story not found, manager/addon or HMR errors observed after verification. - Network: **no asset 404 observed**. Direct LAN HTTP probes returned 200 for the font, two Theme JSON files, preview CSS, Vite client, manager JS and checked Story modules. LNB nested previews loaded successfully. - Known browser warning: Storybook 11 will require PopoverProvider ariaLabel. It was already present in the initial observation. - Known build warnings: documentation-example `bg-[var(...)]` CSS optimizer warning, chunks over 500kB, and Vite plugin timing notices. The repository's existing reports already document the CSS/chunk warnings. They did not fail the build. - Git emitted LF/CRLF normalization notices; `git diff --check` still passed. ## 9. Validation - `npm run typecheck`: **PASS**, exit 0; generated Theme defaults matched, both workspace typechecks passed - `npm run build-storybook`: **PASS**, exit 0; local ignored `storybook-static/` output only - `git diff --check`: **PASS**, exit 0 - Final integration validation source stability: **PASS**, no TS/TSX/JS/CSS/HTML files changed during the final check window - During an earlier validation window, another active task changed Dashboard Story/CSS. Those changes were preserved, and integration checks were rerun against the stable final source state, including the later concurrent changeDetection option in main.ts. ## 10. Parallel Safety - packages/**: **UNCHANGED** (Production source; git clean for protected paths) - themes/**: **UNCHANGED** - package.json / package-lock.json: **UNCHANGED** - Protected file SHA-256 comparison: **277 files, 0 changes** from this session's baseline - Track A: **UNTOUCHED**, clean main and same HEAD - Package source edits: **NO** - package publish: **NO**; package version changes: **NO** - Runtime Theme contract/loader, exports/CSS contract and Gitea CI/CD changes: **NO** - Publishing Page QA / Publishing staticDirs / official hosting work: **NOT PERFORMED** ## 11. Git Own changed/new files: - `src/patterns/gnb.stories.tsx` - `.storybook/qa/generate-inventory.mjs` - `.storybook/qa/story-inventory.json` - `.storybook/qa/STORY-INVENTORY.md` - `.storybook/qa/LAN-PREVIEW.md` - `.storybook/qa/LAN-PREVIEW-REPORT.md` Pre-existing or concurrent changes were preserved: `.storybook/main.ts`, `.storybook/manager.css`, `.storybook/preview.tsx`, `.storybook/preview-head.html`, `src/patterns/dashboard-layout.stories.tsx`, its Story-only CSS, `src/theme/designer-theme.stories.tsx`, and the six files in `src/foundation/`. - Commit: **NOT CREATED** - Merge: **NOT PERFORMED** - Rebase / cherry-pick: **NOT PERFORMED** - No automatic main integration or push was performed. ## 12. Status - LAN TEMP PREVIEW: **READY** for Storybook cleanup and same-host LAN QA - Official Static Hosting: **NOT CONFIGURED** by this batch - This URL is an official deployment URL: **NO** - Other physical PCs can be declared verified: **NO**, pending actual cross-PC access ## Required answers 1. Storybook Worktree execution: **YES**, Track B. 2. Execution on main: **NO**. 3. 6008 bound to 0.0.0.0: **YES**. 4. localhost:6008 opens: **YES**. 5. :6008 opens on the same PC: **YES**. 6. Opens from another physical PC: **NOT_VERIFIED**. 7. Missing cross-PC verification explicitly marked: **YES**. 8. Top Bar #266651 maintained: **YES**. 9. Toolbar icon/text white: **YES**. 10. Bottom panel default hidden: **YES**. 11. Preview rail 0px: **YES**. 12. 1280 preset available and measured: **YES**. 13. 1024 preset available and measured: **YES**. 14. 1023 preset available and measured: **YES**. 15. 390 preset available and measured: **YES**. 16. GNB/LNB 1024→1023 transition: **PASS in Chrome**, in-app-browser caveat above. 17. Story HMR works: **YES**. 18. Same-host LAN receives HMR changes: **YES**; cross-PC HMR **NOT_VERIFIED**. 19. New console errors observed: **NO**. 20. Asset 404 observed: **NO** in checked resources/screens. 21. Track A modified: **NO**. 22. Package source modified: **NO**. 23. Package publish repeated: **NO**. 24. Official deployment URL: **NO**. 25. Current preview usable for Storybook cleanup: **YES**; second physical PC validation remains outstanding. ## Time tracking (Asia/Seoul) - Started At: 2026-10-07 15:31:24 KST - Completed At: 2026-10-07 15:56:10 KST - Actual Duration: 24분 46초 - Estimated Duration: 35~50분 - Variance: 예상보다 10분 14초 ~ 25분 14초 짧음