5.3 KiB
5.3 KiB
구현 진행 상황 evidence
이 파일은 ProofLine canonical lifecycle artifact가 아닌 GitHub issue comment 원문 evidence입니다.
- Source URL: https://github.com/fourblocks2020/trex-core/issues/58#issuecomment-5290005799
- Comment ID:
5290005799 - Author:
genichin - Created at:
2026-08-14T05:55:12Z - Updated at:
2026-08-14T06:38:38Z - Original body SHA-256:
471c6b3b5a70a1632e6e1d4076014a2cf967ffb45bba8ff3bffe122fee39e037 - Captured from GitHub API:
2026-08-14
Original Comment Body
구현 진행 상황
상태: 🟢 구현·검증 완료
구현 계획 및 작업 목록
- 1. 구현 기준선과 영향 범위 확인
- 승인된 #58 본문을 변경 범위의 기준으로 고정
- timeout 계산, 주문 제출정보 영속화, KIS 주문조회, 취소상태, alarm 및 migration 경로 확인
- 2. 기본 timeout 및 입력 검증 구현
- timeout 생략 또는
null이면 매수·매도 모두 3,600초 적용 - 전략 payload와 인스턴스 설정은
1..3600초만 허용 - 범위 밖 값은 clamp하지 않고 주문 제출 전에 명시적으로 거부
- timeout 생략 또는
- 3. 원주문 시각·날짜 영속화와 재시작 복구 구현
- timeout 기준점과 KIS 주문 조회일을 일반
updated_at과 분리 - 날짜가 넘어가거나 daemon이 재시작돼도 원주문 날짜로 상태 조회
- timeout 기준점과 KIS 주문 조회일을 일반
- 4. 장마감 취소 실패 후 fail-closed reconciliation 구현
- 취소 API의
REQUESTED/REJECTED/UNKNOWN을 terminal 상태로 오인하지 않음 - terminal broker evidence 전까지 슬롯 재사용 금지
- 불명확 상태에서 CRITICAL alarm 발생
- 주문조회로 open 상태를 확인한 경우에만 bounded retry를 허용하고 blind retry 금지
- 취소 API의
- 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. 팀장 재검증에서 핵심 focused60 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 팀장 검증은 focused114 passed, 1 skipped, 전체1,040 passed, 51 skipped, Ruff/ProofLine/diff/show check 통과. 독립 재-QC 진행 중입니다. - 독립 재-QC 최종 PASS (
mutation=false): focused148 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 반영/실제 주문/배포는 수행하지 않았습니다.