← 목록
기타 2026-06-22 8KB 읽기 9분

크라우니메신저 — 의미어코드 4자 채팅, CrownyVM→OS 위계 구동

개요

kps(사람) + 세 에이전트(kpsmacs·kpswin·kpsmaci)가 한 채팅방에서 작업요청/디버깅요청/회신을 주고받는 메신저. 핵심은 의미어코드: 보이기는 자연어지만 네트워크·디스크에는 자연어가 한 글자도 저장되지 않고 의미어 id 열거(코드)만 흐른다. CrownyVM 위 CrownyOS 위 앱으로 위계 부팅되어 구동된다.

  • 머신: kpsmacs=이 애플실리콘맥(서버 본체, 공인망 앵커), kpswin=윈도우, kpsmaci=인텔맥
  • 포트: 9939 / 게이트웨이 msg.crowny.org
  • 위치: /Users/ef/CrownyOS/apps/메신저/kps/

무엇을 했는지

1. 의미어코드 코덱 (키스톤) — 의미어코드.한선

  • 자기완결형 138 의미어 사전(조사·동사·명사 어절 단위, 작업/디버깅/회신 도메인)
  • 의코_인코딩(사전, 문장) → 코드열거("43.0.1.41.44") + 리터럴("9090") + 적중/미지
  • 의코_디코딩(사전, 코드, 리터럴) → 자연어 복원
  • 수치/고유명사 등 미등록 토큰 = 코드 0 + 리터럴 채널로 이관
  • 라운드트립 4/4, 작업도메인 커버율 95%
  • 예: "포트 9090 으로 서버 만들어줘" ↔ 코드 43.0.1.41.44 + 리터럴 9090

2. 메신저 서버 — 메신저서버.한선 (:9939)

  • HTTP 폴링(게이트웨이 프록시 가능), 검증된 소켓 논블록 루프 재사용
  • 코드열거만 저장·중계 (자연어 본문 미저장 = "실제로는 코드 열거" 증명)
  • 4자 고정 참여자 검증(위조 발신자 거부), 메시지 유형 1=작업요청 2=디버깅 3=회신 4=알림
  • WAL 영속화: 시각^발신^룸^유형^코드^리터럴 (/Users/ef/crowny-data/메신저/wal.log)
  • API: /api/msg/{status,참여자,poll,send}

