- add get_portfolio_by_name_and_user to PortfolioRepository protocol and
PostgresPortfolioRepository; resolves AttributeError on all CLI name+user
resolution paths (REQ-017)
- add insert_ledger_trade to PortfolioRepository protocol and
PostgresPortfolioRepository; resolves HTTP 500 on POST
/v1/assets/{asset_id}/ledger/trades (REQ-008)
- add _row_to_ledger_trade static helper; uses INSERT ... ON CONFLICT DO
NOTHING RETURNING to return (LedgerTrade, created: bool)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>