Files
portfolio-hub/.proofline/lines/line-0001/evidence/implementation-progress.md
T

3.8 KiB

구현 진행 상황 — GitHub Issue #23 비정식 증적

이 문서는 ProofLine canonical artifact가 아니다. #23 구현 당시 GitHub 댓글을 출처와 함께 원문 보존한 비정식 증적이다. Source: https://github.com/fourblocks2020/portfolio-hub/issues/23#issuecomment-5275751156 Author: genichin Created: 2026-08-13T03:53:46Z Updated: 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_withdrawn additive 필드를 추가한다.
  • 여러 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-join EXPLAIN (ANALYZE, BUFFERS) 관찰 및 필요 시 reversal partial index 검토.

각 작업이 실제로 완료되고 검증될 때마다 이 댓글의 체크박스와 진행 기록을 갱신한다. 체크 표시는 구현 완료 또는 해당 검증의 실제 통과를 의미하며, 배포·릴리스 완료를 의미하지 않는다.