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 = 레코드 파손(소켓 스모크에서 실버그 적발·수정). 개행은\n2글자 리터럴 센티넬 인코딩.
2. 북마크 실데이터 + "열기" ObjC 소비 배선
- 모듈(
src/앱서비스_북마크.한선): 데모 PSV 대신 실 celdb($CROWNY_DATA_DIR또는~/Library/Application Support/CrownyAI/data/북마크.celdb, 헤더4줄+TAB행) 직결. 삭제/추가도 헤더 보존 celdb 반영. celdb 부재 시만 데모 폴백. - ObjC(
native/crowny-ai-engine.msendVectorEvent 말미):북마크열기:액션 성공 시/tmp/북마크_열기요청.txt소비 →CAOverlayHistoryNavigatepost(content.m 기존 구독이navigateTo:수행 — 신규 배관 0) → 파일 삭제.북마크삭제/추가→crowny.ai.bookmarksChangedpost(북마크바 갱신).
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
잔여 이슈
- GUI E2E — ObjC 반영은 앱 재시작 필요(서버측 .한선은 다음 벡터 요청 시 mtime 자가치유 재컴파일로 자동 반영). 재시작 후 crowny://app/메모·할일·북마크 육안 확인 요.
- 메모 BS가
\n센티넬 반쪽만 지우는 1키 코스메틱(다음 BS 자가치유) — 후속 다듬기 후보. - 워드 프로덕션 Enter가 같은
_줄정리트림 영향인지 확인 후속(워드 모듈화 세션 영역). - celdb 3열 레거시 값(light/dark)이 분류 자리 — 배지색 기본값 폴백으로 표시(날조 없음).