Files
trex-core/.proofline/lines/line-0003/evidence/implementation-progress.md
T

5.3 KiB

구현 진행 상황 evidence

이 파일은 ProofLine canonical lifecycle artifact가 아닌 GitHub issue comment 원문 evidence입니다.

Original Comment Body

구현 진행 상황

상태: 🟢 구현·검증 완료

구현 계획 및 작업 목록

  • 1. 구현 기준선과 영향 범위 확인
    • 승인된 #58 본문을 변경 범위의 기준으로 고정
    • timeout 계산, 주문 제출정보 영속화, KIS 주문조회, 취소상태, alarm 및 migration 경로 확인
  • 2. 기본 timeout 및 입력 검증 구현
    • timeout 생략 또는 null이면 매수·매도 모두 3,600초 적용
    • 전략 payload와 인스턴스 설정은 1..3600초만 허용
    • 범위 밖 값은 clamp하지 않고 주문 제출 전에 명시적으로 거부
  • 3. 원주문 시각·날짜 영속화와 재시작 복구 구현
    • timeout 기준점과 KIS 주문 조회일을 일반 updated_at과 분리
    • 날짜가 넘어가거나 daemon이 재시작돼도 원주문 날짜로 상태 조회
  • 4. 장마감 취소 실패 후 fail-closed reconciliation 구현
    • 취소 API의 REQUESTED/REJECTED/UNKNOWN을 terminal 상태로 오인하지 않음
    • terminal broker evidence 전까지 슬롯 재사용 금지
    • 불명확 상태에서 CRITICAL alarm 발생
    • 주문조회로 open 상태를 확인한 경우에만 bounded retry를 허용하고 blind retry 금지
  • 5. 자동취소·부분체결·경합 처리 회귀 보강
    • 무체결 자동취소
    • 부분체결 후 잔량취소와 ledger exactly-once
    • 취소와 전량체결 경합
    • 날짜 rollover 및 daemon 재시작
    • 주문 row 미가시성
  • 6. 검증 및 독립 리뷰
    • 관련 집중 테스트
    • 전체 테스트와 lint/정적 검사
    • ProofLine repository validation
    • 구현자와 분리된 독립 코드 리뷰

진행 원칙

  • 체크박스는 해당 작업이 실제 완료되고 관련 검증이 통과한 뒤에만 갱신합니다.
  • 진행 기록은 이 댓글을 계속 수정하여 누적합니다.
  • 승인된 구현 계획의 제품 의미나 범위를 변경해야 하면 구현을 중지하고 사용자 승인을 요청합니다.
  • 실제 주문, 운영계좌 변경, 배포, release, main push 또는 PR 생성은 이번 작업에 포함하지 않습니다.

진행 기록

  • 구현 시작: #58의 확정된 Discovery 범위와 OQ 결정 4건을 기준선으로 채택했습니다.
  • 기준선/영향 분석 완료: 기본값 None, updated_at 기반 timeout, KIS 현재일 조회, cancel-state retry 차단 및 신규 persistence migration 필요성을 확인했습니다.
  • 격리 작업공간 생성: feat/issue-58-order-timeout-reconciliation (482b00e 기준).
  • 변경 전 기준선 검증 완료: 전체 테스트 995 passed, 51 skipped, Ruff/ProofLine/diff check 통과.
  • 1차 구현 인스턴스가 핵심 코드·migration·synthetic test를 작성하고 focused suite 95 passed를 확인했습니다. 전체 검증·커밋 전 실행 한도에 도달하여 동일 worktree에서 후속 인스턴스로 인계했습니다.
  • 후속 검수·보완 완료: strict integer 입력, legacy migration fail-closed, 원주문일 rollover, cancel alarm 중복 억제 및 open-evidence 기반 bounded retry를 반영했고 focused suite 141 passed를 확인했습니다.
  • 회귀 보강 완료: wire/config 경계, migration, 재시작, KIS rollover/row 미가시성, 자동취소 및 기존 partial/full-fill·ledger 경로를 포함한 focused suite 154 passed.
  • 구현 commit 생성: 147873cb5d5280a99872aeca0e9b44942b41b3df. 팀장 재검증에서 핵심 focused 60 passed, 전체 1,038 passed, 51 skipped, Ruff/ProofLine/diff/show check 통과. 환경 의존 integration 51건은 당시 설정 부재로 skip됐습니다. 1차 독립 QC는 FAIL로 반려됐습니다: legacy row의 현재 날짜 fallback으로 인한 terminal 오인 위험과 REQUESTED 후 terminal 미확정 CRITICAL 누락을 보완 중입니다. 최종 검증은 미완료입니다.
  • QC 보완 commit 843df1d6f1a642282039a57d0de4ca85204d6bee 생성: legacy metadata 없는 주문의 현재일 조회·terminal 오인을 차단하고, REQUESTED 후 terminal unresolved CRITICAL/dedupe를 추가했습니다. post-fix 팀장 검증은 focused 114 passed, 1 skipped, 전체 1,040 passed, 51 skipped, Ruff/ProofLine/diff/show check 통과. 독립 재-QC 진행 중입니다.
  • 독립 재-QC 최종 PASS (mutation=false): focused 148 passed, 1 skipped, 전체 1,040 passed, 51 skipped, Ruff/ProofLine/diff check 통과. legacy adversarial probe에서 broker poll/cancel/transition/ledger가 모두 0이고 pending 및 sanitized CRITICAL alarm을 확인했습니다. skip은 PostgreSQL 41건(DSN 없음), RabbitMQ 9건(URL 없음), KIS sandbox 1건(credential 없음)입니다. 신규 finding은 없습니다.
  • 최종 HEAD 843df1d6f1a642282039a57d0de4ca85204d6bee, worktree clean. push/PR/main 반영/실제 주문/배포는 수행하지 않았습니다.