스페로네 "16명 → 4 리스트" 신고에서 출발해, 고아가 된 /lead-import 흐름을 추적·제거하고 CI까지 그린으로 맞춘 전 과정을 기록합니다. 두 PR(#9058, #9059) 모두 alpha에 머지 완료.
sh send-ci.sh → All services completed successfully. 고아 /lead-import 흐름 제거, 현행 smart-import으로 일원화. 라이브 동작 변화 없음(이미 도달 불가였음).
| PR | 내용 | 상태 |
|---|---|---|
| #9058 | 고아 /lead-import 임포트 흐름 제거 (smart-import 일원화) | MERGED |
| #9059 | 제거 후 route-auth-map 생성 산출물 동기화 (CI 수정) | MERGED |
신고 → 진단 → 검증 → 제거 → CI 수정.
gap_..._shortlist.csv 구조 분석 (16행, 회사명 4종)./leads/add) vs 고아 lead-import(/lead-import). 실사용은 smart-import.스페로네_0430에서 신규 3 + 기존 Gap 1 = 4 멤버. website_url 빈값 → 회사명이 판정축.navigate/Link/사이드바 어디에도 /lead-import 없음. 단 공유 함수 3종은 생존.send-ci 통과 후 squash merge.check:route-auth-map stale 실패 → build:route-auth-map 재생성 → 머지.제거 프론트엔드
pages/lead-import/ (페이지 + 동의폼)lib/api/hooks/lead-import.tslib/api/services/lead-import.tsdashboard-admin-routes·lazy-importsDashboardLayout · 권한맵 permission/constantsworkspace-header-baseline.json제거 백엔드
routes/lead-import.routes.ts + app.ts 마운트importLeadsStream·importLeadsBatch·importSingleLead·analyzeLeadPreviewWithAI·getSheetNames·validateFileExtension·validateNonEmptyData·checkDuplicatetruncateString·checkDuplicateBatch·checkDuplicateEmailsInWorkspace·updateExistingLead// 제거 전 의존성 확인 KEEP parseUploadedFile ← smart-import, web-extraction KEEP bulkImportLeads ← smart-import KEEP verifyImportEmails ← smart-import DEL importLeadsStream → importLeadsBatch → importSingleLead (데드 클러스터) DEL checkDuplicate 호출처 0 검증 bun type-check exit 0 → send-ci ALL GREEN
send-ci의 check:route-auth-map 실패 — lead-import 라우트를 지웠으나 생성 스냅샷이 옛 엔드포인트를 들고 있어 drift.
| 단계 | 내용 |
|---|---|
| 재생성 | cd elysia-server && bun run build:route-auth-map |
| 변경 | docs/route-auth-map.json · docs/missing-iam.json — lead-import 3 엔드포인트(upload·sheet-names·preview) 순수 삭제 30줄 |
| 검증 | diff에 lead-import 외 변경 0 확인 → send-ci 그린 → squash merge |
ci-autofix.sh)는 build:route-auth-map(prebuild hook 경로)를 돌리지 않는다. 라우트 추가/삭제 PR은 route-auth-map 재생성을 같은 PR에 포함해야 후속 CI 실패를 막는다.
| 대상 | 처리 | 이유 |
|---|---|---|
parseUploadedFile·bulkImportLeads·verifyImportEmails | 보존 | smart-import·web-extraction가 import |
| 임포트 진행/결과 타입 (ImportProgress·ImportResult·PreviewLeadData·ProgressLog 등) | 이관 | 유일 소비처 types/chatbot.ts(mastra 챗봇)로 인라인 |
lead-import.service.ts | 유지(축소) | 공유 함수 셸로 잔존 |