Commit Graph
199 Commits
Author SHA1 Message Date
jordan 0266992238 feat: add bounded KIS account read recovery 2026-07-29 17:40:01 +09:00
jordan 3dd8eefc92 fix: persist uncertain cancel outcomes 2026-07-29 17:17:14 +09:00
jordan a656350a35 feat: resolve and persist actual order venue 2026-07-29 17:10:32 +09:00
jordan 6398ff250c docs: define broker uncertainty gap closure 2026-07-29 17:02:55 +09:00
jordan 479cb39a7e feat: propagate intent venue through execution 2026-07-29 16:55:20 +09:00
jordan 7084304c9f docs: preserve KIS traffic certification evidence 2026-07-28 20:40:49 +09:00
jordan d6c2e2d28a fix: reconcile KIS exchange rejections 2026-07-28 13:29:43 +09:00
jordan 24c42d1c92 fix: reconcile ambiguous KIS order submissions 2026-07-28 11:17:06 +09:00
jordan b72bf9f394 feat: isolate strategy-owned KIS balances 2026-07-27 11:39:07 +09:00
Hermes Agent 646ece93cb docs(release): confirm M5 coordinated train 2026-07-17 17:39:10 +09:00
Hermes Agent 51b584edd2 docs(release): complete REL-011 approval evidence 2026-07-17 17:33:29 +09:00
Hermes Agent 8f33a83bf6 docs(release): capture REL-011 feedback 2026-07-17 17:30:19 +09:00
Hermes Agent 0929f9300b docs(release): confirm REL-011 historical rollout 2026-07-17 17:29:49 +09:00
Hermes Agent 5c6cf5baee docs(release): confirm REL-012 production rollout 2026-07-17 16:13:23 +09:00
genichin 869e07fb34 feat(reconcile): safely seed canonical cost basis (#43)
Merged after independent PR QC re-check PASS. REL-012 remains release-pending; no production execution is authorized by this merge.
2026-07-17 10:13:56 +09:00
Hermes Agent 3190c4b3f7 docs(release): clarify REL-012 provenance gates 2026-07-17 10:11:09 +09:00
Hermes Agent 81c9259be1 docs(release): record REL-012 source publication 2026-07-17 10:01:56 +09:00
Hermes Agent d843571fdb docs(release): pin REL-012 deployment evidence 2026-07-17 09:59:05 +09:00
Hermes Agent 81a853a314 feat(reconcile): safely seed canonical cost basis 2026-07-17 09:57:08 +09:00
Hermes Agent 18bd8d9f0b docs(release): add M5 coordinated rollout readiness 2026-07-16 07:42:32 +09:00
Hermes Agent 7abd61dd83 docs(release): draft M5 core broker truth rollout 2026-07-16 07:26:35 +09:00
Hermes Agent 6d90f8951d docs(req): confirm BAT-057 requirements implemented 2026-07-15 08:53:12 +09:00
genichin 94e148940a Merge pull request #42 from fourblocks2020/feat/dcy-037-operator-broker-truth-hotfix
fix(broker): enforce operator broker truth boundary
2026-07-15 08:47:37 +09:00
Hermes Agent 06e515d6e5 docs(batch): confirm BAT-057 verification 2026-07-15 08:25:59 +09:00
Hermes Agent 1311f2e893 docs(batch): update parity verification evidence 2026-07-15 08:20:00 +09:00
Hermes Agent e95bd4f8b2 test(reconciliation): verify repository lookup parity 2026-07-15 08:18:32 +09:00
Hermes Agent 68dd28cf12 docs(batch): record BAT-057 draft verification evidence 2026-07-15 08:11:27 +09:00
Hermes Agent 216e462df4 fix(broker): enforce operator broker truth boundary 2026-07-15 08:07:21 +09:00
Hermes Agent 1b63e79edc docs: add BAT-057 operator broker truth design 2026-07-15 07:33:26 +09:00
genichin c1e67c7055 docs: approve dcy-037 emergency requirements 2026-07-14 22:40:38 +09:00
Hermes Agent 48b2af148e docs(discovery): confirm operator broker truth hotfix scope 2026-07-14 22:23:46 +09:00
genichin 7845fbe856 REQ-117/118 Implemented — bat-056 머지 079fc04, QC opus PASS(주문 페이로드 불변 잠금). 배포게이트: NXT 소액 스모크(poll_fill 실측) 선행 2026-07-07 06:56:42 +09:00
genichin 079fc042ec Merge pull request #38 from fourblocks2020/feat/req-117-118-kis-broker-venue
bat-056: KIS 브로커 venue 파라미터화 — EXCG_ID_DVSN_CD 명시 (REQ-117/118)
2026-07-07 06:54:38 +09:00
genichin 70a732b60a REQ-117/118 Approved (confirm-req) — OrderRequest.venue + KIS 브로커 EXCG 명시/취소 venue 의미론/poll_fill NXT/현재가 market. dcy-002 NXT 트랙(고위험, QC opus 예정) 2026-07-06 23:26:07 +09:00
genichin 0ea2103865 REQ-116 Implemented (confirm-req-implemented) — bat-055 머지 dc6d7a9, QC opus PASS-WITH-NOTES(watchdog 실증). 배포 게이트: pf-hub REQ-055 선행 2026-07-06 23:26:07 +09:00
genichinandClaude Fable 5 eca7937543 docs(bat-056): verification report — 794 passed, 47 skipped, OI-1 open item
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5
2026-07-06 23:24:51 +09:00
genichinandClaude Fable 5 ee3dc83a93 feat(broker): KIS venue parameterization — OrderRequest.venue + EXCG_ID_DVSN_CD (REQ-117/118, BAT-056)
- OrderRequest.venue: str = "KRX" additive 추가 (기존 위치 인수 순서 불변)
- BrokerPort.cancel_order: venue: str = "KRX" 파라미터 추가
- BrokerPort.get_current_price: market: str = "J" 파라미터 추가
- KISBroker.submit_order: EXCG_ID_DVSN_CD=req.venue 항상 명시 전송
- KISBroker.cancel_order: EXCG_ID_DVSN_CD=venue 항상 명시 전송
- KISBroker.get_current_price: FID_COND_MRKT_DIV_CODE=market 파라미터화
- PaperBroker: cancel_order/get_current_price 시그니처 정합 (venue/market 수신·무시)
- poll_fill TR 유지 (TTTC8001R) — NXT 체결 포함 여부 미확인 open item (코드 주석 기록)
- tests/adapters/broker/test_venue.py: REQ-117 AC-1~5 + REQ-118 AC-1~8 신규 17개
- docs: interface-contract.md OrderRequest/BrokerPort 섹션 + change log 추가
- docs: runtime-flows.md venue 전달 경로 명시 + change log 추가

결과: 794 passed, 47 skipped (기존 777+47 대비 신규 17개 추가 전부 통과)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5
2026-07-06 23:24:51 +09:00
genichin dc6d7a943b Merge pull request #37 from fourblocks2020/feat/req-116-slots-strategy-field-filter
bat-055: slots.req strategy 필터 + row strategy/markets 필드 (REQ-116)
2026-07-04 11:37:18 +09:00
genichin e8089f4a69 docs: interface-contract.md BAT-031 changelog 줄 UTF-8 손상 복원 (QC 권고, 코드 무관) 2026-07-04 11:16:20 +09:00
genichinandClaude Fable 5 690071afad feat(slots): additive strategy fields + filter (REQ-116, BAT-055)
trex.slots.req wire 계약 additive 확장 — 기존 소비자(orb/tsl) backward compatible.

- PortfolioItem: strategy_name(Optional[str]) + markets(list) 필드 추가
- hub_read.py: get_portfolios()에서 strategy_name/markets 파싱 추가 (safe default)
- slot_to_dict(): strategy_name/strategy_params/markets 3필드 row에 추가 (SnapshotStore→PortfolioItem 경유)
- make_slots_rpc_handler(): strategy 요청 파라미터 → Python 레벨 후처리 필터 (available_slots 계산 이후, REQ-073 AC-6 불변)
- 테스트: AC-1~8 전수 + hub_read 파싱 + 회귀 갱신 (777 passed, 47 skipped)
- docs/interface-contract.md: 요청 파라미터·응답 행 스키마·소스 테이블·REQ-074 AC-5 주석 갱신

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5
2026-07-04 11:10:01 +09:00
genichin 5267e72efe REQ-116 Approved (confirm-req, 팀장) — slots.req strategy 필터 + row strategy_name/params/markets additive. tvr e2e 배관 ②, 필드명 REQ-055와 상호잠금 2026-07-04 10:55:19 +09:00
genichinandClaude Opus 4.8 e48908489a docs(rel-010): released 마감 — M3 배포 완료(314047b, dcy-034/035/036+slot_filled+verify핫픽스)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5
2026-06-30 17:03:31 +09:00
genichinandClaude Opus 4.8 314047b4de docs(req-106): verify ImportError 핫픽스 change-req + postmortem
51cc3cc(make_broker→_build_broker) 거버넌스 기록 — 증상·근본원인·검증(운영 재검증 OK)·
테스트 갭 postmortem·롤백. main 직접푸시 사후추인 노트 포함.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5
2026-06-30 13:55:22 +09:00
genichin 9e787c81a2 Merge pull request #35 from fourblocks2020/feat/dcy-036-kis-credential-inject
feat(dcy-036/bat-054): KISBroker 양의 경로 — 데몬-스코프 KIS 인증정보 실거래 주입
2026-06-30 13:54:49 +09:00
genichin aa0189bd89 Merge pull request #36 from fourblocks2020/feat/slot-filled-no-route
fix(slot-filled): 매도 체결 이벤트 NO_ROUTE 라우팅 갭 해소 (M3)
2026-06-30 13:54:37 +09:00
genichinandClaude Opus 4.8 51cc3ccb09 fix(cli): verify 명령 ImportError 핫픽스 — make_broker→_build_broker
운영 배포 스모크(REL-010 STEP2)서 trex-core verify가 ImportError(make_broker 부재)로 실패.
_cmd_verify가 존재하지 않는 trex_core.adapters.broker.make_broker를 import하던 것을
_cmd_sync와 동일한 trex_core.runtime.daemon._build_broker로 교체. 회귀 테스트 2개 추가.
747 passed/회귀 0. CLI 전용, trading/wire 무관.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5
2026-06-30 13:30:07 +09:00
genichinandClaude Opus 4.8 de97bc842d fix(slot-filled): 매도 체결 이벤트 NO_ROUTE 해소 — strategy_id 전이 전 캡처
INACTIVE 전이가 strategy_id를 None 초기화(REQ-057) → 라우팅키 slot_filled_sell._.{sym}
→ orb/tsl 바인딩 불일치 NO_ROUTE/DLQ. _on_filled/_on_partial_cancel에서 전이 직전
strategy_id 캡처해 emitter에 전달. wire 계약 불변(포맷 유지·값 교정). QC opus PASS, 747 passed/회귀 0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5
2026-06-29 09:38:45 +09:00
genichinandClaude Opus 4.8 ababf80234 docs(rel-010): M3 trex-core 릴리즈 문서 (dcy-034/035/036)
REL-010 draft — reconcile cold-start + WAC 리포트 + dcy-036 휴면배포 묶음.
배포 선결=PR #35 머지. 미푸시(사장님 결재 시 push).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5
2026-06-28 23:03:57 +09:00
genichinandClaude Sonnet 4.6 6b066e19cb feat(bat-054): 그날-시작 KIS 인증정보 양의 경로 주입 — KISBroker reinitialize (REQ-113 AC-2/AC-4, REQ-115 AC-1)
BAT-053 스캐폴드에서 연기된 양의 경로 완성:
- KISBroker.reinitialize(credential): app_key/app_secret/account_ref 교체 + L1 token 무효화
- SnapshotScheduler에 kis_reinit_callback 주입 지점 추가; 그날-시작 성공 시 callback 호출
- daemon.py에 _build_kis_reinit_callback() 헬퍼 + SnapshotScheduler 조립 수정
- 신규 테스트 12개 추가: 757 passed / 47 skipped (기존 745 대비 +12, 회귀 0)

안전 불변식 유지:
- credential_fetch_enabled=False(기본) 경로 byte-for-byte 보존
- fail-closed 불변식 미파괴 (reinit 실패 시 entry_allowed 유지)
- AMQP wire 계약 변경 없음

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5
2026-06-28 19:51:48 +09:00
genichinandClaude Opus 4.8 a50b5e34a2 docs(req-113,req-115): dcy-036 confirm-req-implemented (BAT-054)
BAT-054로 REQ-113 AC-2/AC-4, REQ-115 AC-1 충족 → Approved→Implemented.
QC(opus) PASS-WITH-NOTES, blocker 0. REQ-115 AC-1 통합검증은 배포후 릴리즈 스모크(단서 부기).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5
2026-06-28 19:51:39 +09:00