Repository navigation
Summary
이 릴리스는 통합 버전 기록을 기준으로 정리했습니다.
- Release Date: 2026-09-05 08:13 UTC
- Compare: v2.5.4...v2.5.5
통합 버전 기록
-
docs tag commit:
7394487149c72e604be6d2861db9199a52b5a301
버전 매핑
docs: 기록 버전v2.5.5, 태그v2.5.5, 커밋N/Acoupler-api: 태그v2.5.7, 커밋dabfc71ac74583e01be1c054d8bedc64c740fc52coupler-admin-web: 태그N/A, 커밋44ca0d1acfe02cdd205dc188a957781d26746ac2(source 검증 기준; 운영 artifact는59cb4862064c0e963bd0a6ce57673996d77ff290유지)coupler-mobile-app: Android Store2.5.1 (107), Android 릴리스 태그v2.5.1, Android 커밋2a9ee166e30d77f827d49ac4ddb643ea775606fa, Android sourceverified, iOS Store2.5.1 (107), iOS 릴리스 태그v2.5.1, iOS 커밋2a9ee166e30d77f827d49ac4ddb643ea775606fa, iOS sourceverified, NextPushN/A, NextPush 커밋N/A- Store 제출 마커 태그와 증빙 이관/삭제: 신규 제출 없음. 기존 증빙은 v2.5.4를 보존한다.
릴리스 개요
- 이미 출시된 Store 2.5.1을 유지하면서 App legacy 응답 필드를 제거한 실제 API 전환을 기록한다.
- 목표 버전:
v2.5.5 - 전체 상태:
released - 완료 범위: 계약 source 정렬, API 운영 cutover 및 태그, 최종 docs 기록
- 대기 범위:
N/A
릴리스 결과
- 현재 결과:
released- 개발계·운영계에 dabfc71a를 반영하고 canonical 응답·업데이트 경로·legacy 필드 제거를 확인했으며 API v2.5.7 태그를 고정했다. - 변경: App lounge list/myList/detail의
best, manager/all의profile, manager/detail의detail_profile_set제거. Admin 동명 필드·DB·인증 경로는 유지한다.
핵심 실행 순서
- Admin #125와 Mobile #265의 계약 정렬을 병합한다.
- API #237의 exact source를 개발계·운영계에 순차 반영하고 환경별 결과를 구분한다.
- 운영 postcheck 바로 다음에 API tag를 고정하고, 이 최종 기록을 한 번 병합해 docs tag·Release·Pages를 확인한다.
검증 근거
- Preflight 명령·결과:
yarn release:continue v2.5.5; 배포 전 Draft PR #215 exact head 132438e9aa3206f024982f43e3c27af8a57031ce의 필수 CI 3개 및 preflight PASS를 확인하고 같은 서비스 기준점으로 운영 반영했다. - Scope별 Gate·smoke·artifact: 개발계 2026-09-05 16:21 KST exact dabfc71a, manager/all 11건·detail/17 url·이미지 HEAD 1건 200, 배포 lounge list/myList/detail presenter pinned=Y·legacy 없음 PASS. 운영 배포 전 16:16 KST exact 1a44d374의 내부 HTTP 기준점과 비교해, 배포 후 16:54:49 KST exact dabfc71a의 공개 HTTPS manager/all 6건·detail/16 image slice 4건·이미지 HEAD 5건 200을 확인했다. 운영 canonical profile_image_path/detail_profile 및 lounge pinned=Y 보존, profile/detail_profile_set/best 없음 PASS. google/apple build105 force_update=2, build107=0, min_version107·Store HTTPS 링크 유지. 라운지는 배포된 순수 presenter 합성 입력이며 로그인 사용자 HTTP나 기기 UI 관측이 아니다. WebSocket·Admin 경로는 불변 source와 기존 CI를 재사용했다. 재시작 전 16:53:55 KST Google Play 구매 조회 permissionDenied 401도 관측되어 cutover와 별도 운영 문제로 남겼다.
- API cutover:
Yes- 운영 legacy wire 필드 실제 제거 - DB 마이그레이션:
N/A- API #237의 diff에 DB schema·migration·write 변경이 없다. - Workflow: API #237 전체 CI 성공 및 contracts 발행 workflow, Admin 275 tests, Mobile 886 tests와 Storybook 57 tests 성공
- 검증 경계: 매니저·설정은 live HTTP, 라운지는 실제 배포된 순수 presenter의 합성 입력 검증이다. 로그인한 사용자 라운지 화면이나 기기 UI를 새로 관측했다는 기록이 아니다. WebSocket은 변경 없음과 기존 CI를 재사용한다.
API contract cutover Gate
- Cutover 상태:
released - Contract artifact sync:
- 명령: API package publish workflow·consumer package.json/yarn.lock·각 PR verify/CI·최종 git tree 비교
- 결과: API stable 0.1.43 발행 성공. Admin #125(44ca0d1acfe02cdd205dc188a957781d26746ac2)와 Mobile #265(38185926948846fd04de507376ebb9fb56d83bb1) main 병합·exact pin·설치·CI 완료. Admin 로컬 production build도 성공했다.
- published package:
@coupler-developer/coupler-api-contracts@0.1.43 - Mobile/Admin consumer path: 기존 Store 2.5.1(107)과 OTA 88a6d851은 profile_image_path/detail_profile/pinned를 이미 소비한다. 신규 source pin과 설치된 binary package를 혼동하지 않는다.
- Activation:
- Activation case IDs: previous-store-rest-activate,previous-store-websocket-activate,previous-store-bootstrap-activate,previous-store-version-activate,current-store-rest-activate,current-store-websocket-activate,current-store-bootstrap-activate,current-store-version-activate,previous-ota-rest-activate,previous-ota-websocket-activate,previous-ota-bootstrap-activate,previous-ota-version-activate,previous-admin-rest-activate,previous-admin-websocket-activate,current-admin-rest-activate,current-admin-websocket-activate
- Activation 적용 시각: 2026-09-05T07:54:49.879Z (KST 16:54:49)
- Activation 순서 증빙: 2026-09-05 출시 책임자가 현재 전제 조사와 cold review 후 운영 배포·문서 병합·정리를 최종 승인하여 종전 2.5.2 초과 출시 연기를 종료했다. 기존 Store107 공개·min107·OTA 유지 → Admin #125·Mobile #265 main 병합 → 개발계 16:21 KST postcheck → docs Draft #215 exact head 132438e·필수 CI3개·release:continue preflight PASS → 기준점 불변 확인 → 운영 16:53:53 KST exact dabfc71a 배포 → 16:54:49 KST case PASS → 바로 다음 Gate에서 API v2.5.7 원격 peeled SHA 일치 → docs 최종화. 전 사용자 업데이트 또는 구버전 요청 0건은 완료 조건에서 제외했다.
- 이전 client bootstrap/upgrade 증빙: 운영 배포 전 2026-09-05 16:06·16:16 KST 및 배포 후 16:54:49 KST에 google/apple build105·107의 설정 조회가 성공했다. 양 플랫폼 min_version107, build105 force_update2/build107 force_update0와 Store HTTPS 링크를 그대로 유지했다.
- Client rollback:
- Client rollback case IDs: previous-ota-rest-restore-client,previous-ota-websocket-restore-client,previous-ota-bootstrap-restore-client,previous-ota-version-restore-client
- Rollback 순서 증빙: 새 OTA/Store 배포가 없으므로 현재 v34/v31과 Store107을 유지한다. API 회귀가 발생하면 previous-release case가 검증된 1a44d374로 PM2를 복구하며, 정상 작동하는 client를 2.5.0으로 내리지 않는다.
- Client rollback 주의 사항: 2.5.0은 최소 지원 build 아래다. rollback은 2.5.1 canonical client와 additive API를 대상으로 하며 과거 schema 변경 이전 API로 되돌리지 않는다.
롤백 기준
- API:
1a44d3747fbc8042cb1c78021c404ccb62156618로 복구하면 canonical과 legacy를 함께 제공한다. DB·queue·외부효과가 바뀌지 않은 exact 직전 source만 허용한다. - Client: 이번에 배포하지 않은 기존 Store107·OTA v34/v31을 유지한다. 지원 종료 build105로 내리지 않는다.
- Docs: 실제 API 전환 결과만 같은 Draft PR에서 최종화한다. 기존 완료된 릴리스 문서는 수정하지 않는다.
후속 작업
- 완료 정리: 라운지 best 및 App 매니저 이미지 legacy wire 호환 대기 두 항목을 제거하고, 현행 라운지·매니저 설명과 문서 회귀 테스트를 canonical 응답에 맞췄다. URL-encoded parser 등 별도 호환 경로는 이번 제거 범위가 아니다.
- 별도 운영 확인: Google Play 구매 조회 permissionDenied 401은 새 프로세스 시작 전에도 관측됐다. 결제 코드·권한·credential을 이번 릴리스에서 변경하지 않았으며 이 오류의 해결을 주장하지 않는다. 토큰·회원 데이터는 기록하지 않는다.
- 남은 범위: 이번 cutover 범위 없음. 신규 Store/OTA 출시는 이 기록과 독립적으로 진행한다.
- 완료 조건: 운영 exact source, 최소 지원 build107의 업데이트 경로와 canonical 제품 응답, 허용된 이전 요청 결과 및 복구 기준이 확인된 상태
문서 레포 변경 이력
- 전체 docs 변경 이력은 Compare 링크에서 확인한다: v2.5.4...v2.5.5
- 릴리스 판단 기준은 위 통합 버전 기록과 검증 근거를 우선한다.