조사 기준일: 2026-05-12
| ID | 미결사항 | 근거 파일/위치 | 현재 상태 | 위험도 | 다음 액션 | 담당 추천 |
|---|---|---|---|---|---|---|
| T1 | test_b2_sheet_performance_repository.py — 모듈 삭제 후 테스트 파일 미제거, collection error 발생 |
tests/test_b2_sheet_performance_repository.py:5 → ModuleNotFoundError: No module named 'src.core.repositories.b2_sheet_performance_repository' |
pytest 전체 실행 차단 (exit 2) | High | 테스트 파일 삭제 또는 모듈 복구 | Codex |
| T2 | test_c1_lead_filter.py 7개 실패 — C-1 핸들러 코드 변경 후 테스트 미갱신 |
tests/test_c1_lead_filter.py 전 케이스 |
AttributeError 계열 실패, CI 통과 불가 | High | 실패 원인 추적 후 핸들러 or 테스트 수정 | Codex |
| T3 | test_dashboard_runner.py 3개 실패 — 실제 Supabase integration_runs 테이블 404 호출 |
tests/test_dashboard_runner.py → HTTPError: 404 for url: .../rest/v1/integration_runs |
테스트가 live DB에 직접 호출, 마이그레이션 미적용 의심 | High | integration_runs 마이그레이션 적용 여부 확인 or mock 분리 |
Manual Test |
| T4 | test_portal_admin_api.py 1개 실패 — /api/admin/lead-discovery 400 반환 |
tests/test_portal_admin_api.py:46 → assert 400 == 200 |
엔드포인트 응답 코드 불일치 | Medium | 라우터 변경사항과 테스트 기대값 대조 | Codex |
| T5 | test_copyright.py::TestRequestCopyrightClaim mock 시퀀스가 구버전 로직 기준 |
tests/api/test_copyright.py:39-66 — 주석: # right_holder_status, # optional_doc lookup (삭제된 로직) |
테스트는 pass되나 실제 새 로직(has_admin_document 체크) 검증 안 됨 |
Medium | mock 시퀀스 + assert를 새 로직 기준으로 재작성 | Codex |
| I1 | send_channel_claim_email — 실제 이메일 미발송, DB 상태 업데이트만 |
src/api/routes/admin_copyright.py:698 → # TODO: 실제 이메일 발송 (EmailNotifier 연동) |
stub 수준 구현, 채널 발송 버튼이 실제로는 작동 안 함 | High | EmailNotifier 연동 또는 채널 메일 발송 방식 결정 | Human |
| I2 | HttpAdminAPIClient.register_work() / update_guideline() — API 필드명 미확인 |
src/core/clients/admin_api_client.py:127,151,155,192,201,204 — TODO 6개 |
실제 엔드포인트 명세 미수령, StubClient로 fallback 중 | High | 외부 API 명세 수령 후 TODO 해소 | Human |
| I3 | Browser executor (A-2, B-2, C-1) — Playwright 미구현, 전부 NotImplementedError |
src/agents/browser/executor.py:61,78,89,97, session_manager.py:100, self_healing_locator.py:59 |
브라우저 자동화 경로 전면 미구현 | Medium | Playwright 도입 여부 결정 | Human |
| I4 | 쿠폰 알림톡 템플릿 코드 하드코딩 | src/handlers/c4_coupon_notification.py:230 → template_code="COUPON_APPLIED" — TODO |
실제 카카오 템플릿 코드 미확인 | Medium | 실제 템플릿 코드 확인 후 교체 | Human |
| H1 | 파트너 포털 PARTNER_HOLDER_NAME = "CJ" 하드코딩 — 실제 로그인 권리사 기반 동적 처리 미구현 |
web/app/partner/relief/page.tsx:15 |
CJ 외 다른 권리사 로그인 시 데이터 표시 안 됨 | High | 파트너 인증 → right_holder_id 동적 주입 설계 | Human |
| H2 | 파트너 API가 어드민 토큰(check_auth)으로 인증 — 파트너 전용 인증 없음 |
src/api/routes/admin_copyright.py:553,604 — GET /api/partner/copyright-claims, POST /api/partner/.../upload |
파트너가 다른 파트너 데이터 접근 가능한 구조 | High | 파트너 인증 체계 설계 필요 | Human |
| A1 | tasks/a3_handler.py, c3_handler.py — src.api.dependencies에서 get_supabase import (레이어 위반) |
이전 세션 분석 — tasks → api 레이어 의존 | 코드 동작은 하나 아키텍처 오염 | Low | src/core/clients/supabase_client.py 분리 |
Claude |
| A2 | @app.on_event("startup") deprecated — Python 3.16에서 제거 예정 |
src/api/rpa_server.py:145 + 테스트 경고 248회 |
Deprecation warning만, 현재 동작은 정상 | Low | lifespan 컨텍스트 매니저로 교체 |
Claude |
| A3 | datetime.utcnow() deprecated — Python 향후 버전에서 제거 |
src/dashboard/app.py:203 — 테스트 경고로 확인 |
Deprecation warning만 | Low | datetime.now(UTC) 로 교체 |
Claude |
| M1 | send_channel_claim_email 엔드포인트 테스트 없음 |
tests/api/test_copyright.py — 해당 엔드포인트 테스트 케이스 부재 |
채널 발송 버튼 코드 경로 무검증 | Medium | 단위 테스트 추가 | Codex |
| M2 | 파트너 파일 업로드(/api/partner/copyright-claims/official-document-upload) 테스트 없음 |
tests/api/test_copyright.py — upload 테스트 부재 |
스토리지 연동 코드 무검증 | Medium | mock 기반 업로드 테스트 추가 | Codex |
| D1 | integration_runs 테이블 마이그레이션 적용 여부 미확인 |
test_dashboard_runner.py 실패 → 404 for .../integration_runs |
실제 Supabase에 테이블 없을 가능성 | High | Supabase 대시보드에서 테이블 존재 확인 | Manual Test |
| D2 | SMTP 설정 없을 때 네이버 보고서 스케줄러 발송 실패 처리 실제 환경 미확인 | src/api/routes/admin_reports.py:74-127 — SMTP 분기 있으나 스케줄러 연동 경로 미검증 |
스케줄러는 동작, 실제 발송 성공 여부 불명 | Medium | 실제 SMTP 환경에서 발송 테스트 | Manual Test |
test_b2_sheet_performance_repository.py 삭제 → pytest collection error로 전체 CI 차단 중PARTNER_HOLDER_NAME = "CJ" 하드코딩 → 다른 권리사 로그인 시 아무것도 표시 안 됨send_channel_claim_email 실제 미발송 → 버튼 누르면 "완료" 메시지가 뜨지만 실제 메일은 발송되지 않음integration_runs 테이블 Supabase 적용 여부 → 대시보드 Runner 기능 전체가 DB 저장 실패 중일 수 있음src/core/clients/supabase_client.py 분리 및 tasks 레이어 import 정리on_event("startup") → lifespan 컨텍스트 매니저 마이그레이션datetime.utcnow() → datetime.now(UTC) 전체 치환tests/test_b2_sheet_performance_repository.py 파일 삭제test_c1_lead_filter.py 실패 원인 추적 및 mock 수정