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

CrownyAI 오피스 파일 관리 UI — ⌘N 새 문서(템플릿) + 파일 라이브러리(로컬+클라우드) + ⌘O 열기

개요

크라우니 오피스에 파일 관리 UI를 네이티브(ObjC)로 장착. 무로그인=로컬만, 로그인 시 crowny-ai(:9852) /api/office/list 클라우드 문서를 병합 표시. 병합/중복제거/출처태그/정렬·템플릿·새문서ID 로직은 한선씨 정본 native/파일관리.한선(자체시험 28/28).

무엇을 했는지

  • native/파일관리.한선 (신규, SSOT): 템플릿본문(빈/보고서/편지 3종)·새문서ID(제목살균+타임스탬프)·
목록병합(로컬+클라우드 dedup by 제목·출처태그 로컬/클라우드/양쪽·수정일 내림차순). merge CLI 모드 (CROWNY_LIB_MODE=merge, 로컬/클라우드 PSV 파일 + NOW). hanseonc_high 컴파일 + crownyc run 28/28 PASS.
  • crowny-ai-content.m (append): CAOfficeLibrary 카테고리 + CAOfficeLibraryWC(NSWindow+NSTableView)
  • caNewOfficeDocument: NSAlert 템플릿 선택(빈/보고서/편지)+제목 → caOpenOfficeInActiveTab 후
  • 편집영역 폴링(홈이면 "새 문서" 카드 1회 클릭→편집기 진입) → base64(JSON) 템플릿 본문 innerHTML 주입 + input 이벤트 + h1 제목 치환. 앱 번들 무수정.
  • caShowOfficeLibrary: 로컬(caLibGatherLocalPSV, 디렉토리 스캔)+클라우드(caLibFetchCloudPSV, Bearer
  • ownerToken GET list) → 파일관리.한선(merge toau, caOfficeRunVMStage 관용구 미러)로 병합 → 표(제목/출처/수정).
  • caOpenLibraryItemId: file:// → 로컬(caOpenOfficeCDFAtURL/새탭), docId → caOpenCloudDocId
  • (GET get?docId= → cdf base64 디코드 → .cloud-cache/ 기록 → caOpenOfficeCDFAtURL).
  • caBrowseLocalOfficeFile: "내 컴퓨터에서…" NSOpenPanel(로컬 열기).
  • crowny-ai-main.m (menu): 새 문서 ⌘N(신규)·파일 라이브러리… ⌘⇧O(신규)·열기… ⌘O→라이브러리.
  • 새 창은 ⌘N→⌘⇧N 재배치(New Document 표준 관례, 새 창 기능 무회귀).

    게이트 결과

    • 파일관리.한선 28/28 PASS · make ai 에러0(기존 butler.m 무관 경고 1건만) · ./CrownyAI 3초 생존.
    • 실측: ⌘N→보고서 템플릿 → 오피스 편집기에 제목없음/개요/본문/결론 랜딩("18단어·55자·모든 변경사항 저장됨") [스샷 crownyai_newdoc2.png].
    • 파일 라이브러리 → 로컬 cdf 목록 + 무로그인 노트 "로그인하면 클라우드 문서도 함께" [crownyai_library_nologin.png].
    • 클라우드: signup→save(base64 cdf)→list({docId,title,updatedAt,version})→get(cdf base64) 전구간 curl PASS.
    로컬+클라우드 병합(merge toau) 통합실측: 정렬·dedup(양쪽)·상대시각 정확.
    • 문서 회귀 회귀실행.sh 27/27 PASS. 기존 저장/열기/내보내기/로그인 무회귀(caOpenOfficeDocument 등 무수정).

    관련 파일

    • /Users/ef/CrownyBrowser/native/파일관리.한선 (신규 SSOT)
    • /Users/ef/CrownyBrowser/native/crowny-ai-content.m (CAOfficeLibrary 카테고리 append)
    • /Users/ef/CrownyBrowser/native/crowny-ai-main.m (File 메뉴 3항)

    잔여 이슈

    • 클라우드 저장 동기(⌘S→cloud upsert)는 다음 조각 D(이번은 열기까지).
    • dedup은 제목 기준 — 동일 제목 다른 로컬파일(예: 기본 "문서")은 1건으로 병합됨(의도된 중복제거).
    • 새 문서 템플릿 주입은 오피스 앱 "새 문서" 카드 클릭 경로 의존(앱 번들 무수정 원칙 — UI 텍스트 "새 문서" 매칭).