docs: record governance changes for REQ-008/017/023 defect fixes and add REQ-029
- REQ-017 CHG-20260518-01: document get_portfolio_by_name_and_user postgres defect fix; status Implemented preserved - REQ-008 CHG-20260518-01: document insert_ledger_trade postgres defect fix (HTTP 500 on ledger write-back); status Approved, re-verification required - REQ-023 CHG-20260518-01: add AC-5 (portfolio update --daemon-id CLI) and AC-6 (portfolio list daemon-id display); expand Impacted Area - REQ-029: new Interface REQ for portfolio list borderless output format; status Approved, minor-change fast path - SRS index: register REQ-029, advance Next ID to REQ-030, update Recent Change Log Summary Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -40,6 +40,43 @@
|
||||
|
||||
## Change Log
|
||||
|
||||
### CHG-20260518-01
|
||||
- Date: 2026-05-18
|
||||
- Author: repository-maintainers
|
||||
|
||||
#### Change Summary
|
||||
- `insert_ledger_trade()` 미구현 결함 수정 — PostgresPortfolioRepository에 메서드가 존재하지 않아 모든 POST /v1/assets/{asset_id}/ledger/trades 요청이 HTTP 500으로 실패하던 결함을 수정. Status Approved 유지.
|
||||
|
||||
#### Intent
|
||||
- `app/api/v1_ledger.py:78`에서 `repo.insert_ledger_trade()`를 호출하지만 PostgresPortfolioRepository에 구현이 없어 AttributeError → HTTP 500이 발생했다. FakeRepo 기반 테스트는 통과했으나 실 DB 환경에서는 endpoint 전체가 불동작 상태였다. trex-basic의 write-back이 전면 차단된 High 심각도 결함이었으며, 구현을 추가해 정상화했다.
|
||||
|
||||
#### Acceptance Criteria Delta
|
||||
- Added: 없음
|
||||
- Updated: 없음
|
||||
- Removed: 없음
|
||||
|
||||
#### Impacted Area Delta
|
||||
- Docs: 없음
|
||||
- Modules:
|
||||
- `app/repositories/postgres.py`: `insert_ledger_trade(asset_id, order_id, execution_id, side, quantity, price, executed_at, fee_amount, tax_amount)` 추가. `INSERT INTO ledger_trades ... ON CONFLICT ON CONSTRAINT uq_ledger_trades_idempotency DO NOTHING RETURNING *` 패턴으로 신규/중복 여부를 `(LedgerTrade, bool)` 튜플로 반환.
|
||||
- `app/repositories/portfolio_repository.py`: Protocol에 `insert_ledger_trade` 선언 추가, `LedgerTrade` import 추가
|
||||
- Tests: 기존 FakeRepo 기반 테스트는 영향 없음. 실 DB 통합 테스트(AC-1~7)는 별도 재검증 필요.
|
||||
|
||||
#### Delivery Trace Delta
|
||||
- Batches: BAT-010 (release-candidate) — 결함 수정이 BAT-010 delivery scope에 포함
|
||||
- Releases: REL-006 (draft) — 배포 전 결함 수정 완료. 실 DB 통합 재검증 후 배포 권장.
|
||||
|
||||
#### Revalidation Impact
|
||||
- Reverification Needed: yes
|
||||
- Existing Implementation Invalidated: no (AC 정의는 유효, postgres 구현만 누락되어 있었음)
|
||||
- Status Recommendation: keep-current (Approved; CHG-20260513-01에 의해 Approved 상태)
|
||||
- Follow-up Action: 실 DB 환경에서 AC-1(신규 체결 201), AC-2(중복 200+duplicate), AC-3(payload 불일치 409), AC-6~7(daemon mismatch/미배정 403) 통합 시나리오 검증 후 Implemented 전환 가능
|
||||
|
||||
#### Validation Plan
|
||||
- `POST /v1/assets/{asset_id}/ledger/trades`에 유효 daemon-bound service-token으로 요청 시 HTTP 201 반환 확인
|
||||
- 동일 (asset_id, order_id, execution_id) 재요청 시 HTTP 200 + status=duplicate 확인
|
||||
- daemon mismatch, 미배정 asset 요청 시 HTTP 403 확인
|
||||
|
||||
### CHG-20260513-01
|
||||
- Date: 2026-05-13
|
||||
- Author: repository-maintainers
|
||||
|
||||
Reference in New Issue
Block a user