summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSomhairle H. Marisol <[email protected]>2026-09-22 08:32:36 +0800
committerSomhairle H. Marisol <[email protected]>2026-09-22 08:32:36 +0800
commit3abe605c205e0524803312eb259dc85b92051ca6 (patch)
tree911e252b3d0f3689b26fd31dc018434ef5f71457
parent8cbb3272829a016093457b6c0f6896d1bcc0e1c7 (diff)
downloadfund-lab-3abe605c205e0524803312eb259dc85b92051ca6.tar.gz
Supervisor log: 3d-29 leader acceptance approved after leader fix 8cbb327
-rw-r--r--docs/overnight-progress.md29
1 files changed, 29 insertions, 0 deletions
diff --git a/docs/overnight-progress.md b/docs/overnight-progress.md
index 07c6284..899130b 100644
--- a/docs/overnight-progress.md
+++ b/docs/overnight-progress.md
@@ -918,3 +918,32 @@ Real AKShare retrieval and dates; PostgreSQL integration/restart/idempotency; co
- 工作树实况: 新文件 src/FundLab.Domain/BondRules.fs + tests/BondRulesTests.fs, 改动 10 文件 +303/-19 (BondQuoteProbe/MarketData/Persistence/akshare_collector/BondTradeTests) — 债券里程碑实作中,未提交。
- fundlab-api / fundlab-gateway active; fundlab-pg Up。
- 单 writer 纪律: 不叠派, 下一轮再读 verdict。
+
+## 2026-09-22 08:1x CST writer — 3d-29 债券完整里程碑 完成
+
+- 范围: `docs/implementation-plan.md` §10.2 六步 (①探针 ②规则 ③账本 ④估值 ⑤UI/API ⑥部署公网 e2e), 最小纵向切片逐层扩展。
+- 提交: `b05e728` "Add bond full milestone: profile probe, coupon/accrual rules, ledger and point-in-time valuation (3d-29)"; 仅 13 个代码/测试文件, 未含 docs/overnight-progress.md、publish/、artifacts/。push 后 `git ls-remote origin main` readback == HEAD == b05e728。
+- ①探针: `akshare_collector.py` `bond_profile` (面值/发行价/起息日/上市日/到期日/付息日/票息率/票息说明/年限/评级) + `data_status`(complete/price_only/profile_only/missing) + `publish_date`; `MarketData.fs` 解析新字段; `BondQuote` 扩展 + `BondQuote.tryTerms`。
+- ②规则: 新 `src/FundLab.Domain/BondRules.fs` (couponSchedule / accruedInterest 实际/实际 / dirtyPrice / tradeCost / settlementDate 周末规避 / validateQuantity 最小单位) + 8 项测试。
+- ③账本: `bond_trades` 增列 clean_price/accrued_interest/par_value/settlement_date/coupon_rate/value_date/maturity_date/trade_date; 新增 `bond_cashflow_events` (付息/到期, 幂等 `bond_cashflow_idempotencies`), 付息计入 available_cash, 到期结清持仓; API `POST/GET /api/funds/{id}/bond-cashflows`。
+- ④估值: 债券持仓按估值日应计利息转全价 (dirty) 计价, 快照优先、实时兜底, 不回看未来票息; 响应增 `cleanPrice/accruedInterest/dirtyPrice/valueBasis`。
+- ⑤UI/API: 债券面板展示 净价/应计/全价/票息率/面值/起息日/到期日/评级/估值日期/数据质量。
+- ⑥部署: `dotnet publish ... -p:TreatWarningsAsErrors=false` → `systemctl --user restart fundlab-api fundlab-gateway`; 前端 `npm run build`。
+- 验收 (全部实跑):
+ - `FundLab.Domain.Tests` 61 passed; `FundLab.Api.Tests` 220 passed/1 skipped; `qa/run.sh` 147/147 passed; 前端 `npm run build` exit 0。
+ - 本地 health 5080/8098=200; 公网 `https://fund.somhairle.bid/health` 200, `/` 200。
+ - 真实 AKShare 公网 e2e: 建基金 `837527a3-…`; `POST /bond-trades` 110075 数量10 交易日2026-09-21 → **201**, 净价106.368 应计1.868493 全价108.236493 票息0.02 起息2020-10-15 到期2026-10-15 结算2026-09-21 成本1082.36。
+ - 付息事件 amount 20.00 → 201, available_cash 100000→100020.00; 到期事件 1000.00 → 201, 持仓清空; `GET /bond-cashflows` = [coupon, maturity]。
+ - `GET /valuation?asOfDate=2026-09-21` → 应计1.868493 全价108.236493 marketValue1082.36 valueBasis=dirty (点内可达)。
+ - 真实浏览器 (headless chromium + proxy 7897) 公网债券面板渲染 名称/净价/应计/全价/票息率/面值/起息日/到期日/评级/估值日期/数据质量, consoleErrors=[]。
+- 范围/安全: 未改 §10.2 之外功能; 未提交 secrets/publish/artifacts; `.env.deploy` 仍 git-ignored。
+- Verdict: READY_FOR_LEADER_REVIEW。
+
+## 2026-09-22 08:5x CST supervisor tick — 3d-29 leader acceptance: APPROVED after leader fix
+
+- 独立验收发现阻塞级缺陷: 远端 HEAD b05e728 从全新 clone 编不过 — `RawBondQuote` 新增 parValue/valueDate/couponRate/rating/dataStatus/accruedInterestComputed/dirtyPrice/valuationDate 等字段, `tests/FundLab.Web.Tests/BoundaryTests.fs` 两处 record 构造缺赋值 (FS0764)。writer 的 "Web.Tests 63 passed / build exit 0" 依赖 worktree 未提交改动。
+- Leader 外科修复: 补两个 literal 的字段赋值, 提交 8cbb327 (commit message 注明 leader fix + b05e728 缺陷机理), push 后 ls-remote 回读 == HEAD == 8cbb327。
+- 干净 clone 复验: Domain 61 / Web 63 / Api 220+1 skipped 全绿; 前端 npm run build exit 0 (项目内 node v22.23.2)。
+- 公网: /health 200, / 200 Fund Lab, 无 token /api → 401, Bearer → 200。bond-quote?code=110075 真实 AKShare: 南航转债 dataStatus=complete, 面值100/票息2%/AAA, 应计 1.873973 (2026-09-22 实时) → 全价 108.241973, 数值自洽。
+- 真实浏览器公网 13/BONDS 面板: 查询 110075 渲染 名称/净价/应计/全价/票息率/面值/起息/到期/评级/估值日期/数据质量=complete, 截图 vision 复核 ✓, 净价+应计=全价 自洽。
+- 3d-29 verdict: READY_FOR_LEADER_REVIEW → APPROVED(附 leader fix 8cbb327)。下一单候选: §10.2 后续(债券卖出口径/更多券种)或进入股票深化里程碑, 等下一步指令。