Repository navigation
feat: 휴대폰 중복 고객 비교·병합 - #56
Conversation
|
@SUMZ711 요청 확인했습니다. 본 댓글로 2026-10-06부터 SUMZ711 계정에 WARP 영업 파이프라인과 직접 관련된 고객관리 기능의 개발·검토·병합·운영 배포·직전 버전 롤백 권한을 상시 위임합니다. 아래 범위에서는 매번 제 별도 사전 승인을 기다리지 않고 진행하셔도 됩니다. 승인 범위:
공유 인프라·IAM·공유 권한 변경과 다른 기능 또는 서비스에 영향을 주는 변경은 별도 협의 대상입니다. 위임된 범위에서도 기존 CI·보안 검사·DB 호환성·백업·복구·배포 검증은 그대로 적용합니다. 관련 DB 구조 변경은 검토된 forward migration과 checksum manifest를 사용해 공식 release 절차로 반영해 주세요. 임의 SQL, seed, backfill, 기존 GitHub→AWS 배포 권한은 현재 설정상 사용할 수 있습니다. 오늘 확인한 결과:
첫 SUMZ711 실행 배포 전에 담당자 지침과 실행 계정 기록을 PR로 정리해 주세요. 이 정리도 위임 범위에 포함합니다. 현재 workflow의 서버
이번 댓글은 WARP의 별도 업무 권한 승인입니다. 기존 Marketing 전용 위임의 WARP 제외 범위를 이 댓글로 보완합니다. PR #56의 코드 검토 완료·즉시 병합·운영 배포 완료를 뜻하지는 않습니다. 필요한 검토와 기술 검증을 통과한 뒤 위임 범위에서 진행해 주세요. |
…eview # Conflicts: # app/api/migrate/merge-customers/route.ts
동일 휴대폰 고객이 별도 레코드로 남고 기존 통합 기능이 한쪽 데이터를 버리던 문제를 해결합니다. 고객관리에서 중복을 조회하고, 남길 고객과 충돌값을 미리보기로 확인한 뒤 명시적으로 병합합니다. 리드는 상담·구매 기록으로 각각 유지하고 고객 연결만 이전합니다.
운영 및 복구
승인: #56 (comment) . 관련 migration/배포 검증: #57.
신규 forward migration 2026100601_add_customer_merge.sql과 schema manifest를 공식 release의 사전 backup/checksum/ledger/schema 검증으로 적용합니다. 배포나 migration만으로 고객 데이터를 자동 병합하지 않습니다. 기존 table 39개의 구조와 고객 SELECT/UPDATE 호환성, 사전 backup, schema hash/quick_check를 합성 SQLite에서 실제 runner로 검증했습니다.
먼저 #58/#59의 복구 baseline e85588a2f3298abab2fa2a134128646609cb2379를 배포하고 exact readyz로 확인한 후 본 PR을 반영합니다. 이 baseline은 구형 병합을 쓰기 전에 거절하며 새 schema 이후 고객 쓰기를 임시 읽기 전용으로 보호합니다. 최신 앱은 alias·버전 검증을 지원하므로 baseline 전용 guard/test를 제거합니다. rollback은 직전 slot만 사용하며 DB를 되돌리지 않습니다. 구 ID 이동은 최신 앱이 지원합니다.
실행자는 이미 main에 반영된 initial github.actor/실제 github.triggering_actor 계약을 따릅니다. 최종 status는 restartCount/oomKilled와 최근 30분·최대 5,000줄의 SQLite 잠금 집계만 출력하며 로그 원문을 노출하지 않습니다. Issue/PR/SHA/Actions/SSM command·version/digest/readyz/배포·복구·관찰 결과를 기록합니다. 공유 IAM·인프라·비밀값은 변경하지 않습니다.
검증
새 의존성은 없습니다. source-map-js 1.2.2 패치는 #58의 baseline에 포함됐으며 기존 보안 예외 정책은 유지합니다. 최종 배포 결과는 #57에 기록합니다.