← 목록
기타 2026-07-18 4KB 읽기 4분

크라우니 오피스 플랜 #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종으로 충족).