Co-authored-by: genichin <4282227+genichin@users.noreply.github.com>
3.1 KiB
3.1 KiB
id, status
| id | status |
|---|---|
| dcy-0010 | confirmed |
Durable unmanaged-position lifecycle
Problem
현재 reconcile_core_holdings()는 broker 계정에만 존재하고 대상 instance_key의 managed slot·ledger에 없는 종목을 unmanaged_position warning/log로만 표면화한다. 이 상태는 매 주기 반복 관측되어도 최초 감지, 수량 변경, 해제, 운영자 triage 여부를 durable하게 구분하지 못한다. 또한 ownership projection이 켜진 KIS 경로에서는 전략용 projected balance가 manual/타 instance 보유를 제거하므로, reconciliation이 실제 broker-only unmanaged position을 아예 보지 못할 수 있다.
Evidence
- GitHub issue #85는 unmanaged identity를
(instance_key, symbol)로 격리하고, 최초 감지·수량 변경·해제와 마지막 broker 관측 시각을 durable하게 보존하며, 같은 수량 반복 관측의 로그/알림 폭주를 억제할 것을 요구한다. - Issue 본문은 운영자가 broker evidence와 함께 managed inclusion, approved exception, investigating disposition을 기록할 수 있어야 하고, broker 조회 실패 또는 partial/projected balance 부재를 quantity 0이나 resolved로 해석해서는 안 된다고 명시한다.
- 현재 ownership wrapper
get_balance()는 strategy ownership projection만 반환하므로 unmanaged/manual holdings를 숨긴다. 따라서 production wiring은 주문용 projected broker와 별도로 authoritative full-balance reader를 reconciliation에 주입해야 한다. - 현행 문서
docs/interface-contract.md와docs/runtime-flows.md는 broker-only 분류가 persistence나 DB schema를 바꾸지 않는다고 적고 있어, 새 durable lifecycle contract를 소유하는 승인된 AC가 필요하다.
Scope
- 이 Line은 broker-only
unmanaged_position을(instance_key, symbol)keyed durable lifecycle state로 저장하고,quantity,first_seen_at,last_seen_at,quantity_changed_at,resolved_at, lifecycle state 및 non-secret operator evidence를 조회 가능하게 하는 contract를 다룬다. - Reconciliation은 authoritative full-balance snapshot에서만 부재 해제를 수행한다. Marker가 없거나 projected/partial balance인 reader는 detect/update에는 사용할 수 있어도 resolve authority를 갖지 않는다.
- Ownership-aware trading broker는 그대로 주문/전략 조회에 사용하되, unmanaged reconciliation 입력은 별도의 authoritative balance reader를 사용한다.
- 동일 active lifecycle에서 반복 같은 수량 관측은
last_seen_at만 갱신하고 새 detect/change alarm·audit를 만들지 않는다. Resolved 후 재탐지되면 새 active lifecycle로 reopen되며 이전 operator disposition 현재값은 carry-over 하지 않는다. - 운영자 disposition은 explicit command와 evidence reference를 요구하고 audit trail에 append된다. CLI는 current state와 audit trail을 둘 다 조회 가능해야 한다.
- 이 Line은 broker 주문, slot 생성, synthetic ledger backfill, warning 자동 삭제 또는 manual holdings의 원인 추정을 도입하지 않는다.