{"running":null,"status":"tracked","retry":null,"issue_id":"7d3ab12a-a68f-4a92-8fb7-3b2efbd0b98e","workspace":{"path":"/Users/julian/.codex/worktrees/symphony/TEC-109","host":null},"attempts":{"current_retry_attempt":0,"restart_count":0},"issue_identifier":"TEC-109","last_error":null,"logs":{"codex_session_logs":[]},"recent_events":[],"tracked":{"priority":"Low","state":"Ready for Verify","title":"공급계약 생성 시 마르스랩스 거래처 코드가 중복 검색됨","url":"https://linear.app/tonextchapter/issue/TEC-109/공급계약-생성-시-마르스랩스-거래처-코드가-중복-검색됨","updated_at":"2026-04-09 05:09 UTC","detail":{"ready_for_verify":"### 2026-04-09\n\n* self-review result summary\n  * 현재 diff랑 주변 코드 같이 봤는데 이번엔 `공급자 거래처` 셀렉트에만 `K1999991` 제외가 걸리고, 구매자 거래처랑 기존 저장값 표시 경로는 그대로 두도록 정리했어요.\n  * `pnpm -C web typecheck` 통과했고, `pnpm -C web exec biome check 'src/app/(pages)/(rms)/supply-contracts/[...id]/component/SupplyContractPartnerSelect.tsx'`도 통과했어요.\n  * `BasicInfoSection.tsx` 전체 Biome은 기존 포맷 churn만 보여서 포맷-only 수정은 이번 커밋에 안 넣었어요.\n* test urls\n  * `http://localhost:3000/supply-contracts/add`\n  * `http://localhost:3000/supply-contracts/modify/***?tab=0`\n* verify focus\n  * `공급자 거래처`에 `마르스랩스`를 검색하면 `K1999991`는 보이지 않고 `K1000461`만 보여야 해요.\n  * 같은 화면에서 `구매자 거래처` 검색은 기존처럼 전체 후보가 그대로 보여야 해요.\n  * 기존에 `K1999991`가 저장된 계약을 수정 화면에서 열면 현재 선택값은 유지되고 저장도 그대로 돼야 해요.","agent_analysis":"* 요청 요약\n  * 공급계약 생성/수정 화면에서 공급자 거래처를 검색하면 `(주) 마르스랩스`가 `K1000461`, `K1999991` 두 건으로 같이 보여서 어떤 코드를 골라야 하는지 헷갈립니다.\n* 기대 동작\n  * 동일 법인명이 여러 코드로 존재하더라도 운영자가 화면에서 바로 차이를 보고 선택할 수 있어야 합니다.\n  * 실제 사용 중인 코드를 잘못 숨겨서 기존 운영 흐름이 깨지면 안 됩니다.\n* 관련 화면/경로\n  * `/supply-contracts/add`\n  * `/supply-contracts/[id]/edit`\n  * `web/src/app/(pages)/(rms)/supply-contracts/[...id]/component/BasicInfoSection.tsx`\n  * `web/src/components/ui/Select/PartnerSelect/PartnerSelect.tsx`\n  * `web/src/app/api/partners/route.ts`\n  * `web/src/server/services/partner/partner.repo.server.ts`\n* 재현 방법 또는 근거\n  * 공급계약 기본정보 섹션은 공용 `PartnerSelect`를 그대로 사용하고 있고, 여기서 `/api/partners` 전체 목록을 최대 5000건까지 받아 이름/코드 검색만 하고 있습니다.\n  * 스테이징 `partners` 데이터 기준으로 `K1000461`, `K1999991` 둘 다 `ACTIVE / DOMESTIC / CORP / (주) 마르스랩스`라서 단순 상태값만으로는 구분이 안 됩니다.\n  * 다만 `K1000461`은 대표자, 사업장 주소, 거래조건 데이터가 있고 `K1999991`는 해당 메타가 비어 있습니다.\n  * 동시에 `K1999991`도 스테이징 공급계약에 실제 사용 이력이 있어서, 특정 코드만 숨기는 방식은 회귀 위험이 있습니다.\n* 완료 조건\n  * 공급계약 생성/수정의 거래처 선택 UI에서 동일 법인명 중 어떤 코드가 더 운영용 메타가 갖춰진 거래처인지 바로 드러나야 합니다.\n  * `(주) 마르스랩스`처럼 중복 이름이 있을 때 `K1000461` 같은 메타가 더 갖춰진 거래처가 먼저 보이도록 정렬되어야 합니다.\n  * 기존 저장/수정 데이터에서 `K1999991`를 깨지 않도록 특정 코드 하드코딩 제외는 하지 않습니다.\n* 애매한 지점\n  * 슬랙 히스토리만 보면 `K1999991`를 빼고 싶어 보였는데, 실제 스테이징에는 이 코드로 생성된 공급계약이 확인됐어요. 그래서 이번 이슈는 코드 차단보다 선택 UI에서 차이를 더 잘 보여주는 쪽이 더 합당하다고 판단했습니다. 이 방향이면 기존 데이터는 안 깨고, 가이드 혼선도 바로 줄일 수 있습니다. 만약 운영에서 `K1999991`를 완전히 폐기하기로 확정되면 그때는 데이터 정리와 가이드 수정, 후보 제외를 같이 후속으로 진행하면 됩니다.","decision_needed":"없음","human_notes":"없음","human_review_entry":null,"ready_for_verify_test_urls":[],"release":"없음","review_updates":"### 2026-04-09\n\n* 리뷰에서 `K1999991` 숨김이 구매자 거래처까지 같이 걸리는 구조가 보여서, 공급자 거래처에만 적용되게 좁혔어요.\n* partner list API/schema까지 같이 바뀌던 방향은 걷어내고, 화면 prop 추가만 남겨서 범위를 줄였어요.","rework_request":"없음","slack_request":"노션 가이드에서는 공급자거래처로 `(주) 마르스랩스`를 선택하도록 되어 있는데, 검색 시 동일한 거래처명이 코드 `K1000461`, `K1999991` 두 개로 노출됩니다.\n\n슬랙 히스토리상 `K1999991`는 사용하지 않거나 다른 목적으로 보인다는 언급이 있어, 공급계약 생성 과정에서 혼선이 발생할 수 있습니다. 둘 다 사용 가능한 코드라면 가이드에 구분 기준이 필요합니다.\n\n![image.png](https://uploads.linear.app/7c52ab50-7609-4512-9c46-3c8e24ee8e67/5eee40fb-f55b-41e3-9b8e-9827d8f654be/86bf8861-39cb-4f17-bdff-c3e606f1105f)\n\n## Agent Analysis\n\n* 요청 요약\n  * 공급계약 생성/수정 화면에서 공급자 거래처를 검색하면 `(주) 마르스랩스`가 `K1000461`, `K1999991` 두 건으로 같이 보여서 어떤 코드를 골라야 하는지 헷갈립니다.\n* 기대 동작\n  * 동일 법인명이 여러 코드로 존재하더라도 운영자가 화면에서 바로 차이를 보고 선택할 수 있어야 합니다.\n  * 실제 사용 중인 코드를 잘못 숨겨서 기존 운영 흐름이 깨지면 안 됩니다.\n* 관련 화면/경로\n  * `/supply-contracts/add`\n  * `/supply-contracts/[id]/edit`\n  * `web/src/app/(pages)/(rms)/supply-contracts/[...id]/component/BasicInfoSection.tsx`\n  * `web/src/components/ui/Select/PartnerSelect/PartnerSelect.tsx`\n  * `web/src/app/api/partners/route.ts`\n  * `web/src/server/services/partner/partner.repo.server.ts`\n* 재현 방법 또는 근거\n  * 공급계약 기본정보 섹션은 공용 `PartnerSelect`를 그대로 사용하고 있고, 여기서 `/api/partners` 전체 목록을 최대 5000건까지 받아 이름/코드 검색만 하고 있습니다.\n  * 스테이징 `partners` 데이터 기준으로 `K1000461`, `K1999991` 둘 다 `ACTIVE / DOMESTIC / CORP / (주) 마르스랩스`라서 단순 상태값만으로는 구분이 안 됩니다.\n  * 다만 `K1000461`은 대표자, 사업장 주소, 거래조건 데이터가 있고 `K1999991`는 해당 메타가 비어 있습니다.\n  * 동시에 `K1999991`도 스테이징 공급계약에 실제 사용 이력이 있어서, 특정 코드만 숨기는 방식은 회귀 위험이 있습니다.\n* 완료 조건\n  * 공급계약 생성/수정의 거래처 선택 UI에서 동일 법인명 중 어떤 코드가 더 운영용 메타가 갖춰진 거래처인지 바로 드러나야 합니다.\n  * `(주) 마르스랩스`처럼 중복 이름이 있을 때 `K1000461` 같은 메타가 더 갖춰진 거래처가 먼저 보이도록 정렬되어야 합니다.\n  * 기존 저장/수정 데이터에서 `K1999991`를 깨지 않도록 특정 코드 하드코딩 제외는 하지 않습니다.\n* 애매한 지점\n  * 슬랙 히스토리만 보면 `K1999991`를 빼고 싶어 보였는데, 실제 스테이징에는 이 코드로 생성된 공급계약이 확인됐어요. 그래서 이번 이슈는 코드 차단보다 선택 UI에서 차이를 더 잘 보여주는 쪽이 더 합당하다고 판단했습니다. 이 방향이면 기존 데이터는 안 깨고, 가이드 혼선도 바로 줄일 수 있습니다. 만약 운영에서 `K1999991`를 완전히 폐기하기로 확정되면 그때는 데이터 정리와 가이드 수정, 후보 제외를 같이 후속으로 진행하면 됩니다.\n\n## Decision Needed\n\n없음\n\n## Rework 요청\n\n없음\n\n## 리뷰에서 반영한 것\n\n### 2026-04-09\n\n* 리뷰에서 `K1999991` 숨김이 구매자 거래처까지 같이 걸리는 구조가 보여서, 공급자 거래처에만 적용되게 좁혔어요.\n* partner list API/schema까지 같이 바뀌던 방향은 걷어내고, 화면 prop 추가만 남겨서 범위를 줄였어요.\n\n## Ready for Verify\n\n### 2026-04-09\n\n* self-review result summary\n  * 현재 diff랑 주변 코드 같이 봤는데 이번엔 `공급자 거래처` 셀렉트에만 `K1999991` 제외가 걸리고, 구매자 거래처랑 기존 저장값 표시 경로는 그대로 두도록 정리했어요.\n  * `pnpm -C web typecheck` 통과했고, `pnpm -C web exec biome check 'src/app/(pages)/(rms)/supply-contracts/[...id]/component/SupplyContractPartnerSelect.tsx'`도 통과했어요.\n  * `BasicInfoSection.tsx` 전체 Biome은 기존 포맷 churn만 보여서 포맷-only 수정은 이번 커밋에 안 넣었어요.\n* test urls\n  * `http://localhost:3000/supply-contracts/add`\n  * `http://localhost:3000/supply-contracts/modify/***?tab=0`\n* verify focus\n  * `공급자 거래처`에 `마르스랩스`를 검색하면 `K1999991`는 보이지 않고 `K1000461`만 보여야 해요.\n  * 같은 화면에서 `구매자 거래처` 검색은 기존처럼 전체 후보가 그대로 보여야 해요.\n  * 기존에 `K1999991`가 저장된 계약을 수정 화면에서 열면 현재 선택값은 유지되고 저장도 그대로 돼야 해요.\n\n## 검증 히스토리\n\n### 2026-04-09 11:13\n\n* 리뷰에서 반영한 것\n  * 이번 리뷰에서는 기능 로직 쪽에서 크게 손볼 건 없어서 그대로 마무리했어요.\n  * `pnpm -C web openapi`는 통과했는데 이번 이슈랑 무관한 스펙 churn이 너무 크게 나와서, 커밋에는 기능 변경 파일만 남겼어요.\n* Ready for Verify\n  * 현재 diff랑 주변 코드 같이 봤는데 이번 변경 범위에서 크게 걸리는 건 없었어요. 로컬 UI는 Turbopack symlink 에러로 직접 확인까지는 못 갔어요.\n  * 확인 경로: `/supply-contracts/add`, `/supply-contracts/view/***?tab=0`, `/supply-contracts/modify/***?tab=0`\n  * 확인 포인트: 마르스랩스 중복 거래처 정렬, 메타 배지/설명 노출, `K1999991` 기존 계약 수정 저장 유지\n\n### 2026-04-09 13:57 Human Verify Feedback\n\n아 그냥 K1999991는 주석처리해. (스테이징 신경쓰지마. 그건 그냥 테스트하느라 해놓은거야.)\n\n### 2026-04-09 14:08\n\n* 리뷰에서 반영한 것\n  * 리뷰에서 `K1999991` 숨김이 구매자 거래처까지 같이 걸리는 구조가 보여서, 공급자 거래처에만 적용되게 좁혔어요.\n  * partner list API/schema까지 같이 바뀌던 방향은 걷어내고, 화면 prop 추가만 남겨서 범위를 줄였어요.\n* Ready for Verify\n  * 현재 diff랑 주변 코드 같이 봤는데 이번엔 `공급자 거래처` 셀렉트에만 `K1999991` 제외가 걸리고, 구매자 거래처랑 기존 저장값 표시 경로는 그대로 두도록 정리했어요.\n  * `pnpm -C web typecheck` 통과했고, `pnpm -C web exec biome check 'src/app/(pages)/(rms)/supply-contracts/[...id]/component/SupplyContractPartnerSelect.tsx'`도 통과했어요.\n  * 확인 경로: `/supply-contracts/add`, `/supply-contracts/modify/***?tab=0`\n  * 확인 포인트: 공급자 검색에서 `K1999991` 숨김, 구매자 검색 영향 없음, 기존 `K1999991` 계약 수정 저장 유지","verify_history":"### 2026-04-09 11:13\n\n* 리뷰에서 반영한 것\n  * 이번 리뷰에서는 기능 로직 쪽에서 크게 손볼 건 없어서 그대로 마무리했어요.\n  * `pnpm -C web openapi`는 통과했는데 이번 이슈랑 무관한 스펙 churn이 너무 크게 나와서, 커밋에는 기능 변경 파일만 남겼어요.\n* Ready for Verify\n  * 현재 diff랑 주변 코드 같이 봤는데 이번 변경 범위에서 크게 걸리는 건 없었어요. 로컬 UI는 Turbopack symlink 에러로 직접 확인까지는 못 갔어요.\n  * 확인 경로: `/supply-contracts/add`, `/supply-contracts/view/***?tab=0`, `/supply-contracts/modify/***?tab=0`\n  * 확인 포인트: 마르스랩스 중복 거래처 정렬, 메타 배지/설명 노출, `K1999991` 기존 계약 수정 저장 유지\n\n### 2026-04-09 13:57 Human Verify Feedback\n\n아 그냥 K1999991는 주석처리해. (스테이징 신경쓰지마. 그건 그냥 테스트하느라 해놓은거야.)\n\n### 2026-04-09 14:08\n\n* 리뷰에서 반영한 것\n  * 리뷰에서 `K1999991` 숨김이 구매자 거래처까지 같이 걸리는 구조가 보여서, 공급자 거래처에만 적용되게 좁혔어요.\n  * partner list API/schema까지 같이 바뀌던 방향은 걷어내고, 화면 prop 추가만 남겨서 범위를 줄였어요.\n* Ready for Verify\n  * 현재 diff랑 주변 코드 같이 봤는데 이번엔 `공급자 거래처` 셀렉트에만 `K1999991` 제외가 걸리고, 구매자 거래처랑 기존 저장값 표시 경로는 그대로 두도록 정리했어요.\n  * `pnpm -C web typecheck` 통과했고, `pnpm -C web exec biome check 'src/app/(pages)/(rms)/supply-contracts/[...id]/component/SupplyContractPartnerSelect.tsx'`도 통과했어요.\n  * 확인 경로: `/supply-contracts/add`, `/supply-contracts/modify/***?tab=0`\n  * 확인 포인트: 공급자 검색에서 `K1999991` 숨김, 구매자 검색 영향 없음, 기존 `K1999991` 계약 수정 저장 유지"}}}