genichin
63ff4881b0
test(cli): stabilize required option assertion
2026-08-15 15:29:33 +09:00
genichin
6e10f71374
chore(lint): stabilize release import classification
2026-08-15 15:17:13 +09:00
genichin
9c8baac70b
feat(container): harden v0.1.1 publication
2026-08-15 15:14:36 +09:00
genichin
fd080496b3
feat(release): add verified image publication pipeline
2026-08-15 14:52:01 +09:00
genichin
f7b33784ab
Remove stage-pilot vendor files
v0.1.0
2026-08-15 14:13:43 +09:00
genichin
19b63a336e
docs(proofline): approve line 0004 requirements
2026-08-15 13:59:21 +09:00
genichin
2abd67da97
docs(proofline): record line 0004 QC remediation
2026-08-15 13:21:04 +09:00
genichin
e90519ad39
fix(daemons): block owner transfer while assigned
2026-08-15 13:20:02 +09:00
genichin
e2102b6f2b
feat(portfolios): persist and validate daemon assignment on create/update
...
POST /v1/portfolios now forwards a non-null managed_by_daemon_id into
create persistence, and both create and PATCH apply the same daemon
validation contract (UUID format -> 422, missing/foreign -> 404,
inactive -> 409, admin target-owner basis). Daemon validation locks the
daemon row FOR SHARE inside the portfolio write transaction so
validation and write form one atomic decision boundary.
Adds domain errors, repository protocol/signature updates, API/PostgreSQL
tests (POST->GET persistence, no partial state on failure, assignment vs
deactivation race), and contract/data-model documentation.
2026-08-15 12:56:53 +09:00
genichin
bb3bb5d3f0
docs(proofline): confirm line 0004 discovery
2026-08-15 12:15:39 +09:00
genichin
2a1a637fb9
Remove CLAUDE.md
2026-08-15 11:30:03 +09:00
genichin
6e02d92282
Add ProofLine criteria documentation and Strategy Catalog v1 implementation
...
- Add acceptance criteria documentation (AC-0013 through AC-0023)
- Add Line-0003 discovery documentation
- Implement Strategy Catalog v1 with new database migration
- Update portfolio API endpoints and schemas
- Refactor strategy and portfolio services
- Add strategy management CLI commands
- Update domain models with strategy catalog support
- Add comprehensive tests for v1 strategies
- Update design documentation (data model, interfaces, runtime flows)
2026-08-15 11:18:31 +09:00
genichin
5fc389dea8
docs(proofline): capture issue 25 approved specification
2026-08-13 16:36:51 +09:00
genichin
92df8e0c5a
docs(proofline): record issue 23 specification
2026-08-13 14:47:14 +09:00
genichin
8dcdbdc9e0
chore(governance): initialize ProofLine project
2026-08-13 13:40:17 +09:00
genichin
be3305a09b
chore(docs): remove retired delivery artifacts
...
Remove retired StagePilot commands, templates, lifecycle records, and historical delivery documents, and record the current uv dependency lock.
2026-08-13 13:36:43 +09:00
genichin
35e85981af
Merge pull request #24 from fourblocks2020/feat/23-ledger-investment-aggregates
...
feat: 포트폴리오 목록에 ledger 투자금 집계 추가
2026-08-13 13:30:15 +09:00
genichin
93840800fa
feat(portfolios): expose ledger investment aggregates
...
Add reversal-aware grouped manual-ledger aggregates to portfolio list responses and align the single-portfolio return summary with the same semantics.\n\nRefs #23
2026-08-13 13:23:31 +09:00
genichin
34792bdb5c
docs(release): draft M5 manual ledger rollout
2026-07-15 21:23:15 +09:00
genichin
914b3dc6e6
Merge pull request #21 from fourblocks2020/feat/dcy-012-portfolio-ledger-alembic-migration
...
feat(migrations): add BAT-025 ledger metadata Alembic migration
2026-07-15 20:26:35 +09:00
genichin
aac08eb524
docs(batch): record PR #21 QC pass and lead confirmation
2026-07-15 20:25:46 +09:00
genichin
bd51330a9a
docs(batch): reconcile PR #21 QC provenance
2026-07-15 20:10:53 +09:00
Hermes Agent
5f8097947c
docs(batch): confirm BAT-025 verification
2026-07-15 17:58:18 +09:00
Hermes Agent
2f82251e57
docs(batch): correct BAT-025 QC provenance
2026-07-15 17:58:18 +09:00
Hermes Agent
d48279f7ab
fix(migrations): harden BAT-025 PostgreSQL verification
2026-07-15 17:58:18 +09:00
genichin
1909caa22c
feat: BAT-025 add portfolio ledger manual metadata migration
2026-07-15 17:58:18 +09:00
genichin
600375beca
docs(stagepilot): confirm BAT-025 migration planning and design
2026-07-15 11:02:08 +09:00
Hermes Agent
7b9c23a377
docs(req): approve ledger metadata migration requirement
...
Confirm REQ-057 for BAT-025 while preserving REQ-056/BAT-024 implementation status. Operational DB execution remains separately approved.
2026-07-15 10:50:25 +09:00
genichin
f5636c1ade
docs(stagepilot): confirm manual ledger batch verification
2026-07-14 19:54:20 +09:00
genichin
b3447f699e
feat(api): add owner-scoped manual ledger endpoint
2026-07-14 19:49:03 +09:00
genichin
762cf11376
docs(batch): start manual ledger API delivery
2026-07-14 18:52:34 +09:00
genichin
0c00f851e7
docs(req): approve manual ledger API requirement
2026-07-14 18:51:30 +09:00
genichin
43a23dbd98
docs(discovery): sync manual ledger project title
2026-07-14 16:46:15 +09:00
genichin
e750b52c8d
docs(req): draft manual ledger API requirement
2026-07-14 16:41:12 +09:00
genichin
f9dce75d9e
docs(discovery): confirm manual ledger API discovery
2026-07-14 16:36:43 +09:00
genichin
ecc269ad49
docs(discovery): include total value and profit metric
2026-07-14 16:19:46 +09:00
genichin
ced81171ff
docs(discovery): distinguish profit withdrawal semantics
2026-07-14 16:15:09 +09:00
genichin
d0c23b6add
docs(discovery): require daemon-managed manual confirmation
2026-07-14 16:04:47 +09:00
genichin
9356e4da3e
docs(discovery): reject insufficient manual ledger writes
2026-07-14 15:58:10 +09:00
genichin
29bf6de22a
docs(discovery): require reversal target ledger id
2026-07-14 15:33:03 +09:00
genichin
932991c538
docs(discovery): decide manual ledger endpoint split
2026-07-14 15:26:43 +09:00
genichin
175570d4a4
docs(discovery): start manual ledger API discovery
2026-07-14 14:04:11 +09:00
genichin
6b695b83b8
REQ-055 Implemented (confirm-req-implemented) — bat-023 머지 522a10f, QC PASS-WITH-NOTES(AC 10/10). 잔여: dangling FK 실DB 확인(배포후)
2026-07-04 11:39:04 +09:00
genichin
522a10f26e
Merge pull request #20 from fourblocks2020/feat/req-055-portfolios-strategy-market-meta
...
bat-023: /v1/portfolios 전략·시장 메타 노출 (REQ-055)
2026-07-04 11:37:19 +09:00
genichin and Claude Fable 5
7dba160c0f
test(bat-023): add REQ-055 AC-1~10 tests for strategy+market meta fields
...
10 test cases covering:
- AC-1: bound portfolio returns strategy_name/params
- AC-2: unbound → null/{}
- AC-3: dangling FK → keeps active_strategy_id, null strategy fields
- AC-4: invalid JSON config → strategy_params={} + WARNING log (caplog)
- AC-5/6: markets with values / empty
- AC-7: existing 16-field regression
- AC-8: token-branch invariant (service token)
- AC-9: strategy_params exact key-value match
- AC-10: mixed list individual accuracy
583 passed total (0 failures, 18 new tests).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5
2026-07-04 11:05:51 +09:00
genichin and Claude Fable 5
8a07742049
feat(req-055): expose strategy & market meta fields in PortfolioItem response (additive)
...
Adds 4 additive fields to GET /v1/portfolios (and single-portfolio) response:
- active_strategy_id (str|null): portfolios.active_strategy_id raw value
- strategy_name (str|null): strategy_sets.name via LEFT JOIN
- strategy_params (dict): strategy_sets.config JSON parsed; {} on missing/invalid
- markets (list[str]): assets.markets; [] on missing/empty
_SELECT_PORTFOLIO extended with LEFT JOIN strategy_sets; _row_to_portfolio
parses new columns (row[19-21]) with JSON error isolation (WARNING log, no 500).
_portfolio_to_item maps all 4 new fields. Existing 16 fields unchanged.
N+1 prevented: single SQL JOIN for both list and single-item paths.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5
2026-07-04 11:05:51 +09:00
genichin and Claude Fable 5
b2261c4428
docs(bat-023): add batch planning/design/verification documents for REQ-055
...
BAT-023 batch documents — GET /v1/portfolios strategy+market meta additive
fields. Includes planning, design, verification, and batch index entry.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5
2026-07-04 11:05:51 +09:00
genichin
4e1aa83011
REQ-055 Approved (confirm-req, 팀장) — /v1/portfolios에 active_strategy_id/strategy_name/strategy_params/markets additive 노출. tvr e2e 배관 ①
2026-07-04 10:54:34 +09:00
genichin and Claude Opus 4.8
9dcd00f7a5
docs(rel-003): released 마감 — M3 배포 완료( 9d98d47, Step2 적용)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5
2026-06-30 17:03:21 +09:00
genichin and Claude Opus 4.8
7ba618eb30
docs(runbook): Step2 마이그레이션 배포 순서 정정 — 체크아웃 갱신 선행
...
운영팀 지적: prod=REL-002(bd34450 )라 마이그레이션 파일·backfill CLI 부재.
0단계 '체크아웃 갱신(origin/main, 디스크, 재시작X)'를 마이그레이션 앞에 추가,
서비스 재시작은 Step2 후로 분리. freeze 9fe6f3b→9d98d47, 실패모드/게이트 보강.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5
2026-06-30 12:58:01 +09:00