Overview

Note: This page is reproduced verbatim from the project's Korean-language source documentation. No English version of this document exists in the source repository yet — only the top-level README has an English translation.

User Manual: Updates & Pack Operations

English summary: updates — dual channel + zero-downtime#

Badge Channel How
! App (binary) Tauri updater signature verify → session guard → install/restart → pack applied + nodes auto-return
Pack (OS) Zero-downtime — minisign verify → atomic transaction → live-node re-injection. No restart; sessions and daemon survive

Checked quietly at startup and every 6 hours. If a "disk has the new version, process is the old daemon" skew remains after reinstall, it resolves via a badge-click handover or idle auto-handover (when there are 0 live sessions — lossless). Diagnose/repair with cys doctor [--fix]; self-diagnose the installed build's code-signing seal with cys doctor app-seal.

Coexists with customization: updates never destroy user-modified files — user-owned files are preserved with the new version placed alongside as .new, system files are preserved as .user before healing, and the ~/.cys/local/ overlay (directive append, skill shadowing, hook trailing) is invisible to updates. Preview with cys pack-plan; merge with cys pack-merge (3-way / AI).

The Korean-language detail follows below.

11. 업데이트#

업데이트는 두 채널이고, 상단바 Update 배지 하나로 수렴합니다. 시작 시 + 6시간마다 조용히 확인합니다.

배지 동작
! 앱(바이너리) 업데이트 클릭 → 라이브 세션 있으면 확인 → 다운로드·설치 → 재시작 → 팩 반영+노드 자동 복귀
팩만 변경 (무중단) 클릭 → 서명 검증 → 원자 반영 → 라이브 노드 재주입. 재시작 0, 세션·데몬 생존
0 최신 — (확인 실패 시엔 마지막 검증 상태를 보존)
  • 재설치(rename-swap) 후 "디스크는 새 버전·프로세스는 구 데몬" 스큐가 남으면 상단바에 "데몬 vX · 앱 vY — 세션 보존 중" 배지가 뜸니다. 클릭해 교대하거나, 라이브 세션이 0이 되면 자동 교대됩니다(무손실).
  • 수동 팩 업데이트: cys pack-update --from <디렉토리> (pack.tar.gz + pack-manifest.json + .minisig). 서명·신선도·replay 검증은 전건 fail-closed입니다.
  • 업데이트 전 미리보기: cys pack-plan — 무엇이 갱신/보존/치유/병합대기/정리되는지 설치 전에 표시합니다(쓰기 0). 팩을 커스텀마이즈해 쓰고 있다면 §12.7을 꿅 읽으세요 — 수정본은 파괴되지 않고 .new(신버전 병치)/.user(보존본)로 관리되며 cys pack-merge로 병합합니다.
  • 진단·수리: cys doctor [--fix] — 팩 스쿠·stale lock·고아 소켓·훅 등록을 진단하고, --fix는 사용자 데이터·팩 본체·DB를 건드리지 않는 범위만 수리합니다.

12. CYSJavis 팩 운용#

팩은 터미널을 "멀티에이전트 회사"로 만드는 운영체계입니다. 개념은 Architecture & Philosophy §2–4 참조.

12.1 설치·구성#

cys init-pack                     # ~/.cys/pack 설치 (사용자 수정 파일 보존)
cys init-pack --install-hook --claude-settings ~/.claude/settings.json   # (선택) Claude Code 훅 강화 주입

구성: 절대지침 6(directives/ — master·worker·CSO·reviewer·RSI 학습·CEO 템플릿) · 결정론 도구 56(bin/) · 훅 18(hooks/) · 스킬 102(skills/) · 스키마 3(schemas/) · 설정 6(acl·agents·board-catalog·alerts-config·schedule·trusted-keys) · 비어 있는 골격 (soul.md·memory/ — 사용자가 채움).

12.2 역할 선언 부트스트랩#

프로젝트 루트에 CLAUDE.md.template를 복사해 두면, 에이전트에게 "너는 마스터다/워커다" 라고 선언하는 것만으로 부트스트랩됩니다: 해당 디렉티브+soul.md 각성 → cys claim-role → (마스터면) 결정론 프리플라이트:

python3 "${CYS_PACK_DIR:-$HOME/.cys/pack}/bin/javis_preflight.py" --fix

존재·매핑·훅 등록 검증은 이 스크립트의 출력만이 사실입니다(자연어 재추론 금지).

12.3 위임 루프 (orchestra)#

P=${CYS_PACK_DIR:-$HOME/.cys/pack}/bin
python3 $P/javis_orchestra.py check           # 필수 노드 생존 결정론 확인
python3 $P/javis_orchestra.py task-prompt --task "<T>" --scope "<범위>" --success "<기준>"   # 위임 티켓 생성
python3 $P/javis_orchestra.py gate-status --task "<T>"   # 게이트 수렴 판정 (CONVERGED=다음 단계)
python3 $P/javis_orchestra.py next-action                # 다음 액션 큐 결정론 추출

