CrownyAI 설계 재점검 + 한선씨 혼재 적대감사 (2026-07-11)
확정 설계: 터미널 4판 체계 (사장님 방향)
| 판 | 실체 | 역할 |
|---|
| 크라우니버전 | crowny://app/터미널 (crownyc VM 위 CrownyOS 라이브러리) | 철학 정본 + 크라우니 내장명령(크라우니/에스텔/건물) |
| 맥환경버전 | crowny-terminal-native (Cocoa+PTY, 125KB arm64 기존자산) | 클로드코드 등 TUI 실작업 |
| 윈도우환경버전 | 동일 소스 ConPTY (.exe 182KB 기존) | 〃 |
| 리눅스환경버전 | 동일 소스 (474줄) | 〃 |
- 하이브리드 판단: PPM 경로=명령형에 적합(명령당 ~100-290ms), TUI(클로드코드)는 불가 → PTY 네이티브판 몫.
적대감사 결과 (3병렬 + 재실행 1)
언어 혼재 (전수)
- 한선씨 87.7% (126,783/144,624줄). 단 src/v2 10.7만 줄=휴면(모든 빌드에 미배선, WPT 러너 279 파싱에러 부패), .bak 잔존 3.
- 정당한 예외: native/*.m 9,203줄(Cocoa/WebKit 플랫폼락), HTML 마크업, 3layer 파생문서.
헌법 위반 (실측)
- 페이지배선.py(489줄 Python): 11개 앱 렌더 핫패스 중앙, 동반 0. CIF 트릿 디코드·RLE·글리프캐시 실로직 전부 Python. "한선 렌더러 OOM 우회"라는 자기결함 우회 — 기술부채.
- 동반 적대검증 8쌍: 완전충실 0/8 — crowny-browser.한선=컴파일 실패 6.5% 스텁(설계문서 자백) / 브라우저-패키징.한선=체계()로 원본 bash 재호출 껍데기 / 탭종류판정·변종정책.한선=검증 통과하나 완전 고아(미배선) / index.html·make-app.sh·set-default-browser.m·페이지배선.py=동반 전무.
- 건강 사례: crowny_tier.m ↔ 티어판정.한선 = 역방향 SSOT(한선이 정본, .m은 폴백).
실버그 (감사가 확정)
- Enter 배선 전무 — Return이 \r 문자로 입력값에 누적될 뿐 (P0 수정 착수).
- /tmp 전역 상태파일·CROWNY_HITMAP 미지정 — 멀티탭 시 웹탭 링크 히트맵을 앱 렌더가 덮어씀(재현 가능) (P0 수정 착수).
- 키1타=VM 콜드스폰 3회, 90~290ms(스크롤백 선형) — 근본 처방=상주 VM 세션+부분렌더 (P1 설계).
로드맵
- P0(진행중, 병렬): 크라우니판 Enter 배선+히트맵 앱별 격리+네이티브 터미널 런처 / 맥판 B1 마감(TIOCSWINSZ·ANSI 보강·번들).
- P1: 상주 VM 세션(소켓 IPC)+부분 재렌더 설계 / 페이지배선.py 한선 이식(또는 명시 예외 등록+enforce 대기열).
- P2: src/v2 처분 결정(빌드타깃 승격 vs 휴면 명시), WPT 러너 수리, 동반 장식 2건 실질화, .bak 정리, 상태파일 탭ID 네임스페이스.