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

크라우니 오피스 — 포커스 punch #5: 프로젝트 뷰 실데이터화

개요

크라우니 오피스 포커스(GTD) 모듈의 프로젝트 사이드바 목록·프로젝트 뷰 진행률이 하드코딩(데모)이던 것을 실제 tasks[]에서 파생·실계산으로 전환. 앱 번들(index.html) 무수정 — crownyBridge.js §22 installFocusBridge 확장.

무엇을 했나

  1. 프로젝트 파생: tasks[]를 project 필드로 그룹핑(중복제거·"—"제외·첫등장순서). 사이드바 정적 3행
(v1.0 출시/마케팅 사이트/다음 버전 아이디어)을 DOM-fixup으로 파생 목록 대체 → 작업 없는 "다음 버전 아이디어"는 자연 소멸(진짜 파생). 각 행 = "▸ 이름" + 완료/전체 카운트 + 얇은 진행률 바 + 클릭 필터.
  1. 진행률 실계산: 완료100/전체(%). ★VM 함정 = 곱 먼저(done100) 후 나눗셈, 0작업 가드. 프로젝트 뷰
projRows override(renderVals 후처리)로 하드코딩 "12/16 완료" → 실측 "1/4 완료 · 25%". 완료 토글 시 즉시 갱신.
  1. 프로젝트 필터: view 문자열을 프로젝트명으로 세팅(KNOWN_VIEWS 밖) → 원본 inView 기본통과라 vals.tasks[k]↔tasks[k]
정합 위에서 project===view 필터. 살아있는 카드 closure(select/toggle/flag) 그대로 재사용. 7뷰 클릭 시 자동 해제.
  1. 정합: 추가/삭제/편집(project 변경)·완료 토글마다 파생·진행률 재계산(매 렌더/fixup).
  2. 몽키패치 안전: 서명멱등·상한없는 폴링·중복리스너 0·모듈 게이트. 앱 파일 무수정. 브릿지 주입 후 첫 grab에
1회 nudge(재렌더)로 override 반영(멱등 __crownyFocusNudged).

한선씨 정본

  • bundle/office/bridge/포커스프로젝트.한선 — 그룹핑·진행률(곱먼저·0가드)·필터·다음작업·상태 파생.
hanseonc_high 컴파일 + crownyc run 28/28 PASS.

관련 파일

  • bundle/office/bridge/crownyBridge.js §22 (installFocusBridge 확장, §19/20/21 무간섭)
  • bundle/office/bridge/포커스프로젝트.한선 (정본, 28/28)
  • bundle/office/bridge/포커스프로젝트검증.js (CDP :9333 self-contained 검증 하니스, 22/22)

게이트 결과

  • 한선 28/28 · JS syntax OK · CDP 실측 22/22(①사이드바 파생 ②진행률 실계산 ③완료토글 live ④프로젝트 필터
⑤추가/삭제 재계산, before/after 증명) · 문서 회귀 27/27 · 포커스 #1~#4 무회귀(퀵애드·제목편집·날짜파서 spot) · ./CrownyAI 3초 생존.

잔여 이슈

  • dist/CrownyAI.app Resources의 crownyBridge.js는 punch#1~#4 시점(구본) — 배포 패키징 재실행 시 punch#5 반영
(repo bundle=SSOT, 앱은 dev-run 시 bundle 폴백 경로로 punch#5 라이브).
  • 프로젝트 뷰 overview 카드 자체 클릭 필터(현재는 사이드바 행이 셀렉터) · 순차/병렬 실규칙은 데이터 모델에 없어
상태(진행중/완료/시작전)로 대체(정직 파생).