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

크라우니 오피스 플랜 모듈 완성 (punch #1~#11)

개요

크라우니AI 브라우저 내장 오피스의 플랜 모듈(ModulePlan) = 간트/보드(칸반)/리소스 3뷰 프로젝트 계획 도구. 3뷰 뷰어에서 실작동 프로젝트 관리 도구로 완성. 앱 번들 무수정 원칙 하에 crownyBridge.js §24 installPlanBridge 신규 섹션(13132줄) + 한선씨 정본 미러로 구현.

착수 시점 상태

담당 칩·인건비 단가는 이미 실state 편집(계획형 첫 hoist-불필요 편집). 실 16/데모 10/없음 12. T[] 스케줄 본체는 로컬 const. 최대 함정 = 인덱스 5중 결합(sel·owners·deps·starts·statusOf 전부 T[] 배열 인덱스).

무엇을 했는지 (11 punch)

  • #1 T[] hoist + 작업명/기간 편집(플랜모델.한선 24/24). ★핵심: sel을 id로 바꾸자 원본 renderVals가 T['p3'] 크래시로 DOM 전소 → sel/owners 숫자 계약 보존, deps/starts/status만 필드 흡수로 원본 공존
  • #2 작업 추가/삭제 + 인덱스 5중 결합 정합(owners 맵 키 시프트 재작성·sel 보정·dep 정리, 플랜편집.한선 34/34)
  • #3 칸반 카드 컬럼간 드래그=status 전이(실마우스·드롭 하이라이트·그룹/같은컬럼 no-op, 플랜칸반.한선 22/22)
  • #4 간트 막대 드래그 일정변경(본체=start·우핸들=dur·좌핸들=start+dur 끝고정·주 스냅·최소1주·마일스톤 리사이즈 차단, 플랜간트.한선 29/29)
  • #5+#6 의존선 SVG(막대 좌표 추종) + 자동 임계경로(CPM 위상정렬 최장경로, 하드코딩→계산, 순환 방어, 플랜의존.한선 29/29)
  • #7+#8+#10 그룹 접기(num 계층) + 줌 일/주/월(막대·눈금 스케일) + 키보드(방향키 선택/접기·Enter 편집, 플랜뷰.한선 41/41). punch#5 의존선 SVG scrollWidth 피드백 버그 수리
  • #9+#11 리소스 로드 실계산·과할당 자동감지(담당×주 부하) + 플랜→포커스 실연동(할일 주입·이벤트버스, 플랜리소스.한선 31/31)

검증

  • 각 punch: hanseonc_high 자가검증 + CDP 실측(before/after, 실마우스/실키 dispatch) + 문서 27/27 + 플랜 앞 punch 무회귀
  • 배포: CrownyAI 1.6.1→1.7.0-beta (punch별 증분), 착수전 wc -l·완료후 크기 재확인·백업(절단 사고 대비)

핵심 교훈

  • 원본 renderVals 공존 제약: 앱 번들 무수정이라 원본 renderVals가 계속 실행됨 → state 계약(sel number, owners index맵)을 깨면 원본이 크래시. hoist는 원본이 안 보는 필드만 흡수, 인덱스 계약은 시프트 재작성으로 정합.
  • inline style 정규화·DCLogic element 렌더·scrollWidth 피드백 등 오피스 dc 브릿지 공통 함정 반복 확인·수리.

관련 파일

  • bundle/office/bridge/crownyBridge.js §24 installPlanBridge (13132줄, 앱번들 무수정)
  • bundle/office/bridge/플랜{모델,편집,칸반,간트,의존,뷰,리소스}.한선 (정본 미러 7종)
  • spec/플랜기능-판정표.md

잔여 이슈 / 다음

  • cdf 실저장(tasks·owners·rates): 시트 @@SEC 패턴 미러로 후속
  • 줌 시 주-컬럼 날짜 헤더 라벨은 주 단위 고정(그리드·막대만 스케일)
  • Phase 4 마지막 순서 = 그래프
  • 완성 모듈: 시트(10)·슬라이드(10)·마인드맵(8)·포커스(9)·아웃라인(9)·플랜(11) — 오피스 실작동 축 6개