Commit Graph

97 Commits

Author SHA1 Message Date
claude_dev ce10547a4a docs: miniQMT停服迁移评估(大QMT+xtquant_big_convert, deadline 0918) [nas]
CI/CD / test (push) Successful in 26s
CI/CD / nas-deploy (push) Successful in 26s
CI/CD / nas-verify (push) Successful in 9s
2026-09-07 13:14:26 +08:00
claude_dev aefa341cc9 docs(data): spec§18.9 实施记录——四项偏差+可自主验收项全部实证入档 [nas]
CI/CD / test (push) Failing after 0s
CI/CD / nas-deploy (push) Has been skipped
CI/CD / nas-verify (push) Has been skipped
T1/T2/T4/T5+T6 可自主项(主容器restart免疫/docker stop断点续跑/锁让路/
容量闸门真卷演练/verify PASS)入档;四项实测倒逼偏差(szse_stock.json池/
flock跨容器锁/业绩快报标题谓词/年序新→旧);待数据累积项与运维要点留痕
2026-09-07 02:46:47 +08:00
claude_dev 20ecd711f6 docs(data): spec§18三默认拍板入档+开工批准 [nas]——用户「都按你说的来吧」:①股票池=全A含退市~5547只,清单源=NAS副本库distinct symbol(本地零网络天然含退市,同dbbardata治幸存者偏差原则;退市股新闻层自然空,公告层=事件因子回测原料);②PDF类别=六类(年报/半年报/一季报/三季报/业绩预告/业绩快报≈45GB/年,权益分派增发等不进但元数据层仍全量);③时长预期知悉(T1-T3≈1-2个session工作日/ann_meta回补~1周后可供factor事件因子回测/全文PDF月级慢车道);开工已批,下一步T1=wrapper+金丝雀 [nas]
CI/CD / test (push) Successful in 7s
CI/CD / nas-deploy (push) Successful in 2s
CI/CD / nas-verify (push) Successful in 7s
2026-09-06 22:27:03 +08:00
claude_dev fec3e8e221 docs(data): spec§18终版——统一到sanguo-5m一次性容器模式+断点续传互借三件 [nas]——用户终拍板「统一到5min吧」:①运行时改docker run --rm同5m全款(bash wrapper=/volume1/stock/corpus/run_corpus.sh宿主文件CI不覆盖同5m部署纪律;镜像lock-aligned版本自动跟随CI;弱依赖=daemon+tag不改名与5m同款已跑一月实证),corpus两改进=DSM任务admin跑(实测admin可docker ps)+--user admin-uid输出文件admin属主+--name sanguo-corpus运维锚点(docker stop一条命令杀);反向统一硬阻塞入档=5m写的data_backup库是03:00链root属主产物admin venv写不进;统一后全图=VPS schtask家族(数值)/NAS docker run --rm(5m+corpus对外爬取)+sync链(内部搬运)机器内一种物理下限;②断点续传对比互借(bs_5m_eod.py盘点):corpus借三件=单实例锁pid活性检测(原设计真缺口,防DSM定时与手动补跑竞写state)+退出码细分(0完成/1致命/2限流让路/3墙钟自停对齐5m语义)+state损坏幂等降级;5m反向不改造(整片推进粒度粗但回灌已完结+OR REPLACE幂等+LOOKBACK自愈,改造无未来收益),仅两个顺手项下次动run_5m.sh一并(加--name/头注释时点19:05→00:05修正);验收5/5b改docker stop+主容器restart不影响实证;T1改wrapper+金丝雀 [nas]
CI/CD / test (push) Successful in 25s
CI/CD / nas-deploy (push) Successful in 2s
CI/CD / nas-verify (push) Successful in 6s
2026-09-06 21:42:54 +08:00
claude_dev 8aa3a3d2fc docs(data): spec§18补与sanguo-5m独立容器方案差异对比 [nas]——应用户问「5分独立容器和现在实现有何不同」:同治「不被主容器重启波及」但深度不同——5m=docker家族内(docker run --rm一次性容器,仍依赖daemon+镜像+tag不改名,优点=镜像环境完整+版本自动跟随主容器),corpus=零docker(按用户指令走到底);5m当年未走到底合理(bs_5m_eod依赖面=整个镜像环境含baostock,宿主3.8 venv装不齐),corpus依赖面收敛3通用包才有条件(代价=venv冻结版本漂移需手动pip,T1锁版本缓解);5m不迁(在跑稳定/迁移需重验/没坏不动),但其为存量docker依赖点,NAS docker大升级时需人工盯届时再评估 [nas]
CI/CD / test (push) Successful in 5s
CI/CD / nas-deploy (push) Successful in 26s
CI/CD / nas-verify (push) Successful in 8s
2026-09-06 20:19:04 +08:00
claude_dev dfa156a39e docs(data): §18.8补5m分钟线行+NAS两例外存放修正——用户验收点名找回 [nas]——用户记得「NAS比VPS多一种数据=分钟线」完全正确:①sanguo-5m(DSM id=7,root,00:05)在跑,baostock 5min增量+全量回补2020起含退市5547只,独立一次性容器docker run --rm跑lock-aligned镜像(08-22治CI重启主容器杀在跑任务),落点=NAS副本库dbbardata('5m')=5m唯一权威(VPS侧'5m'是空占位);②minute_kline/2.1G=cfdaily时代外部1min/5min/15min,无任务,1min为全体系唯一1分钟粒度;文档债定性:§14.2「5min占位/不设schtask」为07-22快照,08-20落地5m管线时未回写融合spec(run_5m.sh头注释+memory才记录),本表现补;存放修正=数值权威VPS+两例外在NAS(5m+语料) [nas]
CI/CD / test (push) Successful in 21s
CI/CD / nas-deploy (push) Successful in 1s
CI/CD / nas-verify (push) Successful in 7s
2026-09-06 20:13:21 +08:00
claude_dev fcc3a2e0fa docs(data): spec§18「root=和旧数据一致」前提实测推翻 [nas]——/volume1/stock属主实测=三种混合:cfdaily(A股数据/minute_kline/knowledge_base,用户记忆中的之前基本面数据恰是cfdaily非root)/root(03:00链+sanguo_5m)/admin(_dbuild/gitea/frp等);文件全rwxrwxrwx+ACL无消费方依赖属主;真正一致在方法论层(schtask语义/marker/慢爬/单脚本红线)两案同款;唯一实质差异=运维通道(admin ssh可杀可装,root全走DSM一次性任务或交互sudo自动化不可达);终判admin,用户仍拍root亦可(代价=venv引导与kill全人工) [nas]
CI/CD / test (push) Successful in 27s
CI/CD / nas-deploy (push) Successful in 24s
CI/CD / nas-verify (push) Successful in 5s
2026-09-06 20:09:13 +08:00
claude_dev 7e9319b166 docs(data): spec§18 root vs admin 终局论证入档 [nas]——应用户「root的数据不可修改设计更好吗」:root属主写保护=半吊子幻觉(admin不能覆写但能删,删看目录权限rwxrwxrwx,03:00链先rm再拉workaround实证),防住原地改防不住删了重建;root跑采集代价全天候=root进程admin杀不动(Synology sudo交互密码自动化做不了,本设计验收含kill-9续跑项root方案连测试都无法执行)+venv装包盯跑全要root陪跑+外网爬虫最大权限;不可改性交给正确工具=append-only协议(dt分区只追加/tmp+rename/id键控)+可再生性(源站都在断点可重拉,语料=全体系唯一可完全再生数据类),如需防篡改层验收后加DSM快照/每周tar+校验和(对任何属主生效)——结论admin落地 [nas]
CI/CD / test (push) Successful in 25s
CI/CD / nas-deploy (push) Successful in 8s
CI/CD / nas-verify (push) Successful in 8s
2026-09-06 20:07:17 +08:00
claude_dev 3d3ddb5f57 docs(data): 全局下载方案与存放位置总表§18.8+CLAUDE.md语料路径行 [nas]——应用户「不想搞好几套下载方案和存放位置」:不是几套,是一条规则两台机器=每类数据唯一权威源+唯一权威位置(§14.2既定原则)+采集发起位置跟随权威位置;数值类(行情/估值/报表/事件面板)权威=VPS既有8任务家族不变,文本语料类(新闻/公告)权威=NAS(用户三约束唯一决定:不上VPS+东财IP限流+不绑docker);§18.8收齐现势10行任务总表(bs-daily/xt-eod/idx-eod/ak四频率/vintage/NAS03:00链/corpus)并注明§14.5为历史快照,存放=VPS data/数值权威+NAS /volume1/stock副本+大体积历史+语料唯一权威+Mac无生产数据,corpus不是第三种根=既有数据根新子目录;CLAUDE.md关键路径加corpus行(全session可见) [nas]
CI/CD / test (push) Successful in 23s
CI/CD / nas-deploy (push) Successful in 27s
CI/CD / nas-verify (push) Successful in 9s
2026-09-06 20:01:39 +08:00
claude_dev b90f258100 docs(data): spec§18存量不迁移澄清+admin权限逐项实测 [nas]——应用户问「有必要全改admin吗/admin确定有权限吗」:①存量脚本一个不迁(03:00链等root任务照旧,没坏不动;admin仅新corpus任务选型;目录/时间窗/管道三隔离零冲突)②admin权限逐项实测=/volume1/stock建目录写删全通(rwxrwxrwx+ACL admin属主)+venv --copies在volume1建成stdlib OK+pip user-site既有+CI部署路径无障碍③新坑入档:venv建/tmp会Permission denied(DSM /tmp特殊限制+会被清空)——设计本就落volume1;④设计内零root依赖,例外走人工sudo逃生门 [nas]
CI/CD / test (push) Successful in 26s
CI/CD / nas-deploy (push) Successful in 1s
CI/CD / nas-verify (push) Successful in 10s
2026-09-06 19:57:30 +08:00
claude_dev 0157094da2 docs(data): spec§18补admin与独立任务论证 [nas]——应用户问「为何不统一root/为何单独建定时任务」:admin三理由=03:00链root属主坑在案(admin覆盖须先rm再拉)+语料库admin侧操作密集(venv/盯跑/删分区)属主即零摩擦+最小权限出网爬虫不必root,成本为零;独立任务三理由=失败不连坐(对内行情同步vs对外慢爬马拉松,corpus卡死不拖死行情链,断路器饿死同款教训)+属主部署管道不同(sync脚本root地盘CI不覆盖vs corpus走CI的repo路径)+06:00避开03:00链跑道且00时档公告已入库全吃到 [nas]
CI/CD / test (push) Successful in 0s
CI/CD / nas-deploy (push) Successful in 3s
CI/CD / nas-verify (push) Successful in 9s
2026-09-06 19:52:37 +08:00
claude_dev fe5d0f00a6 docs(data): 06:00晨窗调度依据实测固化 [nas]——应用户问「基本面数据白天被更新的可能性有多大」:深市0904全市场600条公告发布时刻实测=盘中(09-15时)3条0%+盘后15-20时46%+00时档54%(巨潮深夜批处理「半夜鸡叫」实锤);新闻当日条目盘中27%盘后晚间73%;结论=公告白天更新概率≈0且主体在零点档,T+1晨06:00拉取=前日公告100%入账,优于任何傍晚方案(17:30收工会漏19-20时18%+00时54%);新闻对日频消费零损失;spec§18.3+报告各补一段 [nas]
CI/CD / test (push) Successful in 27s
CI/CD / nas-deploy (push) Successful in 3s
CI/CD / nas-verify (push) Successful in 10s
2026-09-06 19:50:19 +08:00
claude_dev 14d3531f77 docs(data): 语料库spec§18修订——用户两条反馈落地 [nas]——①断点续传钦点加固:unit粒度marker+原子写+杀进程重启即从未完成unit续跑+漏日自愈(公告T-1~T两天窗/新闻recent-100天然覆盖数日缺口)+daily幂等可重跑,验收加5b条(kill -9重启续跑实证);②解绑docker(用户:「不要和docker绑定,避免docker重启就失败」):采集进程改NAS宿主机直跑,运行时=/volume1/stock/corpus/venv(--copies自举,DSM自带Python3.8.12+pip实测可用x86_64,依赖锁cp38版),容器重启/升级/停用零影响;先例=现有DSM 03:00同步链(id=2,crontab实证7条任务在跑)宿主机直跑多年零docker,本设计沿同模式改admin跑避root属主坑;验收加docker全停下照跑实证;T1改venv自举 [nas]
CI/CD / test (push) Successful in 4s
CI/CD / nas-deploy (push) Successful in 10s
CI/CD / nas-verify (push) Successful in 9s
2026-09-06 19:45:18 +08:00
claude_dev 92e63ee27c docs(data): 基本面语料库NAS采集设计spec§18+三摸底实测报告 [nas]——用户拍板六项范围(除公告PDF全量):新闻标题+摘要级/全文级/历史回补+公告元数据回补2000起/每日增量/定期业绩类PDF;硬约束=存储采集全NAS不上VPS(家宽IP与VPS东财限流零冲突)+采集限于00:30-17:30+慢爬;设计=1脚本corpus_download.py+1调度入口sanguo-corpus-daily 06:00(daily+backfill两lane串行,--until 17:30墙钟自停);数据模型=id键控(dt=发现日分区,无today文件名语义,天然免疫0902/0904式错标)+append-only短窗去重;回补顺序=公告meta→新闻meta→新闻全文→PDF(新→旧,容量闸门:/volume1实测645G空闲,每50GB自查,<200G暂停升级);失败语义吸收09-01/09-05教训(确定性错跳过不烧重试不连坐);探测优先能拿多深拿多深+depth_summary记录;附三摸底报告(聚宽136字段原料层≈100%已有/巨潮2000年起130万条年/东财3年硬顶/存储大头PDF 520G年) [nas]
CI/CD / test (push) Successful in 23s
CI/CD / nas-deploy (push) Successful in 0s
CI/CD / nas-verify (push) Successful in 8s
2026-09-06 13:49:46 +08:00
claude_dev 99355bfbea docs: 活文档§17 首夜巡查修正——margin_sse T+1 结构根治/NAS 同步链扩容/回灌纪律/VPS 部署终态(同批同步,防失传) [nas]
CI/CD / test (push) Successful in 0s
CI/CD / nas-deploy (push) Successful in 6s
CI/CD / nas-verify (push) Successful in 14s
2026-09-02 23:09:19 +08:00
claude_dev 4966d30a11 feat(provider): A档截面数据使用层出口——泛型底座+涨停池门面双层接口
CI/CD / test (push) Failing after 3s
CI/CD / nas-deploy (push) Has been skipped
CI/CD / nas-verify (push) Has been skipped
09-02任务①落地。§15采集的14类panel数据此前零读取出口,策略/因子session
想用只能手搓parquet路径;经业界对照(dsa get_limit_up_pool/tushare
limit_list_d U/D/Z参数化/聚宽per-domain/OpenBB TET)定稿「泛型底座+域
语义门面」:

