Gajae App v1.37.0
Gajae App v1.37.0
버전 라인을 1.0.0에서 1.37.0으로 점프해 은퇴한 업스트림 1.36.x 번호대보다 항상 위에 있도록 확정했습니다 (이번 릴리스의 엄격 SemVer 태그 비교가 이 단조성에 의존합니다).
세션 완료 알람
- 어떤 프로바이더 턴이든 완료 시 정확히 1회 알람: 채팅 런 레지스트리가 터미널 수락 단일 지점에서
completionId를 발급하고, 전 탭completion-alarm브로드캐스트와 웹푸시가 같은 id로 dedupe됩니다 (web-run/tmux 교차 중복 제거). - 다중 탭에서도 사운드는 리더 탭 1곳만: Web Locks 기반 리더 선출 + BroadcastChannel lease/heartbeat 폴백, 팔로어 선수신·지연 진입에도 exactly-once. 사용자가 중단(abort)한 런은 알람 없음.
- 새 마스터 설정
알람 사용(기본 ON, 설정 → 알림, 전체 로케일). 탭이 보이는 동안 완료 OS 푸시만 억제하고 권한 요청 등 다른 푸시는 그대로 전달됩니다.
GJC 스킬 팔레트
- GJC 세션의
/팔레트가 실제 CLI가 활성화하는/skill:<이름>명령을 삽입합니다 (라이브 NDJSON으로customType=skill-prompt+ 이름/인자 보존 실측 검증). 표준 컴포저와 라이브 릴레이 컴포저가 단일 pure 헬퍼를 공유합니다.
관리형 업데이트
- 릴리스 판정을 엄격 SemVer 릴리스 태그 비교로 단일화 (BigInt 정밀도, ahead/equal/behind, prerelease 제외). deployment state가 설치 태그를 소유하고
/health가 노출하며 브라우저는 노출값만 소비합니다. - 신규
POST /api/system/update: 원자적 single-flight 예약, 서버측 신뢰 태그 해석, fail-closed 적격성 검증,systemd-run분리 실행, operation-id 상관GET /api/system/update/status폴링(서버 재시작 내성 업그레이드 모달). - 격리 샌드박스 e2e 하네스 추가: install → update → 헬스 실패 롤백 전 경로를 stateful fake systemd + 완전 env 정화 + 적대적 git 환경 저항성으로 증명 (실서비스 무접촉).
좌표 이전
- 저장소 좌표를
devswha/gajae-app-v1로 전수 이전하고 identity 스캐너가 구 좌표를 금지합니다 (provenance 기록 제외).
전체 변경 내역: CHANGELOG.md