3.8 KiB
3.8 KiB
구현 진행 상황 — GitHub Issue #23 비정식 증적
이 문서는 ProofLine canonical artifact가 아니다. #23 구현 당시 GitHub 댓글을 출처와 함께 원문 보존한 비정식 증적이다. Source: https://github.com/fourblocks2020/portfolio-hub/issues/23#issuecomment-5275751156 Author:
genichinCreated:2026-08-13T03:53:46ZUpdated:2026-08-13T04:06:33Z
구현 진행 상황
- 대상: #23 포트폴리오 목록 응답에 ledger 기반 투자금 집계 추가
- 브랜치:
feat/23-ledger-investment-aggregates - 기준:
origin/main(34792bdb5c38dc0b79ffa45391779e7667c51948) - 상태: 구현·검증·독립 리뷰 완료 (커밋·푸시 전)
- 최종 업데이트: 2026-08-13
구현 계획 및 작업 목록
- #23의 확정 요구사항과 OQ-23-1 결정(A안: 유효 원장 기준)을 재확인한다.
- 최신
origin/main에서 전용 구현 브랜치를 생성한다. - 기존 repository protocol, PostgreSQL adapter, in-memory/test doubles, 목록 route 조립 경계를 확인한다.
- REVERSAL-aware 집계와 목록 응답에 대한 실패 테스트를 먼저 추가하고 RED를 확인한다.
PortfolioItem에net_contributed_capital,cumulative_profit_withdrawnadditive 필드를 추가한다.- 여러 portfolio ID를 한 번에 처리하는 grouped ledger aggregate repository 계약을 구현한다.
REVERSAL.target_ledger_entry_id가 참조하는INVEST/WITHDRAW/PROFIT원거래를 집계에서 제외한다.- 기존 단건
returns/summary를 같은 유효 원장 집계 의미로 정렬한다. - 가시성·
include_disabled·market필터가 적용된 반환 대상 ID만 집계해 목록 항목에 결합한다. - ledger가 없는 항목은 두 신규 값을
0.0으로 반환한다. - API/interface 문서에 순투자현금·누적 수익 인출액 의미와 REVERSAL 정책을 반영한다.
- 집중 테스트를 통과시킨다.
- 전체 테스트·lint/static check·diff hygiene를 통과시킨다.
- 독립 코드 리뷰를 수행하고 발견 사항을 해소한다.
- 최종 변경 파일·테스트 결과·잔여 위험을 이 댓글에 기록한다.
진행 기록
- 2026-08-13: 구현 브랜치 생성 및 #23 확정 결정 재확인.
- 2026-08-13: repository/API/test 경계 조사 완료.
uv run --isolated --extra dev pytest -q tests/test_portfolio_ledger_aggregates.py tests/test_v1_portfolios_list.py tests/test_v1_portfolios_manual_ledger.py실행 결과 6 failed, 32 passed로 신규 계약의 RED를 확인함. - 2026-08-13: schema, repository protocol, PostgreSQL grouped aggregate, list route 결합, 단건 summary 공용화 구현. 동일 집중 명령 재실행 결과 38 passed.
- 2026-08-13:
docs/interface-contract.md,docs/runtime-flows.md에 필드 의미·유효 원장·grouped aggregate·목록/단건 일관성 계약 반영. - 2026-08-13: 저장소 내부 잔존
.worktrees/와 로컬.env가 원본 작업트리 전체 테스트를 오염시켜, HEAD에서 clean detached worktree(/tmp/portfolio-hub-23-verify)를 만들고 #23 diff만 적용해 재검증. 전체 598 passed, 6 skipped, focused 38 passed, compileall·git diff --check·Ruff fatal 규칙(E9/F63/F7/F82) 통과. - 2026-08-13: 독립 read-only 코드 리뷰 PASS. Blocking/High/Medium finding 없음. 비차단 Low 후속 권고: (1) 실제 PostgreSQL integration fixture로
ANY(%s)·NUMERIC aggregate·REVERSAL 결과 검증, (2) 운영 규모에서 anti-joinEXPLAIN (ANALYZE, BUFFERS)관찰 및 필요 시 reversal partial index 검토.
각 작업이 실제로 완료되고 검증될 때마다 이 댓글의 체크박스와 진행 기록을 갱신한다. 체크 표시는 구현 완료 또는 해당 검증의 실제 통과를 의미하며, 배포·릴리스 완료를 의미하지 않는다.