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
genichin and Claude 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
genichin and Claude 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
genichin and Claude 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
genichin and Claude 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
genichin and Claude 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
genichin and Claude 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
genichin and Claude 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
genichin and Claude 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
genichin and Claude 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
genichin and Claude 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
genichin and Claude Opus 4.8
dc68e644d7
docs(dcy-036): confirm-req-implemented — REQ-112/114 Implemented, REQ-113/115 부분(Approved, KISBroker 재조립 M3 후속), BAT-053 release-candidate
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5
2026-06-28 12:34:23 +09:00
genichin
01655ab2d7
Merge pull request #34 from fourblocks2020/feat/dcy-036-daystart-credential-failsafe
...
dcy-036: 그날-시작 KIS 인증정보 fetch + fail-safe 로드 (스캐폴드) — BAT-053 (REQ-112~115)
2026-06-28 12:28:14 +09:00
genichin and Claude Sonnet 4.6
a612e8763b
docs(bat-053): draft-batch-verification 완료 — AC 커버리지 + 미해결 기록
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5
2026-06-28 11:00:18 +09:00
genichin and Claude Sonnet 4.6
e4e5c70422
feat(bat-053): 그날-시작 KIS 인증정보 fetch + fail-safe 로드 (REQ-112~115)
...
REQ-112: BrokerCredentialPayload/TradingContext 데이터클래스 + PortfolioHubReadPort.fetch_broker_credential() 포트 메서드 + hub_read 어댑터(_fetch_user_info 헬퍼 추출) + stub_read 결정론 stub
REQ-113: DaemonInstanceConfig/DaemonConfig.credential_fetch_enabled opt-in(기본 False) + TOML 파싱 + break-glass(TREX_KIS_BROKER_BREAK_GLASS) 감지
REQ-114: SnapshotScheduler._maybe_fetch_credential() — fail-closed 3조건(unavailable/broker-null/trading_disabled) + CRITICAL 알람 DAY_START_LOAD_FAILED + IntentService entry_allowed_fn 게이트(BuyIntent 차단, SellIntent 통과)
REQ-115: 그날 고정 캐시(_cached_credential/_credential_date) — 동일 날짜 재fetch 방지 + app_secret 메모리 한정(Redis 미기록)
스텁 기반 구현: 실 portfolio-hub/네트워크 없이 AC 전부 단위 테스트.
회귀: credential_fetch_enabled=False(기본) 경로 byte-for-byte 보존.
745 passed, 47 skipped (0 failed).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5
2026-06-28 11:00:18 +09:00
genichin and Claude Opus 4.8
f9c4fb4eba
docs(dcy-036): draft-req + confirm-req — REQ-112~115 Approved (그날-시작 KIS fetch + fail-safe 로드)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5
2026-06-28 10:12:18 +09:00
genichin and Claude Opus 4.8
9312ac4401
docs(dcy-036): confirm-discovery — 그날-시작 KIS 인증정보 fetch + fail-safe 거래 로드 (교차발원 pf-hub dcy-010)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5
2026-06-28 00:17:18 +09:00
genichin and Claude Opus 4.8
6da552bedb
docs(dcy-035): confirm-req-implemented — REQ-109/110/111 Implemented, BAT-052 release-candidate
...
머지 PR #33(81d06d9 ) 반영. 실현PnL WAC 멀티데이 리포트 delivery 완료.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5
2026-06-26 20:59:20 +09:00
genichin
81d06d9db4
Merge pull request #33 from fourblocks2020/feat/dcy-035-multiday-wac-report
...
feat(dcy-035): 멀티데이 WAC 실현PnL 운영리포트 (REQ-109/110/111)
2026-06-26 20:52:38 +09:00
genichin
a96fd54799
docs/style(bat-052): QC 재검 비차단 minor 정리
...
- docs/operations.md: report 섹션을 WAC 실현PnL 정의로 갱신 (portfolio-hub WAC
기반, 매수 fee cost basis 편입, 멀티데이 정확; 미가용 시 실현섹션 에러·타섹션 정상;
당일 net 함수는 회귀 비교용 보존 명시)
- docs/runtime-flows.md: 운영 조회 리포트 흐름에 BAT-052 WAC 경로(get_realized_pnl
N콜) + degrade(폴백 없음) 단계 추가
- docs/batches/bat-052_*/: CHG-20260626-02 기준으로 buy_fee_only_assets·
buy_fee_by_asset 잔존 참조 제거 및 최종 구현 일치 갱신 (planning/design/
implementation/verification)
- tests/application/test_operator_report.py:82: 섹션 헤더 주석에서
buy_fee_by_asset 단어 제거 및 CHG-20260626-02 근거 추가 (주석만)
- trex_core/runtime/cli.py: __import__("datetime").timezone/timedelta inline
패턴을 정식 from datetime import timezone, timedelta로 교체 (동작 동일)
pytest: 717 passed, 47 skipped (로직 변경 없음, 회귀 0)
2026-06-26 20:35:17 +09:00