Integrate the SW home (logo) menu into SWHeader for SW general mode only. SW viewer mode code and stories are unchanged. - Resolve conflicts: keep both sw-home-menu and sw-viewer exports; renumber AI docs (catalog viewer 8->9, patterns home menu 7->8, design rules home menu 11->12) - SWHeader: start the home menu after the file name when it sits inside controls, so the file name stays visible - AI guides: mark home menu as general-mode only; forbid it in viewer mode (AI_USAGE, catalog, design rules, patterns, VIEWER.md, AI_GUIDE) - Tests: ignore wildcard identifiers in ai-docs check; update expected Storybook SW titles (SW/Tool removed, SW/Viewer added) - Add merge QA report docs/sw/sw-home-menu-merge-2026-10-19.md
4.3 KiB
4.3 KiB
홈 메뉴 Merge — integration/sw-home-menu → feature/sw-package (2026-10-19)
로컬
git merge --no-commit --no-ff integration/sw-home-menu(기준b434f27, 대상1472e51). Merge Commit·Push는 하지 않았습니다(승인 대기).
적용 범위 (사용자 정정 반영)
- 홈 메뉴(Figma 45개 노드,
SWHeader homeMenu/SWHomeMenu/SWRecentFiles)는 SW 일반 모드 전용입니다. - SW 뷰어 모드(
SWViewer*)에는 홈 메뉴를 적용하지 않습니다. 뷰어 코드·Story는 변경하지 않았습니다(sw-viewer소스에 홈 메뉴 참조 없음). - AI 지침: AI_USAGE §0.2 표에 "로고(홈) 버튼 메뉴" 행(일반 =
homeMenu, 뷰어 = 사용하지 않음), §0.3 혼합 금지 항목, 카탈로그 §5·DESIGN_RULES §12·PATTERNS 8의 "일반 모드 전용" 표기, VIEWER.md 잘못된 사용 행, 공통 AI_GUIDE 예시 B/B2.
충돌 해결
| 파일 | 해결 |
|---|---|
packages/sw/src/index.ts |
두 Export 모두 유지(sw-home-menu, sw-viewer) |
ai/AI_USAGE.md |
뷰어 모드 문장 유지 + 홈 메뉴 문장 추가 |
ai/COMPONENT_CATALOG.md |
홈 메뉴 §5 추가, 이후 6 타입·7 비공개·8 제약, 뷰어 §8 → §9(참조 갱신: AI_USAGE, VIEWER.md, DESIGN_RULES §11) |
ai/COMPOSITION_PATTERNS.md |
뷰어 7 유지, 홈 메뉴 7 → 8, 하지 말 것 8 → 9 |
ai/DESIGN_RULES.md |
뷰어 §11 유지, 홈 메뉴 §11 → §12 |
docs/sw/sw-home-menu-integration-2026-10-19.md의 "패턴 7절, 디자인 규칙 11절"은 통합 당시 기록이라 그대로 둡니다(현재 번호는 위 표).
Merge 중 추가 수정
| 파일 | 내용 | 이유 |
|---|---|---|
sw-header/SWHeader.tsx |
홈 메뉴 시작 위치 = max(객체 수정 영역, controls 안 파일명 오른쪽) − 2px |
controls로 파일명이 객체 수정 영역 안에 있는 Header(실제 SW 화면)에서 메뉴가 파일명을 덮음(x 63 → 378). 기본 Header 배치는 동일(캡처 바이트 동일) |
tests/ai-docs.check.mjs |
`SWViewer*` 같은 와일드카드 표기를 Export 이름으로 보지 않음 |
Merge 전 뷰어 문서에서도 실패하던 오탐 |
tests/home-menu-integration.browser.mjs |
Story 목록 기대값에서 SW/Tool 제외, SW/Viewer 포함 |
SW/Tool은 뷰어 작업(7f42923)에서 사용자 요청으로 삭제됨 |
검증
| 항목 | 결과 |
|---|---|
SW typecheck / 앱 tsc -b / SW build / Storybook build |
PASS / PASS / PASS / PASS |
AI 문서(check:ai-docs, ai-docs.check.mjs) |
PASS / 32/32 |
홈 메뉴 Storybook(home-menu-integration.browser.mjs, 배치 수정 후 재실행) |
22/22 |
기존 Header·Popup 기능(integrated-improvement options·popup) |
89/0 |
뷰어 Story 기능(viewer.browser.mjs, 참고 뷰어 없이) |
70/70 |
Merge 전(b434f27) 대비 픽셀: Header·Popup 요소(viewer-regression) / SW Header·Popup·Viewer 전체 Story 48장(1440·768, threshold 0) |
39/39 / 48/48 동일 (배치 수정 전 측정, 수정은 메뉴가 열린 동안만 실행) |
| Figma 26:10591 | 현재 Figma 원본 = 저장 이미지(바이트 동일). 섹션 5·타일 15·크기 80×46·메뉴 1305×77·색·아이콘 일치. 글자는 Figma Dotum 14/12px vs HM Noto Sans KR(기존 "폰트 차이 · 디자인 승인 대기") |
실제 SW 화면(D:\디자인시스템\HMDesignSwTest, 0.2.0 로컬 tarball) |
typecheck·build PASS, 브라우저 14/14(열기·다시 클릭 닫기·Hover #FF5C00·최근파일·Escape 순서·문서 Dropdown·속성 패널 토글). 콘솔 404 1건은 앱의 /favicon.ico 없음(기존) |
NOT VERIFIED
SW/Tool섹션 회귀(Story 삭제됨), 참고 DWG/DXF 뷰어 대비 비교, Firefox·Safari, SW + HM UI CSS 동시 사용, Registry Publish.- 배치 수정 후 Header·Popup·Viewer 픽셀 회귀 재실행(코드 경로상 메뉴가 닫혀 있으면 실행되지 않아 재사용).
- 실제 SW 화면의 미연결 타일 12개(저장·복사저장·내보내기·도면묶기·복구하기·임시파일·Display·저장하기·불러오기·설명보기·문의하기·S/W정보): 뷰어 앱에 해당 기능이 없어 실행 동작 없음(
toggle: false, 툴팁 "뷰어에서 지원하지 않는 기능"). - 실제 SW 화면은
logoSrc를 주지 않아 로고 면이 비어 있음(기존 상태).