크라우니 오피스 플랜 #9 리소스 로드+과할당 · #11 모듈연동 (마지막 punch)
개요
플랜(간트) 모듈 브릿지(§24 installPlanBridge) 최종 확장. 판정표 미해결 2건 완료:
- #9 리소스 로드 편집 + 과할당 자동 감지 — 하드코딩 resData/⚠경고를 tasks 실계산으로 대체.
- #11 모듈 실연동 — 플랜 → 포커스("작업을 할일로") 실배선(이벤트버스+스냅샷+버퍼드레인).
앱 번들 무수정(§24 몽키패치만). 문서 27/27 + 플랜 #1~#8,#10 + 타 모듈 무회귀.
무엇을 했나
#9 리소스 로드 실계산 (하드코딩 제거)
planResData(self): 담당(owner 오버레이 우선) × 주(6) 부하 실계산. 작업이 걸치는 주 = 막대 left%/width%에서 파생. 비그룹·비마일스톤 작업 1건당 100% 누적. 한 담당 한 주 2작업+ = 200%+ = 과할당(>100).
- VM 함정(주 범위 floor): 크라우니 나눗셈=자연반올림 →
planFloorDiv로 주 인덱스 floor(예 65×6/100=3, 반올림이면 4 오류).
- 과할당은 heat() red outline로 자동 표시 +
planResFixupNow가 하드코딩 "⚠ 현우 120%" 텍스트를 실감지 요약("⚠ 현우 2주차 200% 과할당")으로 DOM-fixup 대체.
- 담당 재배정(owners)·기간 변경(width)·추가/삭제가 즉시 재계산. rates 단가 편집 기존작동 무회귀.
#11 플랜 → 포커스 연동
exportPlanToFocus(): 비그룹 작업 → 포커스 할일(§22 makeTask 스키마) 변환, window.__crownyPlanPendingFocus 버퍼 적재, window.__crownyOfficeBus.emit('plan.task.exported'), 스냅샷 저장, 즉시 드레인 시도.
drainPlanToFocus(): 포커스 마운트(§22 __crownyFocusSelf) 시 tasks에 project='플랜' 주입(중복 스킵), plan.focus.synced emit. 폴러가 상시 재시도 → 포커스 미마운트여도 나중에 반영.
planLinkFixupNow: 인스펙터 죽은 "연결 QA 체크리스트" 장식을 "→ 포커스로 작업 내보내기" 실 액션으로 승격.
한선씨 정본
bundle/office/bridge/플랜리소스.한선 (hanseonc_high 컴파일 PASS, 자가검증
31/31): 주범위 floor·담당별 주부하·과할당 감지/요약·인건시간·담당재배정·기간변경 재계산·플랜→포커스 변환.
게이트 결과 (실측)
한선씨: 플랜리소스.한선 31/31.
문서 회귀: 27/27 PASS (회귀실행.sh, headless Chrome CDP :9333).
플랜 CDP 실측(before/after):
#9 resData 실계산=준영[100,0,0,100,0,0]·소연[0,100,...]·현우[0,100,100,...] (구 하드코딩 준영[90,60,40,80,30,0]과 완전 상이 → 실계산 증명).
재배정 p3 소연→현우 → 현우 2주 200% 과할당 자동감지 (count 0→1, DOM 텍스트 "⚠ 현우 2주차 200% 과할당").
기간 p2 1주→2주 → 준영 2주 부하 0→100 재계산.
#11 내보내기 5작업 → 이벤트 plan.task.exported → 포커스 진입 → pending 5→0 드레인 → 포커스 tasks에 project='플랜' 5건 주입 + plan.focus.synced{added:5}.
회귀 #1~#8,#10: taskCount 8·criticalIds 자동·boardCounts{2,2,1}·zoom·keyN=추가·durToWidth 33·depEdges 6·projectLen 7·collapse 8→6·barMove p6→8/10 전부 정상.
파일: crownyBridge.js 12933→13132줄(+199), 856KB, node --check OK(절단 없음). app/index.html md5 무변(=dist). §19~§23·crowny-browser.m·crowny-shell.m·Makefile 무수정.관련 파일
/Users/ef/CrownyBrowser/bundle/office/bridge/crownyBridge.js (§24 확장)
/Users/ef/CrownyBrowser/bundle/office/bridge/플랜리소스.한선 (정본, 신규)
/Users/ef/CrownyBrowser/spec/플랜기능-판정표.md (#9·#11)
잔여 이슈
- 리소스 뷰는 6주 고정 그리드(원본 스케일). 줌(일/월)과 주 컬럼 수 연동은 범위 외.
- 플랜→시트/문서 내보내기(#11 대체 경로)는 미구현(포커스 1종으로 충족).