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

CrownyAI 터미널 앱 (crowny://app/터미널)

개요

CrownyBrowser(=CrownyAI)의 검증된 네이티브 앱 파이프라인(계산기렌더.sh/계산기액션.sh 템플릿)을 그대로 복제해, 진짜 셸 터미널 앱을 완성했다.

무엇을 했는지

  1. src/터미널앱.한선/tmp/터미널상태.psv(경로|cwd, 줄|출력줄 반복)를 읽어 화면.한선 DSL로 렌더. 다크 배경(#0A0908), 골드(#C9A961) 헤더/프롬프트, 최근 22줄 스크롤백, 하단 입력칸("터미널입력") + [실행]/[지우기] 버튼.
  2. src/터미널상태.한선TERM_ACTION 환경변수 처리:
- 실행: /tmp/입력상태.psv의 "터미널입력" 값을 명령으로 실행, "$ <명령>" 에코 + 결과를 줄|에 append(최대 200줄 유지), 입력값 비움. - 내장명령: 도움, 지우기, cd <경로>(존재검증), 크라우니 <요청>(상주뇌 127.0.0.1:9977/q → 미기동/MISS면 crownycode-brain.sh 1회), 클로드 <프롬프트>(claude -p, 60s), 에스텔 <질의>/건물 <하위명령>(각 /tmp/.toau 계약, 없으면 src/.한선 자가치유 컴파일, 그것도 없으면 "준비중" 안내 — 존재가드로 병렬작성 모듈 유무 무관 동작). - 그 외 = 실제 셸(cd <cwd> && <명령>), 출력 60줄/6000자 캡("...(잘림)"), 위험 명령(rm -rf /, shutdown, reboot 등) 차단.
  1. native/터미널렌더.sh + native/터미널액션.sh — 계산기 템플릿 복제. .toau 자가치유는 4항 mtime 비교(소스+hanseonc_high+crownyc) 적용. 액션.sh는 crowny-browser.m 제네릭 디스패치 계약(이름 또는 이름:인자)에 맞춰 실행/지우기/포커스:터미널입력 3종 분기, 포커스는 전역 키입력처리.toau(KEYCMD_FILE 계약)로 위임.
  2. src/앱목록.psv터미널|... 행 append(기존 행 무변경).

검증 (E2E, 헤드리스)

  • 터미널렌더.sh 단독 실행 → OK /tmp/터미널.ppm 1843215 (960x640 P6).
  • 클린 상태(터미널상태.psv 없음)에서도 기본 홈 경로로 정상 렌더(폴백 확인).
  • 포커스:터미널입력 클릭 시뮬레이션 → /tmp/입력상태.psv__포커스__|터미널입력 기록 확인.
  • 키입력처리 글로벌 계약으로 문자 주입 실증(단, 아래 이슈 참고) + 직접 PSV 주입으로 "ls /Users/ef/CrownyBrowser" 실행 → 실제 ls 결과 15줄이 줄| 항목으로 append됨, 재렌더 PPM 갱신 확인.
  • cd /tmp경로|/tmp 갱신 확인.
  • 도움 내장 명령 → 안내 문구 append 확인.
  • 크라우니 배열 정렬 1회 시도 → 상주뇌(9977) 응답 확인(MISS 응답도 정상 동작 — 스펙상 "미기동시 미기동 메시지"도 OK 조건).
  • 위험 명령(rm -rf /) → 실행되지 않고 차단 메시지 append 확인.
  • 지우기 버튼 → 스크롤백 전체 삭제(경로는 유지) 확인.
  • 에스텔 <질의> / 건물 <하위명령> → 병렬 작성된 src/에스텔QI.한선·src/건물제어.한선이 이미 존재해 실제 모듈 응답으로 통합 동작 확인(존재가드 정상).

관련 파일 경로

  • /Users/ef/CrownyBrowser/src/터미널앱.한선
  • /Users/ef/CrownyBrowser/src/터미널상태.한선
  • /Users/ef/CrownyBrowser/native/터미널렌더.sh
  • /Users/ef/CrownyBrowser/native/터미널액션.sh
  • /Users/ef/CrownyBrowser/src/앱목록.psv (append)

잔여 이슈

  • 키입력처리.한선의 공백 키 손실: 공유 전역 src/키입력처리.한선이 KEYCMD_FILE 내용 전체를 공백제거()로 트림하기 때문에, 스페이스바 단독 키 입력(KEY| )이 트림되어 빈 값이 되어 조용히 무시된다(예: "ls /Users/ef" 타이핑 시 공백이 빠져 "ls/Users/ef"가 됨). 이번 작업 범위(신규 4파일 + registry append)에는 해당 파일 Edit이 금지되어 있어 수정하지 않았다 — 다른 앱(메모 등)에도 동일하게 영향을 미치는 공유 인프라 버그이므로 별도 작업으로 처리 필요.
  • 크라우니 <요청> 경로는 실측상 상주뇌(9977)가 기동 중이었고 MISS 응답을 그대로 스크롤백에 노출한다(정상 동작, 별도 조치 불요).