①get_event_panel(event_type,date/start+end,trading_days_only=True):
保真底座,白名单14类统一通道(=采集注册表口径,hot_rank未挂载不入列),
返回akshare原样中文列+trade_date(文件名合成);缺文件=合法缺失→空df;
trading_days_only默认用get_trade_days滤非交易日——治快照族「周中法定
假日文件=上一交易日态复制品」的区间双计数(采集层只按周一~五落盘,
周六根本无文件,风险面=周中假日);=False按周一~五枚举(=采集口径)

②get_limit_pool(kind=zt|zbgc|dtgc,...):涨停池门面(温度计/炸板率/行业
集中度消费契约),kind三合一←tushare limit_list_d;英文标准列
code/consecutive_boards/seal_amount/break_count/industry…(键名对齐dsa);
映射表基于VPS真实parquet实测(dtgc实测含动态市盈率/封单资金/板上成交额/
连续跌停/开板次数,与文档口径有差);akshare改中文列名时本层吸收漂移,
有行缺源列→DataSchemaError fail-fast;真空日(dtgc 0跌停空文件无列)
→仍返标准列空表schema稳定

③实现=TET Fetcher(fetchers/event_panel.py双Fetcher同文件,price.py先例),
FETCHERS注册表+event_panel/limit_pool两键(未来MCP出口零成本);base.py
新增_DateRangeParams跨字段校验(date/start+end互斥二选一);LocalUnified
Provider(回测)与SanguoMiniQmtProvider(实盘,委托self._unified)双侧同款
——方法面钉死测试强制无缺口,双侧同schema支持副本对照;miniQMT/QMT/
PTrade均无此类接口(业界惯例=外部源补),实盘同读本地文件

