요청: 크라우니-입력도구
- 날짜: 2026-07-11 20:03:49
- 작업 경로: /Users/ef/CrownyOS/crownyc
요청 본문
커맨드+조합 버튼 작동 안됨. 입력창 클릭 시 I자 캐럿 활성화 신호 필요. 기존 터미널 학습해서 기본 입력도구화 — 문서작성기·프리젠테이션·스프레드작성기에 기본 적용될 공용 컴포넌트로
관련 산출
(클로드가 작업 결과를 이어 기록)
관련 산출 (2026-07-11 완료 — 재검증 포함)
크라우니 입력도구 v1 (공용 컴포넌트)
- Cmd콤보 근본원인: Edit 메뉴(⌘X/C/V/A)가 키를 performKeyEquivalent에서 선소비하는데 CrownyAppView에 표준 액션(cut:/copy:/paste:/selectAll:)이 없어 갈 곳이 없었음 → 표준 액션 구현으로 해소 (keyDown 가로채기 아님 — 도달 불가였음).
- 입력코어.한선 정본(역방향 SSOT): 버퍼·캐럿·선택·중간삽입·HOME/END/SELALL/PASTE/CLICKCARET. 상태계약
이름|값|캐럿|선앞|선뒤(2필드 하위호환). 재검증: LEFT×2→KEY|X 중간삽입 "aXbc|4|0|4" 정확. - 시각 피드백: I빔 hover(resetCursorRects), 캐럿 0.5s 깜빡(비활성 탭 정지), 선택 하이라이트 — 픽셀 토글 재검증(144B 차이).
- 방향키가 제어문자를 버퍼에 넣던 잠복 버그도 수정. 계산기/메모 회귀 무사, 터미널 echo E2E 재확인, 3곳 배포 sha 동일(8f4e2426).
- 확산 가이드: 입력칸() 서명 불변이라 문서작성기·프리젠테이션·스프레드작성기는 그대로 채택 가능 (상세: 2026-07-11-크라우니-입력도구-v1.md).
- 잔여: 실GUI 클릭·⌘V 사용자 실측 / Shift+방향 선택은 v2 / 조합중 캐럿은 말단 고정.
네이티브 터미널(맥·윈·리눅스) 한/영 — OS 추종 통일
- 맥: 죽은 keyDown+델리게이트 핵이 조합 자모를 조각으로 PTY에 흘리던 실버그 → PtyTextView(NSTextInputClient 표준 패턴) 교체. 하네스 8/8, "안녕"·"붙여넣기테스트" PTY 바이트 정확(오케스트레이터 재실행 PASS).
- 윈: WM_IME_COMPOSITION(GCS_RESULTSTR)→UTF-8→PTY + 후보창 커서 고정, imm32 링크, MinGW 크로스 exit0 (실기기 검증 잔여).
- 리눅스: VteTerminal IME 내장 — 무수정 확인. 한선씨 동반 입력라우팅.한선 10/10.
- 정책 통일: "OS가 한/영 결정(맥·윈 한영키 그대로), 조합=브라우저 앱은 크라우니 조합기 / PTY 터미널은 OS IME 표준 수용".
22:42:32 추가 요청
PPM 터미널: 글씨 입력 느림(키당 전체 재렌더) → 순간 에코+디바운스 재렌더. 출력(에러 안내 등) 복사 안 됨 → 스크롤백 선택·복사(줄 클릭 복사, Cmd+Shift+C 전체복사)
라이브 회귀 수정 (2026-07-11 — 사용자 실측 "입력 안됨/흐림/aaaa")
- 근본원인=전역 포커스 누수: /tmp/입력상태.psv __포커스__ 가 전 앱 공유. 메모 탭이 "새메모"에 포커스 남긴 채 터미널 탭 전환 → 터미널 타이핑이 새메모로 오라우팅, 터미널칸엔 옛 테스트 잔재 "aaaa"만 표시(입력 안 되는 것처럼 보임). 흐림=960×640 프리워밍 PPM이 큰 창에 스트레치(활성화 시 창크기 재렌더 안 됨).
- 수정: viewDidMoveToWindow(탭 활성화)에 appDefaultInputForService(터미널→"터미널입력") 포커스 클레임 + renderAndReload(현재 창크기 선명 재렌더) 추가. 메모 등은 nil(클릭 포커스 기존 동작 유지). 검증: 메모 포커스 잔존 상태에서 FOCUS 클레임→키가 터미널입력에만 append·메모값 보존. 배포 sha 3곳 동일.
- 교훈: 사용자 지적 "입력칸이 그냥 그림"=정확. PPM은 정적 래스터라 포커스/입력이 전역 상태파일에 의존 → 앱 전환 시 포커스 클레임 필수. P2 탭격리(상태파일 앱별 네임스페이스)가 이 클래스의 근본 처방.