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

CrownyAI 8앱 벡터 이식 잔여 마감 — 메모/할일 텍스트 입력 + 북마크 실데이터·열기 배선 (2026-07-24)

개요

07-23 「8앱 벡터 이식 완료」의 잔여 3건 중 2건을 마감(sonnet 에이전트 2기 병렬 + 메인 세션 통합검증). 남은 1건=GUI E2E(앱 재시작 후 육안)만.

무엇을 했는지

1. 메모/할일 텍스트 입력 (워드 입력코어 패턴 → 공용 입력코어 재사용)

  • 디스패처(src/앱상주서버.한선): 메모/할일의 비-액션 이벤트(FOCUS/KEY/BS/캐럿류)를 _메모_키이벤트처리/_할일_키이벤트처리로 위임(터미널의 _키명령처리 경로와 동일 계열). 메모본문 필드 4000자 캡 추가.
  • 메모(src/앱서비스_메모.한선): 본문 클릭=편집 진입(기존 내용을 입력상태로 적재) → 타이핑/캐럿/멀티라인 편집뷰(_메모_편집렌더) → SAVE로 영속. ObjC 무수정.
  • 할일(src/앱서비스_할일.한선): 입력칸(할일입력) 클릭 포커스 → 타이핑 → ENTER 또는 [추가]로 새 할일. 빈 입력 시 구 타임스탬프 동작 보존(무회귀).
  • ENTER 프로토콜(신규 규약): ObjC Return은 KEY|\r로 오지만 서버 _줄정리()가 후행 \r 트림 → 인자가 빈 KEY = Return 신호(결정론 — ObjC 무수정 판별).
  • 멀티라인 함정: /tmp/입력상태.psv·메모저장.psv가 1줄=1레코드 → raw \n = 레코드 파손(소켓 스모크에서 실버그 적발·수정). 개행은 \n 2글자 리터럴 센티넬 인코딩.

2. 북마크 실데이터 + "열기" ObjC 소비 배선

  • 모듈(src/앱서비스_북마크.한선): 데모 PSV 대신 실 celdb($CROWNY_DATA_DIR 또는 ~/Library/Application Support/CrownyAI/data/북마크.celdb, 헤더4줄+TAB행) 직결. 삭제/추가도 헤더 보존 celdb 반영. celdb 부재 시만 데모 폴백.
  • ObjC(native/crowny-ai-engine.m sendVectorEvent 말미): 북마크열기: 액션 성공 시 /tmp/북마크_열기요청.txt 소비 → CAOverlayHistoryNavigate post(content.m 기존 구독이 navigateTo: 수행 — 신규 배관 0) → 파일 삭제. 북마크삭제/추가crowny.ai.bookmarksChanged post(북마크바 갱신).

3. 통합 검증 (메인 세션)

  • 동시 세션의 워드 모듈화(앱서비스_워드.한선 추출, 서버 2390→1708줄)와 병합 상태에서 STRICT 컴파일 exit0·경고0.
  • 격리 시험 서버(:19815, CROWNY_DATA_DIR 격리)에서 종단 스모크: 시계/워드/터미널 회귀 + 북마크 실데이터 렌더·열기(crowny://office) + 메모 편집뷰·캐럿 RECT·ENTER 2행·저장(\n 센티넬) + 할일 ENTER 추가(te|진행) 전부 PASS. 공유 /tmp 상태파일 원복.
  • make ai + install-ai-app.sh 설치·재서명 + 심볼가드(ASCII strings + 한글 UTF-16LE 바이트스캔) PASS.

관련 파일

  • src/앱상주서버.한선 · src/앱서비스_{메모,할일,북마크}.한선 · native/crowny-ai-engine.m (백업 .bak-입력이식 / .bak-북마크실데이터)
  • 학습: 앱서비스_메모_텍스트입력코어 · 앱서비스_할일_입력칸추가 · 북마크_celdb실데이터로드폴백
  • 세부: 2026-07-24-crownyai-북마크-celdb실데이터-열기배선.md(에이전트 산출) · 선행 2026-07-23-crownyai-8앱-벡터이식-완료.md

잔여 이슈

  1. GUI E2E — ObjC 반영은 앱 재시작 필요(서버측 .한선은 다음 벡터 요청 시 mtime 자가치유 재컴파일로 자동 반영). 재시작 후 crowny://app/메모·할일·북마크 육안 확인 요.
  2. 메모 BS가 \n 센티넬 반쪽만 지우는 1키 코스메틱(다음 BS 자가치유) — 후속 다듬기 후보.
  3. 워드 프로덕션 Enter가 같은 _줄정리 트림 영향인지 확인 후속(워드 모듈화 세션 영역).
  4. celdb 3열 레거시 값(light/dark)이 분류 자리 — 배지색 기본값 폴백으로 표시(날조 없음).