- `docs/` 를 .gitignore 에서 빼 git 추적 대상으로 전환 (위키·완료 이력·검증 기록) - `docs/raw/PLAN.md` · `docs/raw/OWNERS.md` 를 저장소 최상위로 이동 후 .gitignore 에 등록 — 창끼리 공유하되 저장소에는 안 올리는 장부 - 살아 있는 경로 참조 7개 파일 정정 (아카이브 107건은 그때 사실이라 그대로 둠) - graphify 날짜별 산출물(`docs/wiki/graphify-out/20*/`) 제외 — `graphify update` 가 다시 만듦 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
3.7 KiB
이 문서는
docs/raw/PLAN.md의 「다음 작업」에서 이관된 아카이브입니다. 검증 보고서:docs/raw/verification/2026-08-02_verify_panel_height_first_render.md대상 커밋:bc02fcc
[C06] B06 상단 패널 — 저장된 높이가 첫 렌더에 반영되지 않는 결함 수정
출처: C05 검증 보고서 [F1] (docs/raw/verification/2026-08-02_verify_mass_haul_multi_curve.md)
증상: 패널을 줄여 둔 세션에서 B06에 다시 들어오면 패널 높이는 복원되지만 차트 높이 배분이 기본값으로 계산돼 종단면도가 20px로 잘려 사실상 사라진다. 창 크기를 조금이라도 바꾸면 정상으로 잡힌다(자가 치유).
| 시점 | 패널 | 종단도 | 유토곡선 |
|---|---|---|---|
| 첫 렌더 직후 | 296px (정상 복원) | 20px | 190px |
| 재렌더 후 | 296px | 99px | 111px |
C05 검증 보고서 [F1] 표에는 종단도 재렌더값이
129px로 적혀 있으나 이는chartHeights()의 계산값이고 실측 렌더 높이는 99px이다. 결함의 성격과 원인 진단에는 영향이 없다.
원인: B06_wf3_ProfileCross_UI_Section_View.ts의 draw()가 root.replaceChildren(panel, …) 이전에 drawPanel()을 호출한다. 첫 렌더 시점의 panel은 아직 root에 붙기 전(detached)이라 getComputedStyle(panel).getPropertyValue("--b06-profile-height")가 빈 문자열을 반환하고, panelHeight()가 BASE_PANEL_HEIGHT(506)로 폴백한다. 리사이저가 남긴 값은 인라인 스타일에는 정상적으로 들어가 있다.
구조 자체는 C02에서 유입됐으나, C05로 차트가 둘이 되면서 배분 실패가 종단면도 소멸로 확대됐다.
수정 방향 — panelHeight()가 인라인 스타일을 먼저 읽고 없을 때만 computed로 폴백한다(detached 상태에서도 동작).
const panelHeight = (): number => {
// 첫 렌더 때 panel은 아직 root에 붙기 전이라 getComputedStyle이 빈 값을 준다.
// 리사이저가 남긴 인라인 변수부터 읽어야 저장된 높이가 첫 화면부터 반영된다.
const inline = Number.parseFloat(panel.style.getPropertyValue("--b06-profile-height"));
if (Number.isFinite(inline) && inline > 0) return inline;
const raw = Number.parseFloat(getComputedStyle(panel).getPropertyValue("--b06-profile-height"));
return Number.isFinite(raw) && raw > 0 ? raw : BASE_PANEL_HEIGHT;
};
체크리스트
panelHeight()수정 (위 방향) —_UI_Section_View.ts:201-209, 437줄sessionStorage["b06:profile-panel-height"]에 값이 있는 상태로 B06 첫 진입 시 종단도/유토곡선 높이가 재렌더 결과와 일치하는지 브라우저로 확인- 저장값이 없는 기본 상태에서 기존 동작(220/190)이 그대로인지 회귀 확인
prettier+tsc --noEmit
완료 조건: 패널 높이를 줄여 둔 뒤 페이지를 다시 열어도 창 크기를 건드리지 않고 두 차트가 올바른 비율로 나온다.
자체 검증 결과 (프로그래머 수행)
판정 기준은 첫 렌더 = 재렌더다. 결함이 있으면 첫 렌더만 어긋난다.
| 시나리오 | 첫 렌더 (패널/종단/유토) | 재렌더 | 판정 |
|---|---|---|---|
| 저장값 296px (기본 미만) | 296 / 99 / 111 | 296 / 99 / 111 | 일치 |
| 저장값 없음 (기본) | 496 / 220 / 190 | 496 / 220 / 190 | 일치 (회귀 없음) |
| 저장값 700px (기본 초과) | 700 / 220 / 384 | 700 / 220 / 384 | 일치 |
- 기본 초과 시 종단도는 220 고정, 늘어난 몫을 유토곡선이 흡수 —
chartHeights()의 설계 의도대로다. prettier --write변경 없음,tsc --noEmit오류 0건, 파일 437줄(700줄 이하).