Commit Graph
10 Commits
Author SHA1 Message Date
genichin ca757009f5 feat: add portfolio snapshot read layer 2026-06-06 09:33:00 +09:00
genichinandClaude Opus 4.8 0d6854aaa5 docs(discovery): add dcy-006 RabbitMQ transport (confirmed) + advance dcy-005
dcy-006 (new, confirmed — Confirmed By: Justin): trex-core ↔ 전략 모듈
통신 transport를 RabbitMQ로 전환. OQ-1~7 전부 Answered —
- HTTP /v1 API 완전 대체(표면 0, healthz 제거; liveness=프로세스 감독)
- 토폴로지: 스냅샷·intent admission = RPC(direct reply-to), 이벤트 = topic
- delivery: at-least-once + idempotency = effectively-once, 스냅샷 reconcile
- degrade: 버퍼링 금지·보수적 중단, core 자율 안전 매도 독립(미구현, 추후)
- 클라이언트: pika 동기 + 스레드 런타임(uvicorn 제거)
- 자격증명: TREX_RABBITMQ_URL

dcy-005 (advance): strategy_id 필터 + 런타임 pause/resume(FR-8/9);
옵션 D(체결 시 portfolio-hub write 응답 cash_balance_after/asset_quantity_after
갱신, portfolio-hub#8); OQ-4 holding 포함·pending/warning/pause 마스킹;
OQ-11 view-mode 파라미터 + OQ-12; 응답 용어 sweep.

index: dcy-006 행 추가(confirmed).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-05 22:33:42 +09:00
genichinandClaude Opus 4.8 6277d610ea Add dcy-005 Discovery (draft): portfolio-hub asset snapshot read API
- new-discovery dcy-005: read-direction follow-up of dcy-004 (deferred
  get_assets/get_portfolios). trex-core exposes portfolio-hub asset snapshot
  as a read API, returning buy candidates with slot-occupied symbols filtered
  out (slot overlay) and an empty list when no slots remain.
- 6 open questions pinned: snapshot shape, freshness/cache, core-proxy policy,
  in-flight overlay (ledger outbox eventual consistency), availability degrade,
  empty-list semantics.
- Link dcy-004 후속 Discovery 참조 → dcy-005; add dcy-005 to discovery index.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 22:51:30 +09:00
genichinandClaude Opus 4.8 01a51d0c16 Advance dcy-004 ledger slice: confirm Discovery, draft+approve REQ-017~020, draft BAT-006
- confirm-discovery dcy-004: draft→confirmed (Confirmed By: Justin Ko),
  OQ-1~3 resolved, scope/R-1 accepted, portfolio-hub contract deferred to REQ/delivery
- draft-req: REQ-017 (LedgerPort + portfolio-hub adapter + stub), REQ-018
  (fill→ledger recording + FillStatus exec_id/fee), REQ-019 (ledger outbox
  durability + correlation_id idempotency), REQ-020 (baseline alignment);
  NFR-1~3 absorbed
- confirm-req: REQ-017~020 Proposed→Approved
- draft-batch: BAT-006 (standard) bundling REQ-017~020 from dcy-004
- Update SRS/Discovery/batches indexes

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 22:32:27 +09:00
genichinandClaude Opus 4.8 b37b16be93 Add dcy-004 Discovery (draft): portfolio-hub ledger integration
Record fills to the portfolio-hub ledger (orbit post_ledger_trade pattern)
so external accounting/positions reflect trades. The slot already carries
portfolio_id but nothing consumes it; this closes a deferral not previously
made explicit in dcy-003. Scope: LedgerPort + portfolio-hub adapter + stub,
record on buy/sell fill, execution_id idempotency, failure retry/hold;
out of scope: non-trade transactions, asset sync, reconciliation. OQ-1
(asset_id source), OQ-2 (durability), OQ-3 (exec data source) left for
confirm-discovery; handoff held.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 19:30:38 +09:00
genichinandClaude Opus 4.8 d60d720bc7 Add dcy-003 (confirmed) + REQ-011~015: broker execution + KIS + outbox
dcy-003 confirmed (all OQ answered, operator-confirmed scope/risk):
- OQ-1: paper/stub + real KIS Open API adapter (validated on KIS paper
  server; live account go-live config-gated, deferred).
- OQ-2: unified async fill (submit -> poll); paper is a deterministic
  async double (no synchronous shortcut) for faithful path coverage.
- OQ-3: option A — pending slot is the execution queue, broker_order_id
  is the idempotency guard; no separate outbox table (option B as a
  growth hook; intent_log stays dedup-only).
- OQ-4: dedicated background execution loop (claim -> submit -> poll ->
  reconcile); intent API only transitions to pending.

Decompose into REQ-011~015 (all Proposed): BrokerPort + paper double,
KIS adapter, execution loop, durability+reconciliation (Exception),
baseline alignment. NFR-1/2/3 absorbed. Update SRS index + dcy-003
created-REQ refs. Safety floor, KIS live account, strategy daemons, and
auth remain deferred to follow-up Discoveries.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 16:40:23 +09:00
genichinandClaude Opus 4.8 346a580856 Add dcy-002 Discovery (confirmed): slot-core daemon + HTTP intent API
Second iteration scope: promote the slot pure-domain core to a long-lived
daemon exposing a versioned HTTP API for buy/sell strategy daemons, backed
by durable single-writer PostgreSQL persistence.

All open questions resolved and operator-confirmed:
- OQ-1 durability: synchronous commit + intent_id idempotency + durable
  intent_log seam; full async outbox deferred to the broker-execution
  Discovery.
- OQ-2 framework: FastAPI + uvicorn.
- OQ-3 endpoints: /v1 set (healthz, intents/buy, intents/sell,
  intents/{id}, slots, capacity); cancel/preallocate excluded.
- OQ-4 schema: trex-core-owned migrations keyed to dcy-001 Appendix A
  (orbit-v2 DDL as reference), archive excluded, drift test realizes the
  DB-side check dcy-001 OQ-2 deferred.

Scope defers broker execution, safety floor, and strategy daemons to a
follow-up Discovery. Confirmed By Justin.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 10:56:08 +09:00
genichinandClaude Opus 4.8 8b23b89977 Confirm dcy-001: promote slot-domain Discovery to confirmed
Resolve scope/toolchain CONFIRM items (operator-confirmed), check off
remaining handoff items, and flip Freeze flags (Handoff 승인, Ready true,
Confirmed By Justin). Update discovery index row to confirmed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 22:19:30 +09:00
genichinandClaude Opus 4.8 0c29a32487 Add dcy-001 Discovery: trex-core base + slot pure-domain migration
First real Discovery after baseline bootstrap. Defines scope, FR/NFR,
risks, and success criteria for bootstrapping the trex-core Python
project and migrating the slot pure domain (no persistence/CLI).
Open questions OQ-1 (package namespace) and OQ-2 (column-contract
anchoring) left for confirm-discovery; handoff held.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 12:42:41 +00:00
genichinandClaude Opus 4.8 b40e569537 Bootstrap StagePilot baseline for slot domain migration
Initialize baseline seed, four baseline docs (project-structure,
runtime-flows, interface-contract, data-model), and the active
discovery/srs/batches/releases indexes. Content derived from the
trex-orbit slot pure-domain migration plan (trex-core as a new base,
pure domain only).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 09:47:14 +00:00