{"running":null,"status":"tracked","retry":null,"issue_id":"49508f24-fedc-4a4c-9882-0f4b298a8f10","workspace":{"path":"/Users/julian/.codex/worktrees/symphony/TEC-65","host":null},"attempts":{"current_retry_attempt":0,"restart_count":0},"issue_identifier":"TEC-65","last_error":null,"logs":{"codex_session_logs":[]},"recent_events":[],"tracked":{"priority":"Low","state":"Ready for Verify","title":"기타비용 추가 시 수량단위 선택 기능이 사라짐","url":"https://linear.app/tonextchapter/issue/TEC-65/기타비용-추가-시-수량단위-선택-기능이-사라짐","updated_at":"2026-04-07 10:43 UTC","detail":{"ready_for_verify":"없음","agent_analysis":"### 요청 요약\n\n* 발주서 관리의 기타비용 추가 모달에서 `수량단위`가 선택형이 아니라 자유입력처럼 보여, 기존 단위 목록을 바로 고르기 어렵습니다.\n* 현재 구현은 해당 모달만 `input + datalist`를 쓰고 있고, 같은 화면의 다른 단위 편집과 Retool 기준은 선택형 흐름입니다.\n\n### 기대 동작\n\n* 기타비용 추가 모달의 `수량단위`는 bootstrap `unitSymbols` 기반 선택형 UI로 노출됩니다.\n* 사용자가 고른 단위 값은 기존 `addExtraCostItem` command의 `unit` payload로 그대로 전달됩니다.\n* 기존 필수 검증과 저장 플로우는 유지됩니다.\n\n### 관련 화면/경로\n\n* 화면: `/po-management`\n* `web/src/app/(pages)/(nextcentury)/(century)/po-management/ui/PoManagementPageClient.tsx`\n* `web/src/lib/schema/nextcentury/century/po-management.schema.ts`\n* `web/src/app/api/nextcentury/screens/century/po-management/route.ts`\n* `web/src/server/services/nextcentury/century/century-po-management.repo.server.ts`\n* Retool 참고: `web/docs/domains/nextcentury/sources/NextCentury-retool/src/pageSettlementTools.rsx`\n\n### 재현 방법 또는 근거\n\n* `PoManagementPageClient.tsx`에서 기타비용 추가 모달의 `수량단위`가 현재 `<input list=\"po-management-extra-cost-unit-options\"> + <datalist>`로 렌더링됩니다.\n* 같은 파일에서 일반 발주 항목 편집은 이미 `unitOptions` 선택 옵션을 사용하고 있습니다.\n* Retool 원본 `pageSettlementTools.rsx`의 `unit` 컬럼은 `placeholder=\"Select option\"`으로 정의돼 있어 선택형 동작이 기준 구현에 가깝습니다.\n* 프론트 저장 로직은 이미 `amountUnit`을 `addExtraCostItem`의 `unit`으로 전달하고, Zod/서버도 `unit: z.string().trim().min(1)` 검증 후 그대로 insert 하고 있어 백엔드 계약 변경은 불필요합니다.\n\n### 완료 조건\n\n* 기타비용 추가 모달에서 `수량단위`가 자유입력이 아니라 선택형으로 보입니다.\n* 선택한 단위가 기존 저장 흐름으로 정상 전송되고 저장됩니다.\n* 기타비용 추가 플로우와 기존 유효성 검사에 회귀가 없습니다.\n\n### 애매한 지점\n\n* 없음. 화면 전용 프론트 수정으로 책임 있게 수습 가능합니다.\n\n### Decision Needed\n\n#### Ready for Verify\n\n* worktree path: `/Users/julian/.codex/worktrees/symphony/TEC-65`\n* branch: `detached HEAD (sandbox 제약으로 로컬 브랜치 생성 불가)`\n* remote branch name: `미생성 (sandbox 제약으로 push 미실행)`\n* latest commit SHA: `e9901758c54c888b2127d8fcae7d2726d0d54505` (`PoManagementPageClient.tsx` 변경은 미커밋 상태)\n* run command: `cd /Users/julian/.codex/worktrees/symphony/TEC-65/web && pnpm dev`\n* checks run: `cd /Users/julian/.codex/worktrees/symphony/TEC-65/web && pnpm typecheck` 통과, `cd /Users/julian/.codex/worktrees/symphony/TEC-65/web && pnpm exec biome check src/app/'(pages)'/'(nextcentury)'/'(century)'/po-management/ui/PoManagementPageClient.tsx` 실패(해당 파일 기존 포맷 차이), `cd /Users/julian/.codex/worktrees/symphony/TEC-65 && git diff --check` 통과\n* self-review result summary: 현재 diff와 인접 코드 기준으로 선택형 단위 옵션 노출, `unit` payload 전달, 필수 검증 메시지 흐름에서 의미 있는 문제를 찾지 못함\n* screenshot paths: 없음 (`next dev` 포트 바인딩이 sandbox에서 차단되어 UI 캡처 미실행)\n* test urls: `/po-management`\n* test account / 권한 힌트: 기본 관리자 계정\n* test data 힌트: 기타비용 추가 가능한 최근 발주서 1건, bootstrap `unitSymbols` 값이 내려오는 데이터\n* verify focus:\n  * 발주서 관리에서 기타비용 추가 모달을 열고 `수량단위`가 자유입력창이 아니라 드롭다운으로 보이는지 확인\n  * `수량단위` 드롭다운에서 `건` 또는 기존 단위를 선택한 뒤 저장했을 때 기타비용이 정상 추가되는지 확인\n  * 단위를 비운 상태로 저장 가능한 경로가 있다면 `수량단위를 선택해 주세요.` 경고가 유지되는지 확인","decision_needed":"없음","human_notes":"* 없음","human_review_entry":null,"ready_for_verify_test_urls":[],"release":"없음","review_updates":"없음","rework_request":"없음","slack_request":"발주서 관리에서 기타비용을 추가할 때 수량단위를 선택할 수 없고 직접 기입하는 방식으로 보입니다. 확인이 필요합니다.\n\n![image.png](https://uploads.linear.app/7c52ab50-7609-4512-9c46-3c8e24ee8e67/db6984db-cd5b-4bd0-8fdc-c0cf7952b8e0/30251f88-1a22-455e-ac2a-da88b25e9826?signature=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXRoIjoiLzdjNTJhYjUwLTc2MDktNDUxMi05YzQ2LTNjOGUyNGVlOGU2Ny9kYjY5ODRkYi1jZDViLTRiZDAtOGZkYy1jMGNmNzk1MmI4ZTAvMzAyNTFmODgtMWEyMi00NTVlLWFjMmEtZGE4OGIyNWU5ODI2IiwiaWF0IjoxNzc1NDUyMzY5LCJleHAiOjE3NzU0NTI2Njl9.6nIWpWkK09UH6uP_To9ahYGsWOlravUF1y1ZzQyNNY4)\n\n* 요청자: Susan Sujeong Yoon\n* 요청일: 2026-03-31\n* Slack 링크: [https://nextchapter-inc.slack.com/archives/C04EFJG5MA7/p1774919329362399?thread_ts=1774919329.362399&cid=C04EFJG5MA7](<https://nextchapter-inc.slack.com/archives/C04EFJG5MA7/p1774919329362399?thread_ts=1774919329.362399&cid=C04EFJG5MA7>)","verify_history":"없음"}}}