| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Lock external flows vs internal trade ledger sources against net inflow (3d-36) | Somhairle H. Marisol | 12 days | 1 | -0/+71 |
| | | |||||
| * | Prove manual stock sells credit cash with a single ledger event (3d-35) | Somhairle H. Marisol | 12 days | 1 | -0/+44 |
| | | |||||
| * | Debit available cash on manual stock and bond buys with ledger events (3d-34) | Somhairle H. Marisol | 12 days | 8 | -67/+264 |
| | | |||||
| * | Document clean Release publish command for fund-lab deployment (3d-33) | Somhairle H. Marisol | 12 days | 1 | -3/+3 |
| | | |||||
| * | Backfill cash ledger from historical transactions and add reconciliation QA ↵ | Somhairle H. Marisol | 12 days | 4 | -0/+184 |
| | | | | | (3d-32) | ||||
| * | leader fix continuation: FS3511 release publish regression (3d-31 continuation) | Somhairle H. Marisol | 13 days | 3 | -151/+200 |
| | | |||||
| * | Add cash ledger event-source breakdown and reconciliation API/UI (3d-31 B4c) | Somhairle H. Marisol | 13 days | 9 | -2/+997 |
| | | |||||
| * | Supervisor log: 3d-31 B4a/B4b leader acceptance approved | Somhairle H. Marisol | 13 days | 1 | -0/+7 |
| | | |||||
| * | Add stock assets to rebalance with stock buy/sell legs (3d-31 B4b) | Somhairle H. Marisol | 13 days | 3 | -84/+402 |
| | | |||||
| * | Supervisor log: 3d-31 hang aborted, B4a FK fix in new session | Somhairle H. Marisol | 13 days | 1 | -0/+8 |
| | | |||||
| * | Fix stock sip plan instrument FK (3d-31 B4a) | Somhairle H. Marisol | 13 days | 4 | -97/+544 |
| | | |||||
| * | Supervisor log: 3d-31 dispatched | Somhairle H. Marisol | 13 days | 1 | -0/+6 |
| | | |||||
| * | Supervisor log: 3d-30 leader acceptance approved | Somhairle H. Marisol | 13 days | 1 | -0/+30 |
| | | |||||
| * | Add stock cashflow ledger with buy/sell events and idempotent dividend ↵ | Somhairle H. Marisol | 13 days | 4 | -0/+629 |
| | | | | | recording (3d-30 B3) | ||||
| * | Add stock probe market/adjust/suspension fields and StockRules (3d-30 B1-B2) | Somhairle H. Marisol | 13 days | 12 | -17/+297 |
| | | |||||
| * | Add bond sell/redemption ledger, bond cashflow events and maturity calendar ↵ | Somhairle H. Marisol | 13 days | 5 | -5/+1156 |
| | | | | | (3d-30 A) | ||||
| * | Supervisor log: 3d-29 leader acceptance approved after leader fix 8cbb327 | Somhairle H. Marisol | 13 days | 1 | -0/+29 |
| | | |||||
| * | Leader fix: BoundaryTests RawBondQuote literals missing new bond-profile ↵ | Somhairle H. Marisol | 13 days | 1 | -1/+18 |
| | | | | | fields; 3d-29 (b05e728) does not build from a clean checkout without this | ||||
| * | Add bond full milestone: profile probe, coupon/accrual rules, ledger and ↵ | Somhairle H. Marisol | 13 days | 13 | -72/+1398 |
| | | | | | point-in-time valuation (3d-29) | ||||
| * | Supervisor log: 3d-29 bond milestone in flight | Somhairle H. Marisol | 13 days | 1 | -0/+6 |
| | | |||||
| * | Supervisor log: 3d-29 bond milestone dispatched | Somhairle H. Marisol | 13 days | 1 | -0/+6 |
| | | |||||
| * | Supervisor log: leader acceptance of 3d-28 (approved) | Somhairle H. Marisol | 13 days | 1 | -0/+8 |
| | | |||||
| * | Add fund-lab production systemd --user units and gateway config (3d-28) | Somhairle H. Marisol | 13 days | 5 | -0/+203 |
| | | |||||
| * | Record 3d-27 public deployment blocker: cloudflared restart needs root, ↵ | Somhairle H. Marisol | 13 days | 1 | -0/+9 |
| | | | | | origin port conflict | ||||
| * | Supervisor log: dispatch 3d-27 public deployment slice (team) | Somhairle H. Marisol | 13 days | 1 | -0/+827 |
| | | |||||
| * | Add stock sell vertical slice with cash recovery and snapshot pricing (3d-26) | Somhairle H. Marisol | 13 days | 8 | -2/+1033 |
| | | |||||
| * | Add daily market refresh endpoint, snapshot-first valuation and UI refresh ↵ | Somhairle H. Marisol | 13 days | 6 | -18/+697 |
| | | | | | (3d-25) | ||||
| * | Add SIP plan pause/resume and rebalance plan archive lifecycle (3d-24) | Somhairle H. Marisol | 13 days | 9 | -6/+894 |
| | | |||||
| * | Integrate bond and stock positions into fund valuation (3d-23) | Somhairle H. Marisol | 13 days | 8 | -1/+633 |
| | | |||||
| * | Add bond buy to holdings minimal vertical slice (3d-22) | Somhairle H. Marisol | 13 days | 9 | -1/+1172 |
| | | |||||
| * | Add stock buy to holdings minimal vertical slice (3d-21) | Somhairle H. Marisol | 13 days | 9 | -1/+1199 |
| | | |||||
| * | Add multi-source bond quote probe fields and daily fallback (3d-20) | Somhairle H. Marisol | 13 days | 9 | -37/+279 |
| | | |||||
| * | Add real AKShare stock daily history probe slice (3d-19) | Somhairle H. Marisol | 13 days | 19 | -11/+751 |
| | | |||||
| * | Add stocks probe panel with live stock quote flow (3d-18) | Somhairle H. Marisol | 13 days | 6 | -0/+280 |
| | | |||||
| * | Add real AKShare stock quote probe slice (3d-17) | Somhairle H. Marisol | 13 days | 12 | -8/+444 |
| | | |||||
| * | Add bonds probe panel with live bond quote flow (3d-16) | Somhairle H. Marisol | 13 days | 6 | -0/+284 |
| | | |||||
| * | Fix bond quote probe to use live convertible-bond spot data (3d-15) | Somhairle H. Marisol | 13 days | 2 | -9/+61 |
| | | |||||
| * | Add real AKShare bond quote probe slice (3d-14) | Somhairle H. Marisol | 13 days | 11 | -6/+410 |
| | | |||||
| * | Add real NAV series multi-day returns (3d-13) | Somhairle H. Marisol | 13 days | 12 | -12/+714 |
| | | |||||
| * | Add real AKShare NAV-date probe slice (3d-12) | Somhairle H. Marisol | 13 days | 13 | -16/+675 |
| | | |||||
| * | Add rebalancing execution slice (3d-11) | Somhairle H. Marisol | 13 days | 12 | -141/+1343 |
| | | |||||
| * | Add scheduled investment plans (3d-10) | Somhairle H. Marisol | 13 days | 13 | -2/+1798 |
| | | |||||
| * | Add returns and charts slice (3d-9b) | Somhairle H. Marisol | 13 days | 9 | -7/+981 |
| | | |||||
| * | Add dividend history visibility (3d-9a) | Somhairle H. Marisol | 13 days | 8 | -1/+348 |
| | | | | | Expose a deterministic source key on booked dividend records and surface a read-only dividend history panel with empty state, backed by API tests and browser QA assertions. | ||||
| * | Add dividend slice (3d-8) | Somhairle H. Marisol | 13 days | 9 | -4/+1036 |
| | | | | | Book cash dividends to available cash exactly once and reinvest dividends through the shared subscription pipeline, with deterministic scheme idempotency and cross-position isolation. | ||||
| * | Add rebalance first slice (3d-7) | Somhairle H. Marisol | 13 days | 6 | -1/+790 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | First vertical slice for portfolio rebalancing. Domain gains RebalancePolicy: target-allocation validation (non-empty, per-code shares positive two-decimal, sum exactly 100); diff computation over the union of target and held codes (held without target = full exit) producing BUY amount diffs and SELL unit diffs priced at the current valuation NAV, clamped to available units, with no orders when a weight already balances; and the deterministic idempotency key set (rebalance:{plan}:{date}:{code} plus confirm/redeem counterparts). Rebalance plans persist as rebalance_plans + rebalance_targets with rebalance_idempotencies under the shared replay/conflict contract. ExecuteRebalancePlan snapshots cash plus holdings valued at each position's latest valuation NAV, then walks the diffs SELL-first through the same Create/Confirm pipeline used by manual orders, redemptions and SIP (nothing bypasses confirmation; a held code without a valuation is skipped with an explicit marker; insufficient cash/units fail the period visibly instead of silently trimming). API exposes POST/GET /funds/{id}/rebalance/plans and POST .../plans/{id}/execute. The frontend adds an 08/REBALANCE panel with target editing (two codes, sum must equal 100), a plan list with a manual execute button and post-run outcome rows; executing refreshes orders/positions so the new orders are immediately visible. Domain tests cover split validation, diff orders, exit/clamp logic, key determinism; API tests cover create/execute end-to-end; Web tests cover decoding and stale-execution protection. | ||||
| * | Leader fix: annotate rebalance target rows for F# record ambiguity in ↵ | Somhairle H. Marisol | 13 days | 1 | -30/+99 |
| | | | | | parseRebalancePlanCommand (3d-7) | ||||
| * | Add rebalance execution through shared order pipeline (3d-7) | Somhairle H. Marisol | 13 days | 5 | -3/+816 |
| | | |||||
| * | Drive SIP plans through the shared order pipeline (3d-6) | Somhairle H. Marisol | 13 days | 8 | -6/+859 |
| | | | | | | | | | | | | | | | | | | | | | | | | Advance executes due periods as real subscription orders: each due trade date claims a sip_executions row (PRIMARY KEY plan_id+trade_date makes same-plan same-day runs atomic), places the order through CreateSubscriptionOrder with a deterministic idempotency key (sip:{plan}:{date}) and the period's trade date, then confirms through the shared ConfirmSubscriptionOrder pipeline with key sip-confirm:{plan}:{date} — identical freeze/fee/units math as manual orders, nothing bypasses confirmation. Outcomes: succeeded, pending_nav (cash stays frozen; later drives retry the confirmation once the NAV lands), insufficient_cash (no order placed, period fails visibly, reruns keep the marker), failed. Plans roll their next_trade_date past the processed window and repeats of the same endDate replay recorded executions instead of re-debiting. Domain adds SipPolicy.advancePlan (due-date enumeration; weekends-only trading-calendar approximation, noted in code). POST /funds/{id}/sip/advance {endDate?, limit?} drives execution on demand (no daemon). Plan responses/rows now carry last execution status/date; front-end shows 已执行/待净值/现金不足 per plan. Optional tradeDateOverride/anchorOverride keep manual flows untouched. | ||||
| * | Add SIP plan first slice (3d-5) | Somhairle H. Marisol | 13 days | 9 | -0/+1071 |
| | | | | | | | | | | | | | | | | | | | | | | Introduce scheduled-investment plans as a schedule-only slice with no cash, position or NAV side effects. Domain gains SipPolicy: amount validation (positive, two-decimal, overflow-checked), frequency parsing/round-trip (weekly/biweekly/monthly), nextTradeDate generating the next due trade date off the plan anchor with month-end clamping and weekend roll-forward, plus the isDue/executionNetAmount contract the future executor will implement (execution itself stays unimplemented and is marked as such; nothing debits cash in this slice). Persistence stores plans in sip_plans with anchor/next trade dates and sip_plan_idempotencies under the shared replay/conflict contract; the API exposes POST/GET /funds/{id}/sip/plans behind the bearer token. The frontend adds a 07/SIP panel (code, amount, frequency select, plan list with next debit date) and Web tests cover decoding, validation, in-flight guards and stale completions. Choice note: first debit is scheduled strictly after the anchor date (creating a plan today never debits today). | ||||
