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

5.4 KiB

GitHub issue #60 comment evidence


구현 진행 상황

  • 대상: [Discovery] broker 실행 실패의 기록·상태 수렴 경계
  • 브랜치: main
  • 기준: main (be98965f2c5d1bad933802282bd7284642203cb8)
  • 상태: 로컬 main 구현·검증·커밋 및 독립 QC PASS — 미푸시, 미배포
  • 최종 업데이트: 2026-08-19 12:57:49 KST

구현 계획 및 작업 목록

  • 명시적으로 주문이 거부되고 미체결임이 확인된 매도 주문을 새 주문 없이 보유 상태로 복구한다.
    • 주문 배정 정보를 정리하고 기존 보유수량을 유지하는 집중 검증을 통과했다.
  • 주문 결과가 불명확한 경우 중복 주문을 만들지 않고 조회·대조 절차를 우선한다.
    • 기존 결과불명 sentinel·조회 경로와 재시작 중복 제출 방지 회귀를 확인했다.
  • 전략 서비스에 KIS 실패·재시도 판단 정보를 전달하지 않고, core가 자동 주문 재시도를 추가하지 않았음을 검증한다.
    • sell 응답의 retryable 필드를 제거하고 strategy RPC 응답에 retryability가 없음을 검증했다.
  • venue 누락 시 SOR 기본값, 명시 venue 보존, AUTO 제거·기존 데이터 전환 계약과의 교차 회귀를 검증한다.
    • 원주문 order_venue와 실제 execution_venue를 분리하고, KIS allowlist 파싱·outbox 이중 보존·실제 PostgreSQL migration 검증을 완료했다.
  • 관련 집중 테스트와 전체 회귀 테스트를 실행하고 결과를 기록한다.
  • 변경사항을 검토하고 로컬 main에 커밋한다.
    • commits: 15aeae6930f8c3e6ef9cf659f41278b099a78459, blocker fixes 7366cadf03fc6002bfd01ecf0cba7c24486bb618, 359ea098ff717e7f04cf4206dcbc64ad17b47755; push·PR·배포·릴리스·실주문은 수행하지 않았다.

진행 기록

  • 2026-08-19 11:29:51 KST — 승인된 이슈 본문과 main 기준 SHA를 확인하고 별도 worktree·기능 브랜치 없이 구현을 시작했다.

  • 2026-08-19 11:29:51 KST — sell 명시적 거부 후 pending_sell → holding, dispatch 정리, 후속 자동 재주문 부재를 검증했다.

  • 2026-08-19 11:29:51 KST — 결과불명 주문은 durable sentinel과 broker lookup/reconciliation 경로를 유지하며 재제출하지 않는 회귀를 확인했다.

  • 2026-08-19 11:29:51 KST — venue 누락→SOR, explicit KRX/NXT/SOR 보존, AUTO admission 거부, wall-clock routing 제거, persisted AUTO→SOR migration을 구현했다.

  • 2026-08-19 11:29:51 KST — 집중 테스트 127 passed; 전체 회귀 1062 passed, 51 skipped; ruff All checks passed!.

  • 2026-08-19 11:29:51 KST — disposable PostgreSQL 16 실제 엔진 검증 23 passed; 검증 컨테이너를 제거했다.

  • 2026-08-19 11:29:51 KST — 로컬 main commit 15aeae6930f8c3e6ef9cf659f41278b099a78459 생성 후 집중 테스트 127 passed, ruff 통과, 작업트리 clean을 재확인했다.

  • 2026-08-19 11:59:05 KST — 독립 QC 결과 FAIL. KIS adapter가 SOR 요청값을 ack/slot/ledger에 그대로 보존하고 일별 체결조회 row의 실제 KRX/NXT venue를 파싱하지 않아 AC 6을 충족하지 못한다. 수정·독립 재검증 전에는 delivery 검증 완료로 판정하지 않는다.

  • 2026-08-19 12:47:57 KST — 승인된 해결책을 적용했다. Slot/취소에는 원주문 KRX/NXT/SOR를 유지하고, KIS fill의 ORD_EXG_GB 및 명시 exchange-id allowlist에서 실제 KRX/NXT를 FillStatus.execution_venue로 전달한다. outbox는 order_venue와 실제 venue를 분리 저장하며 SOR 단독·미지원 코드는 실제 거래소로 추론하지 않는다.

  • 2026-08-19 12:47:57 KST — 전체 회귀 1074 passed, 51 skipped, disposable PostgreSQL 16 검증 23 passed, ruff 통과, migration 024 및 outbox round-trip을 확인했다.

  • 2026-08-19 12:48:36 KST — blocker 수정 commit 7366cadf03fc6002bfd01ecf0cba7c24486bb618을 로컬 main에 생성하고 worktree clean을 확인했다. 독립 재QC를 시작했다.

  • 2026-08-19 12:54:15 KST — 독립 재QC에서 migration 024의 historical SOR actual 값과 replay-safe backfill 결함을 blocker로 확인했다. order_venue IS NULL one-time backfill, historical SOR actual→NULL, actual venue KRX/NXT/NULL DB constraint를 적용했다. 신규 actual NXT + order KRX 행이 replay 후 보존됨을 검증했다.

  • 2026-08-19 12:54:15 KST — 수정 commit 359ea098ff717e7f04cf4206dcbc64ad17b47755; 전체 1074 passed, 52 skipped, PostgreSQL 16 24 passed, ruff 통과, worktree clean. 독립 재QC를 다시 요청한다.

  • 2026-08-19 12:57:49 KST — 독립 재QC PASS. blocker/critical/major/minor finding 없음. 독립 PG16에서 historical SOR→order SOR+actual NULL, 정상 NXT/KRX replay 보존, actual SOR·AUTO·NULL order 거부를 확인했다. HEAD 359ea098ff717e7f04cf4206dcbc64ad17b47755, worktree clean.

각 작업이 실제로 완료되고 검증될 때마다 이 댓글의 체크박스와 진행 기록을 갱신한다. 체크 표시는 구현 완료 또는 해당 검증의 실제 통과를 의미하며, 배포·릴리스 완료를 의미하지 않는다.