Files
HMDesign/.storybook/qa/LAN-PREVIEW-REPORT.md
T

11 KiB
Raw Blame History

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. Optional LAN QA is described in 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://<QA_HOST_IPV4>:6008/

1. Worktree

  • Path: <TRACK_B_WORKTREE>
  • 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://<QA_HOST_IPV4>:6008/
  • Verified current IPv4: <QA_HOST_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. <QA_HOST_IPV4>: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초 짧음