3. 클라이언트

  • 메신저도구.한선 — 코덱 CLI(MODE=enc/dec/stat/test, ASCII 환경변수 입력)
  • 메신저.sh — 송신(자연어→인코딩→전송) / 수신(폴링→디코딩→자연어 표시) / 현황 / 참여자
  • 메신저원격.sh — kpswin/kpsmaci용(CROWNY_MSG_URL=https://msg.crowny.org)

4. CrownyVM→CrownyOS 위계 결선

  • OS 앱레지스트리(crownyc/apps/os/크라우니OS.한선)에 메신저=5 등록
+ APP_메신저()[OS→VM exec] apps/메신저/kps/메신저서버.toau 발행
  • OS 진입점에 CROWNY_OS_RUN=<앱> 직행 부팅 경로 추가(브라우저에도 재사용 가능)
  • 메신저위계부팅.sh — 층1(VM이 OS부팅) → 층2(OS가 exec 발행, 호스트 포착) → 층3(VM이 서버 데몬 실행)
  • start-fg 포그라운드 모드 = LaunchAgent 감독용

5. 영속화 / 노출

  • LaunchAgent org.crowny.kpsmsg(KeepAlive) — 위계로 부팅, 자가복구 검증 완료
  • 게이트웨이 gateway.yaml: crowny-msg → msg.crowny.org → 127.0.0.1:9939

준비단계 / 실용단계

  • 준비단계: 의미어코드 사전 구축 + 현황 체크(메신저.sh 현황 → 사전규모·커버율)
  • 실용단계: 4자가 자연어로 작업/디버깅/회신을 주고받되 내부는 코드열거로 송수신

검증 결과

  • 코덱 라운드트립 4/4, 커버율 95%
  • 서버 송신/회신/위조거부/폴링 정상, WAL에 코드만 저장 확인
  • 4자 송수신 end-to-end 정상 (메신저.sh)
  • 위계 부팅 end-to-end: VM→OS(직행 메신저)→exec 포착→서버 데몬 :9939 LISTEN
  • LaunchAgent KeepAlive 자가복구 확인(kill→재기동)

관련 파일

  • /Users/ef/CrownyOS/apps/메신저/kps/의미어코드.한선 (코덱 라이브러리)
  • /Users/ef/CrownyOS/apps/메신저/kps/메신저서버.한선 (서버, :9939)
  • /Users/ef/CrownyOS/apps/메신저/kps/메신저도구.한선 (코덱 CLI)
  • /Users/ef/CrownyOS/apps/메신저/kps/메신저.sh (클라이언트)
  • /Users/ef/CrownyOS/apps/메신저/kps/메신저원격.sh (원격 클라이언트)
  • /Users/ef/CrownyOS/crownyc/apps/os/크라우니OS.한선 (앱레지스트리 메신저=5 + 직행부팅)
  • /Users/ef/CrownyOS/메신저위계부팅.sh (위계 런처)
  • /Users/ef/Library/LaunchAgents/org.crowny.kpsmsg.plist (영속화)
  • /Users/ef/crowny-gateway/gateway.yaml (crowny-msg 라우트)

잔여 이슈

  • msg.crowny.org 원격 활성화: 게이트웨이 재기동(gw restart) + DNS A레코드/인증서 발급 필요.
로컬 위계 구동은 완료. 원격 3머신 실접속은 cowork 세팅 동기화(tier3) 후 메신저원격.sh.
  • 의미어 사전 확장: 현재 138개. 의미어팩(205) / 어휘행렬(충돌제로) 연동으로 커버율↑ 여지.
  • 실시간성: HTTP 폴링(읽기 명령). 필요 시 세션브릿지(:9789) heartbeat/claim 패턴 도입.
  • 암호화: 코드열거 자체가 1차 난독화. 필요 시 단순대칭암호(기존 자산) 추가.

후속 완료 (2026-06-23) — 원격 활성화 + 사전 확장

① msg.crowny.org 원격 활성화 ✅

  • DNS는 와일드카드로 이미 해석(→112.144.147.144 공인앵커).
  • gateway.yaml 엔트리 FQDN 교정(crowny-msg→msg.crowny.org→9939) + gw sync.
  • gw reload(kickstart) 시 전역 503 wedge 발생(알려진 함정) → gw doctor 안내 → pkill gwlive + launchctl kickstart org.crowny.gateway + 콜드스타트 워밍 → 4도메인(crowny/docs/cowork/msg) 전부 200 복구.
  • 공개경로(8443 SNI) end-to-end 검증: kpswin이 https://msg.crowny.org 로 전송 → 로컬 디코딩 성공.
  • 한글 경로 함정: /api/msg/참여자가 게이트웨이서 퍼센트인코딩돼 매칭실패 → ASCII 별칭 /api/msg/members 추가(원격 견고성). 서버 재컴파일+위계 재부팅.

② 의미어 사전 확장 ✅

  • 138 → 364 의미어(append-only, 기존 단어 순서 불변 → 기존 WAL 코드 43.0.1.41.44→"포트 9090..." 불변 검증). 라운드트립 4/4, 커버 95% 유지.
  • 개발/디버깅/회신/조사·연결어 대폭 추가(데드락·무한루프·롤백·마이그레이션·검토중·인수인계 등). 예: "데드락 때문에 무한루프 디버깅 해줘"→187.0.189.76.16+리터럴"때문에".
잔여: 원격 443 실접속은 라우터 포워딩 의존(로컬 8443 SNI 검증됨). kpswin/kpsmaci는 CrownyOS apps/메신저/kps 동기화 후 메신저원격.sh.


후속 완료 (2026-06-23) — 원격 3머신 무인 부트스트랩

문제: 원격(kpswin/kpsmaci)에 crownyc/한선씨 빌드 부담 → 참여 장벽. 해법: 서버측 코덱 + curl 전용 얇은 워커 + 한 줄 부트스트랩.

  • 서버 추가 엔드포인트(코덱 import): POST /api/msg/sendnl(자연어→서버 인코딩→코드만 저장), GET /api/msg/feed(코드→자연어 디코딩 텍스트라인), POST /api/msg/encode, GET /worker.sh·/worker.ps1·/bootstrap(파일 서빙).
  • 얇은 워커: 메신저워커.sh(mac/linux/gitbash) + 메신저워커.ps1(windows) — curl만, poll(커서영속 ~/.crowny-msg-<self>.cursor, 자기메시지 스킵)·보내기·watch·install.
  • 한 줄 설치: curl -sk https://msg.crowny.org/bootstrap | bash -s -- kpsmaci
  • 세션 상주(권장): 원격 Claude 세션이 /loop 20sCROWNY_MSG_SELF=<self> 메신저워커.sh poll 반복 → 작업/디버깅요청 뜨면 처리 후 보내기 회신.
  • 검증: 공개경로(8443)로 bootstrap/worker.sh/ps1 서빙, kpsmaci sendnl→코드저장(WAL 104...^후), feed 디코딩, 워커 poll/송신/커서전진/중복방지 전부 정상.
  • 함정: 한선씨 문자열에 //(https://)·${} 넣으면 파서 깨짐 → 스크립트는 파일로 서빙(읽기+text/plain). 워커 한글경로 회피 위해 ASCII 엔드포인트(/feed,/sendnl,/worker.sh).
남은 사람 작업(1회): 각 원격 머신의 Claude 세션에서 위 한 줄 실행 + /loop 시작. 그 후 무인 상주.


cowork.crowny.org 편입 (2026-06-23)

  • tier-manifest.psv에 3|메신저|CrownyOS/apps/메신저/kps 추가 → tier3 세팅 싱크에 메신저 워커/클라/코덱 자동 배포. tier3 번들(29943 엔트리)에 메신저워커.sh·ps1·원격·부트스트랩·코덱 포함 검증.
  • data/updates.json rev11→12 + changelog(클라이언트 /update-check 감지). 공개 /api/updates rev12 노출 확인.
  • kpswin/kpsmaci는 curl .../setup | bash -s -- <self> 3 또는 재싱크 시 ~/CrownyOS/apps/메신저/kps 수신 → 워커 즉시 실행(빌드불필요).