12.4 보조 결정론 도구#

python3 $P/javis_route.py --request "<요청>"          # fast/deliberate/slow 3단 사고 라우팅
python3 $P/javis_report.py                            # 진행% 결정론 산출 (todo 체크박스 산술)
python3 $P/javis_memory.py add --type <t> --name <slug> --desc "..." --body "..."   # 장기기억 증류(색인 원자 동기)
python3 $P/javis_task.py checkout <id> --owner <>  # 원자적 태스크 체크아웃 (충돌=exit 9)
python3 $P/javis_resource_gate.py check               # 착수 전 자원 게이트 (0 allow / 1 soft / 2 hard)
python3 $P/javis_event.py emit <type> ...             # 닫힌 enum 이벤트 방출 (미지 타입 거부)
python3 $P/javis_wakeup.py enqueue --to <> --task <key> --reason "..."   # 코얼레싱 웨이크업 큐

12.5 RSI 학습·페르소나#

cys learn                 # RSI 학습 루프 — 제안 생성·라운드 상태 (Control Center 학습 탭과 연동)
cys persona list-params   # 노드 페르소나·운영 노브 (안전핵은 잠김)
cys persona show / set / reset

12.6 pro 채널 (선택)#

cys license install / status    # 서명 라이선스 설치·진단 (검증 전용)
cys pack-repair-channel         # 채널 상태 진단·복구
cys pack-downgrade-to-free      # pro → free 강등의 유일 경로 (명시적)

12.7 커스텀마이징 — 업데이트와 공존하는 방법#

팩·앱을 자기에게 맞게 고쳐 쓰는 것은 지원되는 사용 방식입니다. 다만 어디를 고치느냐에 따라 업데이트와의 관계가 다릅니다. 원칙은 하나 — 출하 파일을 직접 고치지 말고, 사용자 전용 계층에 두면 업데이트가 절대 건드리지 않습니다.

사용자 전용 오버레이 ~/.cys/local/ (업데이트·치유·정리가 존재 자체를 모르는 영역):

위치 효과
local/directives/<ROLE>_DIRECTIVE.local.md 역할 지침 뒤에 자동 append (예: WORKER_DIRECTIVE.local.md에 "보고는 존대말로")
local/skills/<이름>/SKILL.md 동명 팩 스킬을 shadowing(내 버전이 이김) · 자작 스킬 추가
local/hooks/<이벤트>.d/*.sh 팩 훅 뒤에 후행 실행 (관측 전용 — 에이전트 차단 불가)
local/notes/ 자유 메모 영역 (USER-NOTES.md 등 — 관례상 여기에)

단, 오버레이는 안전핵(정지 경계·복원 프로토콜·중단 스위치·운영 헌장)을 뒤집을 수 없습니다 — 해당 키워드 줄은 주입에서 자동 제외되고, 안전핵 재선언이 항상 마지막에 붙습니다. 로컬 스키은 승격 시 정적 스캔 경고(차단 아님)를 출력합니다 — 사용자 책임 영역입니다.

출하 파일을 이미 직접 고쳤다면 — 업데이트가 파괴하지 않습니다:

  • user-owned 파일(디렉티브·soul.md·CLAUDE.md·schedule.json): 수정본은 절대 덮지 않고, vendor 신버전이 나오면 <파일>.new로 옷에 병치됩니다(병합 대기).
  • system 파일(bin·hooks·skills 등): 무결성을 위해 vendor 본으로 치유되지만, 덮기 전에 내 수정본을 <파일>.user로 보존합니다(파괴 0).
cys pack-plan                 # 업데이트 전 드라이런 — 갱신/보존/치유/병합대기/정리를 미리 표시
cys pack-merge                # 병합 대기 목록
cys pack-merge --file <> --take-new    # vendor 신버전 채택
cys pack-merge --file <> --keep-mine   # 내 수정 유지 (이번 신버전 소화)
cys pack-merge --file <>               # diff3 3-way 자동 병합 (조상=.pristine)
cys pack-merge --file <> --ai          # AI 3-way 병합 — 내 수정 "의도"를 신버전 위에 재적용
cys pack-merge --file skills/<>/SKILL.md --to-local   # 스킬 수정본을 오버레이로 승격(권장)

앱 번들(.app/설치 폴더) 내부 수정은 지원하지 않습니다 — 업데이트가 번들을 통채로 교체하며 코드사이닝이 깨집니다. 위 오버레이 채널을 사용하세요. 테마·키바인딩·스케줄·페르소나 노브는 각각 전용 채널(§4 테마 버튼·§12.5 persona·§8 schedule)이 이미 업데이트와 무관하게 보존됩니다.



Continue: Reference → · Back: Control Center

Was this page helpful?