Skip to content

Gajae App v1.37.0

Choose a tag to compare

@devswha devswha released this 20 Jul 04:21

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