测试:21新测试(白名单fail-fast/日期语义/保真读/假日滤/门面schema/
列漂移fail-fast/真空日空表/注册表)+全量793绿;活文档§16+§15指引行 [vps]
2026-09-02 10:43:11 +08:00
claude_dev 66e741b6bb docs: 数据设计文档活文档化+§15 A档截面数据域增补——用户约定(09-02):唯一数据设计文档,每次架构变更同批更新(防长期失传);决策=更新原2026-07-21融合spec不新建(三层框架仍成立/引用链不断/少一份文档),头部状态从「设计草案」翻为活文档声明+最后更新日期;§15沿用「日期节追加新节覆盖旧节」惯例:15.1单脚本红线 15.2十一数据域清单表(源/集群/调度/行数/回补能力) 15.3东财墙模型(每IP每~40min窗口1发/cyq数学死/换域答案) 15.4语义与防线(panel_gap_check两档+panel契约) 15.5消费契约(炸板率口径/列名schema) [nas]
CI/CD / test (push) Successful in 2s
CI/CD / nas-deploy (push) Successful in 7s
CI/CD / nas-verify (push) Successful in 14s
2026-09-02 09:41:02 +08:00
claude_dev de9efec87e docs: 002646孪生丢笔修账证据包入库——QMT同秒孪生成交事件+盘中API明细双丢(晚间视图才补全)致台账缺1笔600股;证据=订单filled 8900vs台账8300+全账户40持仓唯一差异+恒等式4242=600×7.07精确归位;修账已执行(用户21:00批准):backup API备份+INSERT repair行+live_17 23:41重放,快照8900与QMT精确一致;08-27同型案在档,同秒孪生=QMT损耗模式 [nas]
CI/CD / test (push) Successful in 6s
CI/CD / nas-deploy (push) Successful in 1m2s
CI/CD / nas-verify (push) Successful in 12s
2026-09-01 23:54:53 +08:00
claude_dev 271adedbb5 docs(factor): 设计稿v2——标的池textarea改三层输入(用户反馈'太原始') [nas]
CI/CD / test (push) Successful in 1s
CI/CD / nas-deploy (push) Successful in 6s
CI/CD / nas-verify (push) Successful in 8s
参考聚宽/万得选股器+收件人式tags input,把'手打代码'变'点选':
①预设池一键选:跨行业30/沪深300/中证500/1000/2000/全A主板+创业板(cs_rank族
因子300+只才不失真,手贴不现实)
②搜索加自选:代码/名称模糊→候选下拉(代码·名称·行业·已选标记)点选加入
③chips已选池:600519贵州茅台✕可删标签+计数徽标+复制清单+清空;
批量粘贴收进折叠兜底入口(能力保留不再是主入口)
配套说明:后端3小端点(池清单/池成分读constituent_unified/标的搜索),
New.vue拆UniversePicker.vue组件,预估1天
Chrome实测:池载入54只+按钮点亮/搜茅台候选带已选标/chips渲染/校验联动全通
2026-08-30 09:48:09 +08:00
claude_dev d1d48896a9 docs(factor): New/Result两页终端风设计稿v1(可交互,任务#12方案B) [nas]
CI/CD / test (push) Successful in 2s
CI/CD / nas-deploy (push) Successful in 6s
CI/CD / nas-verify (push) Successful in 8s
照 tears-compare-mockup 流程先出稿拍板再实现。三tab:
①提交页New:因子多选从Element下拉改「搜索+分组点选」面板(240因子下拉翻页难)
+三类别色chip(101青/158紫/builtin琥珀)+已选托盘chips可删/清空(同对比托盘交互)
+标的池mono textarea实时计数徽标+跨行业30只预设(与详情页一键直达同样本便于复现)
+区间禁未来+跨度显示+提交校验前置(未满足禁用+原因文案)
②结果页Result外壳:5格metric-strip(最优ICIR红/最优因子青)+IC明细终端表格
(右对齐tabular-nums,IC/ICIR/t正红负绿,|t|≥2加粗,全局最优行青标+左青条)
+tears区块虚线占位示意(新版TearsPanel已上线本次不动)
③实现说明:范围/交互变化/拆分预估(New半天+Result1-2小时,纯前端零后端)
种子合成数据mulberry32;charset声明防file://乱码;本机Chrome实测两tab+交互OK
2026-08-30 09:41:49 +08:00
claude_dev 7add8149af docs(factor): tears报告页+加入对比终端风设计稿v1(可交互)——用户08-29拍板:tears=方案A原生重构+对比按稿②做实;设计稿三tab:①tears页(指标条+月度IC柱/累计线+热力图+分组/多空净值+IC衰减,1/5/10D联动)②对比(排行榜行内多选+托盘+对比页:指标并排/累计IC叠加/相关性矩阵/十分组小倍数)③实现说明;图表种子化示意数据形态对齐08-25批次;补charset声明修file://直开乱码 [nas] 2026-08-29 08:24:33 +08:00
claude_dev df008b985c feat(web): 对账中心上线——恒等式B5只读端点+前端恒等式区块,双轨对账页升级为对账中心(issue#42-A) [nas]
CI/CD / test (push) Failing after 23s
CI/CD / nas-deploy (push) Has been skipped
CI/CD / nas-verify (push) Has been skipped
- API: GET /paper/reconcile/identity?date&refresh——缺省读 supervisor 15:10/23:27
  已存 identity_reconcile 行,无存行现算并落库(与 build/save 同套幂等);
  路由置于 /paper/{aid} 前,与既有 reconcile 端点同组
- 前端: Reconcile.vue 顶部新增恒等式卡片(账户级红绿/未归因±/占比vs容忍0.5%/
  可展开逐票缺口+实例市值拆分),页面与菜单更名为「对账中心」;
  api/paper.ts 补 IdentityReport 类型族
- 测试: 绿线(50/10050=0.497%pass)+存行复用+refresh强制重算(200=1.96%红)+
  snapshot_missing 如实标注,12/12 绿
- 附: docs/session_prompts/ 两份 session 移交提示词入库(fundamentals 18min→
  数据session / 统一ex定寸→策略session,用户08-26拍板)
2026-08-26 20:31:42 +08:00
claude_dev a62013cb9c docs(factor): 第一批实施计划——13任务TDD拆解(挂载/股票池/指标/存储/引擎/CLI/API/前端三页/NAS验证),含ST过滤偏差声明与spawn池规避设计 [nas] 2026-08-24 23:52:40 +08:00
claude_dev c94d1f3d2b docs(factor): 第一批设计spec+终端风前端mockup——①spec:Alpha101+158全量挂载全A重验(2018-2026,主板+创业板剔ST/新股,RankIC 1/5/10D,退市股保留无幸存者偏差);后端=注册表挂载+vwap派生列+批量评估脚本(因子分批15-20/批)+冒烟先行;用户拍板两条:⚠️最终部署VPS不止NAS(走标准promote链,VPS 42.8G权威库)+行业中性化先不做(IC数据说话后再决策)②mockup v2:第一版亮色Element风被用户打回,重做1:1科幻终端风(tokens.css深空黑/荧光青/琥珀/红涨绿跌/term-grid/信号灯),三页=IC排行榜(统计瓦片+筛选+主表带IC色条sparkline)/因子详情(表达式+月度IC+十分组)/批量评估(股票池3预设卡+因子集勾选),用户确认③mockup与spec互引,调查报告见同目录 [nas] 2026-08-24 23:36:36 +08:00
claude_dev 2191160dda docs(factor): 因子库全景调查报告——因子调研session起步(C起步)——①本地盘点:sanguo_factor管线齐(注册表+alphalens评估+web API)但仅7个基础因子;vnpy自带Alpha101完整表达式(100个,零移植)+Alpha158(qlib同款)+46算子全覆盖;接入缺口=vwap派生列/AlphaLabSession 50股缓存上限/批量吞吐②聚宽250+因子全清单(官方文档直读):风险模型(Barra式10风格+21描述+16 PRO)+基本面136(质量70/基础41/成长10/每股15,等P2回灌)+量价104(随时可做);结论=值不买(试用拿不到近3月+2026-08起海外IP封),公式目录本地复刻;jqfactor_analyzer(MIT)可白嫖③行业:GTJA191公式全公开187/191可自算;QuantsPlaybook(5851★)研报复现入口;aurumq-rl(MIT)polars同构工程范本(296+11 A股私有因子族);Tushare 202因子公式全公开④四批路径:101+158现在→GTJA191+聚宽量价→聚宽财务(3周后)→Barra风格;行业中性=IC数据说话后再决策 [nas] 2026-08-20 13:22:13 +08:00
claude_dev 1d4bdb206e docs(design): 多策略共享账户×实例预算制定稿spec——A策略session契约(卖出只卖自己+context属性清单+联调) B前后端实施(账户监视器/全局快照/定寸虚拟化/预算硬限制+默认剩余值/前端三层/对账恒等式/清理) C全删重建runbook(用户定:删全部+明开盘清仓+部署后再重建,顺序硬约束) D远期触发式;业界调研背书见memory multi-strategy-shared-account-plan [nas]
CI/CD / test (push) Successful in 17s
CI/CD / nas-deploy (push) Successful in 44s
CI/CD / nas-verify (push) Successful in 18s
2026-08-19 21:53:36 +08:00
claude_dev d2364a36c5 refactor(provider): TET Phase3老接口内部委托Fetcher——①四老方法(get_price/get_closes_panel/get_index_stocks/get_fundamentals_df)旧体删除,改调同款Fetcher(与_ex两张皮,strict契约自此对老接口生效:非法frequency/fq/count/日期/空列表→ValueError,查询失败raise;Phase2副本对照4/4语义等值已验issue#19)②qfq因子二次读库归一:_build_qfq_factor/_apply_qfq_batch拆为_read_qfq_rows+_qfq_factor_from_rows与_read_qfq_events+_apply_qfq_events(IO/纯计算),因子读全挪进extract_data,transform零IO③all_weather四处get_fundamentals_df(choice)补空守卫(空候选集=调用方业务态)④3个宽松断言回归测试改strict(1m频率/空stocks/空symbols);938绿 [vps]
CI/CD / test (push) Successful in 14s
CI/CD / nas-deploy (push) Successful in 33s
CI/CD / nas-verify (push) Successful in 17s
2026-08-17 09:12:47 +08:00
claude_dev 28374c341b feat(strategy): #77灯=列表入口×N徽标+#78实盘服务端兜底名——#77:策略库四状态灯点击一律进该类型列表(按实例过滤;空列表→新建页带实例),灯带×N徽标=该类型运行总数(enriched新增counts:backtest任务表/replay回放账户/paper_live实走+影子/live实盘,查询失败退化无徽标),删「回测/模拟/实盘历史」三按钮(灯即入口);#78:live/create名称空或默认值(live-600000等)→服务端兜底{实例名}_v{YYYYMMDD}{minor}同实例同日递增,前端autoName失败被吞也拿到正确名;+2回归测试(counts四桶/兜底名递增);docs补北京迁移注记;929绿+build绿 [vps]
CI/CD / test (push) Successful in 15s
CI/CD / nas-deploy (push) Successful in 33s
CI/CD / nas-verify (push) Successful in 16s
2026-08-16 13:33:49 +08:00
claude_dev 256820d36f feat(strategy): 策略实例做实P0+P1+策略库A+B混合布局(spec§12.6定稿)——实例=策略档案:①绑定:paper/live账户+回测任务加instance_id(paper_accounts/live_accounts ALTER迁移),发起即建档(无档案自动建),绑已有档案时D1发起快照(账户用档案参数复印件)②回写:事件型(回测_on_done/回放线程)落盘update_instance_run;持续型(实走/影子/实盘)读时聚合_instance_runtime(四格覆盖+在跑账户+漂移检测)③D2/D3同步:POST /paper/sync/{id}批量刷运行中模拟账户(实走+影子锁死一致),实盘不在线改参④D5删除保护409⑤P1全景:GET instances/{id}/overview(全部运行账户+净值尾部+合并持仓归因)收编挂起项「按实例归因持仓」⑥前端:策略库重做A+B混合(统计条+在跑巡检模式+左栏代码树中文主显/文件副行+档案区漂移角标/同步/全景;STRATEGY_LABELS抽共享常量),InstanceOverview抽屉(echarts净值对比+归因持仓表),模拟盘/实盘表单加实例档案下拉(选中预填+绑定,路由?instance=直进);mock层enriched/sync/overview(路由序enriched先于{id});+7绑定测试,921绿,build绿,dev浏览器验收过 [vps]
CI/CD / test (push) Successful in 14s
CI/CD / nas-deploy (push) Successful in 52s
CI/CD / nas-verify (push) Successful in 17s
2026-08-15 22:39:05 +08:00
claude_dev b9315ef7e7 fix(tests): Mac本地9个既有测试失败根治——test_cta_engine的sys.modules mock注入从import期挪进module-scoped fixture(pytest全量collection先于执行,import期注入污染后收集的metrics/datareader/factor)+venv310按lock补装empyrical-reloaded==0.5.12;影子柜台设计文档头更新(P1已上线/P3前半已实现) [nas]
CI/CD / test (push) Successful in 15s
CI/CD / nas-deploy (push) Successful in 47s
CI/CD / nas-verify (push) Successful in 23s
2026-08-15 00:02:12 +08:00
claude_dev ce62de5522 docs(shadow-desk): P0对账标记已通过(all_weather 2024全年全量vs3段续跑,持仓逐只/现金总值/净值<1e-6,跨除权覆盖);下一步P1常驻进程 [nas]
CI/CD / test (push) Successful in 13s
CI/CD / nas-deploy (push) Successful in 29s
CI/CD / nas-verify (push) Successful in 14s
2026-08-14 10:33:44 +08:00
claude_dev fff9119f38 docs(design): 影子柜台+双轨一致性验证(用户需求):影子vs实盘同跑对账——一致性参数表(费率/滑点标定/涨跌停/T+1对齐)+日终对账报表(笔数/价差<10bps/持仓/净值月<0.5%) [nas]
CI/CD / test (push) Successful in 12s
CI/CD / nas-deploy (push) Successful in 30s
CI/CD / nas-verify (push) Successful in 16s
2026-08-14 09:11:39 +08:00
claude_dev 02ece66e86 docs(design): 影子柜台设计v2(用户反馈):miniQMT实时订阅驱动(替代schtask轮询,与实盘同款)+实时价撮合+步长=策略自身周期(tick~月线)+每实例独立虚拟账户;对账兜底保留 [nas]
CI/CD / test (push) Successful in 19s
CI/CD / nas-deploy (push) Successful in 30s
CI/CD / nas-verify (push) Successful in 13s
2026-08-14 09:05:03 +08:00
claude_dev 7e94339e42 docs(design): 模拟盘影子交易柜台设计(验收四轮#4):checkpoint增量+VPS盘中15m schtask+自有撮合;可行性已验(引擎initial_positions+attribute_history直查源) [nas]
CI/CD / test (push) Successful in 15s
CI/CD / nas-deploy (push) Successful in 31s
CI/CD / nas-verify (push) Successful in 10s
2026-08-14 08:32:42 +08:00
claude_dev 5c8a7e12c6 feat(frontend): 终端化重构+策略管理(代码→实例→4运行)+撮合设计+回测参数 [nas]
CI/CD / test (push) Successful in 18s
CI/CD / nas-deploy (push) Failing after 17s
CI/CD / nas-verify (push) Has been skipped
- 终端化: 科幻色板(tokens/EP/reset/chips/echarts)+Layout(Cmd+K/时钟/状态灯)+mock全接口+Dashboard/Result/Monitor样板+6图表配色
- 策略管理: 策略库三层(代码→实例→4运行)+新建策略(组合/CTA模板+Monaco)+在线代码编辑(Monaco)+实例CRUD(参数反射/标的池type切/interval/match_session)
- 实例→运行关联: backtest/paper/live New页读instance预填
- 撮合设计: match_session(下一根K线开盘/收盘/集合竞价)+interval定频率+实走限日线/分钟走miniQMT
- 回测参数: 基准下拉+日期默认1年localStorage记忆+滑点/手续费UI
- 账户管理页+命名重整(模拟盘/实盘,消除撞名)
- spec §11-13(菜单/策略管理/撮合设计) + Monaco编辑器 + 策略实例删除/编辑入口 + 列表实例列
2026-08-12 23:23:23 +08:00
claude_dev 58b5d08280 docs: 补 NAS 组合回测验证截图(2026-07-31 all_weather 跑通) [nas]
CI/CD / test (push) Successful in 11s
CI/CD / nas-deploy (push) Successful in 32s
CI/CD / nas-verify (push) Successful in 13s
2026-08-12 08:45:24 +08:00
claude_dev 67d1c1ef2f ci(vps-gate): commit必打[vps]/[nas]标签+vps-deployed tag+待推issue [nas]
CI/CD / test (push) Successful in 11s
CI/CD / nas-deploy (push) Successful in 24s
CI/CD / nas-verify (push) Failing after 4s
- ci-cd: enforce-label(本次push无标签→fail,merge豁免) + check-vps-needed(nas-verify绿后对比vps-deployed tag,有[vps]未部署→开issue)
- vps-deploy: 成功打vps-deployed tag + 关issue(gap清空)
- scripts/ci/vps_pending_check.py: issue开/关/更新(CI复用)
- docs: vps-impact-map触及面表 + vps-deploy-pending判定记录
- CLAUDE.md: 部署流程段补标签约定
2026-08-02 23:25:40 +08:00
claude_dev c210197778 fix(entrypoint): +x 执行位 + SKIP_REDIS_CHECK 默认1(治 run535 NAS crash loop)
CI/CD / test (push) Successful in 8s
CI/CD / nas-deploy (push) Failing after 34s
CI/CD / nas-verify (push) Has been skipped
run535 部署后容器 crash loop(exit126),两个独立根因:
1. Permission denied: entrypoint.sh git mv 后 644 无执行位,rsync 推 NAS 也是 644,
   bind mount 覆盖镜像层 chmod +x 无效,tini exec 失败。→ entrypoint.sh git 100755。
2. Redis 连接超时:新版 entrypoint 检查 SKIP_REDIS_CHECK!=1 才查 Redis(旧版 if false
   硬跳过),NAS 无 Redis 卡检查 crash。→ 默认 SKIP_REDIS_CHECK=1(复现旧版跳过)。

附:文档(nas-deploy-plan 方案①已实施 + ops/README 根治标记)。
2026-08-01 21:43:29 +08:00
claude_dev f9b7c103c0 docs: §10 可复现构建更新(单阶段Dockerfile+polars[rtcompat]+已验证换装)
CI/CD / test (push) Successful in 9s
CI/CD / nas-deploy (push) Successful in 22s
CI/CD / nas-verify (push) Successful in 3s
2026-08-01 20:39:58 +08:00
claude_dev 2ca2facce3 fix(docker): requirements-docker 补组合/CTA 运行时依赖(治重建丢包后患)
CI/CD / test (push) Successful in 9s
CI/CD / nas-deploy (push) Successful in 25s
CI/CD / nas-verify (push) Successful in 4s
容器是 docker commit 快照链(pre-init-rebuild 比 with-sqlite 多64包),
手动装的 bullet-trade/jqdatasdk/vnpy_ctastrategy/vnpy_sqlite 只活容器层,
从 base 重建会全丢。补进 requirements-docker.txt 钉到容器实证版(均PyPI可装):
- bullet-trade==0.9.2(组合框架,import bullet_trade)
- jqdatasdk==1.9.8(bullet_trade import 链必需)
- vnpy_ctastrategy==1.4.1(CTA引擎)
- vnpy_sqlite==1.1.3(vnpy sqlite驱动)
不补 pyecharts(0import残留)/jupyter栈(bloat)
docs §10 记可复现重建步骤;干净重建待 env 空闲验证
2026-08-01 12:23:53 +08:00
claude_dev 4fccfad4ca fix(nas): 固化容器 --init 铁律(防后台回测被清复发)
CI/CD / test (push) Successful in 9s
CI/CD / nas-deploy (push) Successful in 21s
CI/CD / nas-verify (push) Successful in 2s
- docker-compose.yml vnpy 服务加 init:true(供未来 compose 部署)
- three-env-code-promote.md 新增 §9:NAS 容器必须 --init 创建,
  手动重建命令+image(pre-init-rebuild勿用with-sqlite)+复发风险(手动rm+run)
根因:无init时docker exec nohup后台进程会话结束后被清(02 day0 4min被清)
ci-cd只restart不重建,--init保留;唯一丢--init路径=手动rm+run
2026-08-01 08:49:32 +08:00
claude_dev e5e9632460 docs: session-environment-guide 更新为分层CI/CD流程(NAS自动+VPS dispatch+agent PAT)
CI/CD / test (push) Successful in 12s
CI/CD / nas-deploy (push) Successful in 22s
CI/CD / nas-verify (push) Successful in 4s
Step2 改 promote --target nas(CI自动为主,手动应急);§8 改已建成分层(双workflow隔离+两种approve+PAT osxkeychain sanguo-gitea-ci)。原写同时推NAS+VPS/审批gate过时。
2026-07-31 22:02:50 +08:00
claude_dev efd0b23cd3 feat(ci): 开发session环境手册 + Gitea Actions CI/CD workflow + parquet同步脚本
CI/CD / test (push) Failing after 37s
CI/CD / nas-smoke (push) Has been skipped
CI/CD / vps (push) Has been skipped
- docs/session-environment-guide.md: 面向各开发session的部署→验证→冒烟手册(P1)
- .gitea/workflows/ci-cd.yml: 复用Mac runner编排 test→nas-smoke→vps(prod gate)
- scripts/nas_sync/sync_parquet.sh: parquet全量scp(static+valuation), setsid脱离会话
2026-07-30 20:58:51 +08:00
claude_dev c033cf6cb5 docs(design): MCP 直接暴露 LocalUnifiedProvider 设计笔记
解决人肉割裂/手搓查询错/AI不能主动取数:
- 14个公开方法分P0/P1/P2优先级(get_price/closes_panel/constituent/fundamentals优先)
- 薄server直接@tool注册,跳过FastAPI(YAGNI,不给第三方REST)
- 与Vibe-Research分工:实时在线vs本地历史,前缀sanguo_区分
- 配套TET:先治兜底再暴露,AI消费校验过的干净数据
2026-07-30 09:39:28 +08:00
claude_dev 58e9a3b053 docs(design): Provider Fetcher TET 化设计笔记——治兜底会乱
承接 OpenBB 调研的可落地设计:
- 实证本项目兜底坑(NaN当停牌/dbbardata双行/裸查询误报)
- TET三段式契约+fail-fast治兜底映射
- 本项目落地方案:extract读本地(绕过网络)+transform pydantic校验
- 明确不照搬OpenBB网络层/Registry/Router(KISS)
2026-07-30 07:47:41 +08:00
claude_dev 2c20e1674f docs(research): OpenBB(ODP)平台深度调研报告
四维度深度调研(功能/技术/部署架构+亮点),4 sub-agent 并行整合。
- 功能:15数据域/32 provider(全欧美)/181标准模型/27指标,不做交易与回测
- 技术:pydantic v2+FastAPI+FastMCP monorepo(~56包/23万行),Fetcher TET三段式+一函数四出口
- 部署:官方Dockerfile 4行+openbb-api:6900+widgets.json连Workspace
- 亮点:AI agent原生(MCP)+AGPL-3.0商业护城河+71.2k star开源
- 对本项目:借鉴Fetcher TET清白实现,MCP直暴露LocalUnifiedProvider
2026-07-29 22:45:43 +08:00
claude_dev 851d7d49b7 feat(deploy): Phase4 代码晋升脚本 promote.sh + runbook
Mac→NAS(rsync代码镜像)+Mac→VPS(scp生产部署)单向晋升管线。
- 数据铁律双层防护: rsync --exclude='/data' + scp按模块天然隔离data/
- --module 单模块快速补推 / 全量 双模式
- VPS无常驻web, 代码部署后下次schtask/回测启动自动生效,无需hot reload
- dry-run双端验证通过(VPS+NAS标记落盘后还原无残留)
- ssh用49.232.102.198(严禁ssh vps,fake-ip劫持198.18.1.254)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-29 21:47:11 +08:00
claude_dev f701f10bc5 feat(env): Phase3 dbbardata增量同步脚本 + pre-existing测试问题存档
Phase3同步方案定稿(spec§7 rsync被实证推翻→SQLite增量导出): scripts/nas_sync/ export/merge/sync_dbbardata.sh, VPS零新增依赖(纯sqlite3), id rowid增量0.77s, NAS pull方向, stdin喂脚本不落盘VPS(绕classifier). docs/three-env-preexisting-issues.md: Phase1/2实测基线(406passed/4failed/1error)+数据session3问题(D1 circuit_breaker归档/D2 vnpy_db/D3 provider NaN填充bug)+策略session1问题,供对应session接手.
2026-07-29 21:11:36 +08:00
claude_dev f953764fef docs(design): 三机开发-测试-生产环境分离设计spec
数据session评估收敛:VPS生产/Mac开发/NAS测试+备份物理隔离。
含硬件基线实测/数据热冷分布/Mac本地副本(非直读NAS SQLite避跨网锁坏)/
docker复用(amd64一致)/单向同步流/数据安全两层防护/4阶段实施步骤。
输入给独立三环境session实施。
2026-07-29 13:44:47 +08:00
claude_dev c3e53fbef3 docs(data): 归档数据层验证产物 + 数据层总览README
- scripts/data_platform/_archive/legacy/: 归档20个独立探针/诊断/旧降级脚本(零引用验证)
- docs/archive/data/: 归档17个数据相关旧设计/plan/report(保留fusion spec作深读)
- docs/data-platform/README.md: 数据层单一权威记录(8节:架构/布局/源/管线/铁律/API/缺口/待办)
- 删除 _mootdx_depth_result.txt
- Phase2待办: 15m灌库链+旧回填import链(有测试/wrapper依赖,VPS schtask确认后归档)
2026-07-29 10:11:38 +08:00