3 Commits
Author SHA1 Message Date
genichin 2abd67da97 docs(proofline): record line 0004 QC remediation 2026-08-15 13:21:04 +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