claude_dev
7b7667e0ac
fix(live): EOD对账重启兜底归因——remark指纹重建本实例订单集+实例唯一label注入;09-01 002646终局实锤:引擎订单注册表=进程内存态(轮换重启即失,runtime持久化只恢复策略/账本),新进程18:49 EOD报「本实例=0」→无守恒缺口→记日,当日15:05后才补全的迟到成交永久失联(get_trades内部本就是query_stock_trades,重试环与直查同源都不缺接口,缺的是归因锚);修=①runner_live经live_config注入strategy_name=live_{id},订单remark(bt:live_17:hash)实例唯一(此前六实例适配文件同名,label全为live_strateg不可分;仅对注入后新单生效)②eod_reconcile补_own_orders_remarked:broker.get_orders(QMT当日订单,带remark)按前缀筛本实例→shim补进own_by_broker(setdefault,engine自己的单优先),状态复用broker._map_order_status,is_buy缺失弃用(宁漏勿错);_PENDING不重建(EOD兜底已覆盖当日全量,省一条风险面);+4重启形态测试+1注入缝钉子,557绿 [vps]
CI/CD / test (push) Successful in 11s
CI/CD / nas-deploy (push) Successful in 5s
CI/CD / nas-verify (push) Successful in 10s
2026-09-01 19:18:22 +08:00
claude_dev
8bcca3146b
fix(data): vintage自检补覆盖率撕裂告警——VPS真数实测暴露v1盲区:cashflow洗库中段8%vs两表100%但max_period同为Q2'26,仅看max报了OK漏掉撕裂;补=三报表coverage最大-最小>50pp告警(三报表同批披露稳态应同步,中段/某表大面积失败即触发);+1真形态测试 [vps]
CI/CD / test (push) Successful in 7s
CI/CD / nas-deploy (push) Successful in 6s
CI/CD / nas-verify (push) Successful in 10s
2026-09-01 19:17:03 +08:00
claude_dev
5d0a0bf6d3
fix(strategy): channel_test探针盘后下单双守卫——09-01 18:48轮换重启实锤:随启随验run_daily锚定now+90s=18:50,探针16笔真单盘后全挂柜台(~107万买单冻结排队次日集合竞价);且run_daily为每日重复锚定,08-30周日13:07重启即埋下「每天13:09盘后风格漂移」隐患,jq_strategy调度恢复失败回退注册当前时刻是第三路径;修=①注册侧:锚点落非交易时段(工作日09:25-11:35/12:55-15:05)不注册+大声告警②执行侧:probe_all首行守卫,盘外触发整轮跳过零下单(兜调度错锚/回退路径);墙钟抽_now()可注入,测试autouse钉盘中防CI时段漂移;+3守卫测试+11边界参数化;25/25 [vps]
CI/CD / test (push) Successful in 2s
CI/CD / nas-deploy (push) Successful in 7s
CI/CD / nas-verify (push) Failing after 12m28s
2026-09-01 19:04:40 +08:00
claude_dev
8dc3f494b7
feat(data): 静态表调度挪周末+vintage盘前自检——③sanguo-ak-quarter月内1号02:00改财报月首个周六02:00(/d SAT,周六02:00→周一09:30有55h跑道;旧排程7.5h夜窗连单表8h都装不下,09-01注册后首爆16h+穿整个交易日,09:32决策窗撞balance(94%Q2'26)/income(0%)vintage撕裂致value ROE归零清仓;月内1-4号读旧但一致,策略配对修复侧兼容)④新增static_vintage_check.py每日09:00自检:三报表最大报告期+覆盖率盘点(REPORT_DATE列裁剪扫描),跨表撕裂/估值断更(>48h)告警exit 3,原子落vintage_status.json供策略盘前预判(策略session协作契约);register加sanguo-ak-vintage+新wrapper;+8测试 [vps]
CI/CD / test (push) Successful in 3s
CI/CD / nas-deploy (push) Successful in 8s
CI/CD / nas-verify (push) Successful in 14s
2026-09-01 19:03:53 +08:00
claude_dev
aa7e7b8eba
fix(data): 静态表下载两隐患根治——①北交所白烧重试跳过(东财三报表端点SH920xxx必败'NoneType'错,09-01季频洗库实测340股×3表×3retry+退避白烧≈5h;对齐top_holders BJ_PREFIXES同款跳过,valuation/financial_abstract实测BSE有数据不跳)②fetch失败语义修正:15个fetcher不再经_df_or_empty把重试耗尽(None)转空df→空parquet覆盖旧好数据+标done永不重试(09-01实证340空文件全BSE属侥幸,主板瞬时故障会真毁数据);改返None交download_one_unit既有failed分支=不写不标保旧数据复跑重试,真空df才写空+done;test_top_holders一处旧契约断言同步(失败返None);+8测试钉死 [vps]
2026-09-01 19:03:47 +08:00
claude_dev
3b3f7d689c
fix(provider): value ROE 配对改公共报告期交集治财报季 vintage 错位清仓——09-01 09:32 value_selection_ex 月度窗口 L3=0 全清仓实锤:roe_series 构建=income/balance 各自 latest-4 再硬 REPORT_DATE 匹配,财报季一表领先一季(balance 已带 2026 中报而 income 未刷新,ak-quarter 马拉松 09:32 时 94%/0% 撕裂)两窗错开一格只交 3 期→策略 len>=4 全体不过→821 只零候选→卖 600276/603288 共 1.23 万股趴 483k 现金;修=两表各取 2 倍缓冲→REPORT_DATE 公共交集回最近 4 季(同季重述取最新 notice),策略层 len>=4 契约不变,原版+_ex 同受益;+3 回归(领先一季仍满 4 期/领先季绝不跨季错配/对齐两表语义不变);538 绿 [vps]
CI/CD / test (push) Successful in 17s
CI/CD / nas-deploy (push) Successful in 11s
CI/CD / nas-verify (push) Successful in 12s
2026-09-01 18:59:32 +08:00
claude_dev
9f264f8bd0
fix(provider): sqlite连接改thread-local根治跨日存活跨线程崩——09-01 09:30 live_19实录:引擎首次跨日存活后回调线程变化(连接建于线程19932/用在线程4184),_connect单例连接跨线程复用直接ProgrammingError→momentum_timing牛熊分界不可用跳过当日调仓(安全降级但每日复发直到重启);修=threading.local每线程各持连接(fetchers四处ctx._connect()零改动);影子引擎0例中招;2新测试复现同款报错文案钉死 [vps]
CI/CD / test (push) Successful in 19s
CI/CD / nas-deploy (push) Successful in 7s
CI/CD / nas-verify (push) Successful in 12s
2026-09-01 12:54:30 +08:00
claude_dev
1d9265b922
fix(live): 废单告警补第二肢治柜台级拒单盲区——08-31 T+1探针实锤:柜台拒单不进QMT当日订单API(query_stock_orders 15笔全SUCCEEDED不含被拒卖单),订单状态永停非终态,原告警等柜台报rejected结构性等不到;新肢=当日自提交订单EOD仍非终态且零成交→疑似废单(提交侧自证,不依赖QMT报状态;正常撤单已到终态不计,部分成交残量仍归守恒管);两肢合并入rejected_orders带why字段区分;+2测试(疑似单命中/撤单与跨日不误报);全量1368绿 [vps]
CI/CD / test (push) Successful in 4s
CI/CD / nas-deploy (push) Successful in 19s
CI/CD / nas-verify (push) Successful in 18s
2026-09-01 12:17:08 +08:00
claude_dev
b695874b3c
fix(live): 守恒/废单跨日过滤属性错位根治——订单时间字段误读不存在的datetime(bullet_trade Order实为add_time,全字段扫描实锤)恒None→跨日过滤从不生效,引擎跨交易日存活时历史终态订单全进当日守恒对比(台账只记当日行)→每日假缺口告警+重试刷到23:00;09-01进程将首次跨日存活必首发作;两处同修(守恒+废单清单),测试替身datetime_=改回add_time_=(08-29周末提交曾喂不存在的datetime=把bug锁进断言)+新增昨日终态订单零缺口回归;531绿 [vps]
CI/CD / test (push) Successful in 6s
CI/CD / nas-deploy (push) Successful in 27s
CI/CD / nas-verify (push) Successful in 17s
2026-08-31 18:32:20 +08:00
claude_dev
6710591d44
fix(web): 因子域三页主按钮观感统一——BatchEval/New/LeaderboardDetail 的 .btn.primary 原为青实底深字+glow 旧观感(用户反馈「批量评估和因子分析里的按钮样式都不太对」),统一替换为排行榜「发起新评估」同款(青软底 var(--cyan-soft)+荧光青字 var(--brand)+半透描边,el-button--primary 观感);Result.vue 无主按钮不动 [nas]
CI/CD / test (push) Successful in 4s
CI/CD / nas-deploy (push) Successful in 9s
CI/CD / nas-verify (push) Successful in 8s
2026-08-30 19:19:25 +08:00
claude_dev
4ab83097ec
fix(data): constituent_unified中证1000(000852)全0修复+current锚点三重防线——000852的1233条成分全in_current=0(因子池端点显示0只);根因=08-16 idx-monthly STEP0的fetch_akshare_current(000852)瞬时网络失败被「非致命warning」吞→announce_union重写丢current锚点→migrate全标was_removed,而snapshot兜底对两指数均为csindex超时placeholder从未起作用;数据修复(已执行)=akshare现拉1000只append进announce_union+正规migrate/merge重建,VPS主库1673条cur=1000精确达标,全21指数diff仅000852,NAS sync_tables已同步同态,全0扫描为空;代码防线=①fetch重试3次②空解析raise大声(列定位失败不再静默返空)③_carry_forward_current失败时沿用旧parquet current行锚点只增不丢(000852/932000两块接线);6新测试钉死三防线 [vps]
CI/CD / test (push) Successful in 10s
CI/CD / nas-deploy (push) Successful in 12s
CI/CD / nas-verify (push) Successful in 12s
2026-08-30 12:49:13 +08:00
claude_dev
81b5b558a6
fix(live): 部署滚动重启QMT会话竞态根治双层——P1 runner_live connect退避重试5×10s(08-30实录live_17/20重拉后connect=-1整引擎退出静默缺仓,会话回收秒级重试即免疫,失败清理QmtBroker自带重试安全)+P0 重启脚本杀后等30s会话回收+引擎数核验追平杀前DB期望追不平exit 1红灯(vps_count_engines.py经promote部署,expected须杀前取);VPS实测双模式6/6;全量1359绿 [vps]
CI/CD / test (push) Successful in 3s
CI/CD / nas-deploy (push) Successful in 7s
CI/CD / nas-verify (push) Successful in 9s
2026-08-30 12:46:48 +08:00
claude_dev
ea1d41b04c
fix(live): day_count隔日恢复+1双计修正(落盘值已含自增,恢复直取saved_count) [vps]
CI/CD / test (push) Successful in 2s
CI/CD / nas-deploy (push) Successful in 10s
CI/CD / nas-verify (push) Successful in 10s
2026-08-30 11:54:03 +08:00
claude_dev
5cc326dd4a
fix(factor): output_dir建目录兜底——VPS(Windows)首跑/tmp/factor不存在tears静默失败 [vps]
...
CI/CD / test (push) Successful in 3s
CI/CD / nas-deploy (push) Successful in 11s
CI/CD / nas-verify (push) Successful in 13s
API路径output_dir硬编码/tmp/factor是容器/NAS约定;Windows解析为当前盘根
\tmp\factor,首跑不存在且tears/心跳open直写不建目录→FileNotFoundError
→tears标注json_error静默降级+心跳全丢。os.makedirs exist_ok幂等修复,
赶上统一推vps班车。factor全套测绿
2026-08-30 10:53:34 +08:00
claude_dev
51c400030b
fix(web): 生成tears按钮任务状态化防重复提交(用户08-30补充) [nas]
...
CI/CD / test (push) Successful in 5s
CI/CD / nas-deploy (push) Successful in 12s
CI/CD / nas-verify (push) Successful in 7s
痛点:点击生成→progress→返回详情页按钮仍可点,重复生成同类任务。
方案:每因子记task_id(localStorage factorTearsTask.v1),按钮三态——
无任务「生成tears报告」/进行中「分析进行中·查看进度→」(跳progress复用)/
已完成「✓查看tears报告→」(跳result复用);failed或tears缺失(修复前旧
失败任务getTearsData探测404)自动清态恢复可重新生成;任务404(已清理)同。
mounted/watch factor刷新态;build绿
2026-08-30 10:48:45 +08:00
claude_dev
ad2270821c
fix(web): 进度页时间线越界+因子任务日志空(用户08-30验收两处) [vps]
...
CI/CD / test (push) Failing after 14m58s
CI/CD / nas-deploy (push) Has been skipped
CI/CD / nas-verify (push) Has been skipped
①时间线:原「末节点flex 0 0 auto+bar宽100%相对本节点」=4号点贴屏幕右缘、
3号bar越界伸出容器 → 全节点等宽flex:1(dot落各等分区中心),bar改
left:calc(50%+16px)/width:calc(100%-32px)精确连接相邻dot。
②因子任务日志空:log端点读的{db目录}/{tid}.log因子任务从不写 → 心跳
追加流水:_report_progress同时append [HH:MM:SS] stage·detail 到
{tid}.progress.log,/task/{id}/log factor_前缀优先返流水(行情加载i/N、
因子i/M、tears✓即用户要看的运行过程);189测+build绿
2026-08-30 10:46:05 +08:00
claude_dev
20be2d5152
fix(web): 因子分组双竖排平齐+排行榜主按钮观感对齐(用户08-30两项) [nas]
...
CI/CD / test (push) Successful in 5s
CI/CD / nas-deploy (push) Successful in 12s
CI/CD / nas-verify (push) Successful in 15s
①FactorPicker:左列=alpha101+builtin(小类拼列)右列=alpha158(大类独占),
两竖排大体平齐(原grid顺排builtin孤悬左下右下留白);flex双列,未知类别归左列。
②Leaderboard「发起新评估」:荧光青实底+冷白字对比不足(浅底浅字看不清)→
对齐el-button--primary观感(新建模拟盘同款):青软底+荧光青字+青描边。
npm run build绿
2026-08-30 10:24:29 +08:00
claude_dev
8f4f564733
feat(factor): 进度页心跳判活+因子列表默认折叠(用户08-30反馈两项) [vps]
...
CI/CD / test (push) Successful in 4s
CI/CD / nas-deploy (push) Successful in 11s
CI/CD / nas-verify (push) Successful in 7s
痛点:因子分析分钟级运行,进度条停着看不出进行中还是死掉;240因子罗列乱。
①跨进程心跳链路:analyzer._report_progress 写 {output_dir}/{tid}.progress
(stage/detail/ts;IO故障静默——锦上添花不能伤主流程),埋点=行情加载i/N逐只
+因子特征+逐因子i/M+tears✓+完成;runner._factor_worker 透传 task_id
(默认空串兼容旧调用);GET /task/{id} 合并 _read_factor_progress(factor_
前缀才读,age=距上次活动秒数)。
②Progress.vue终端风重构:心跳区=呼吸灯(绿≤30s/琥珀≤180s静默期/红更久,
prefers-reduced-motion停动画)+「Xs前·detail」+运行时长秒表+步骤%大数字;
因子步骤=行情加载→因子计算→逐因子分析→完成(心跳stage驱动);回测/优化
保持原5步推导+进度条;useTask/TaskStatus 透传 progress。
③FactorPicker默认折叠:groups max-height 128px两行预览+渐隐底边+
「展开全部N个因子▾」按钮,搜索时自动展开。
+5测试(_report_progress写/静默/心跳读roundtrip/非factor/损坏JSON),323绿+build绿
2026-08-30 10:17:19 +08:00
claude_dev
557479b848
feat(factor): New/Result两页终端风重构落地(方案B设计稿v2用户拍板'开工') [nas]
...
CI/CD / test (push) Successful in 3s
CI/CD / nas-deploy (push) Successful in 6s
CI/CD / nas-verify (push) Successful in 9s
后端3小端点(sanguo_factor/universe_pools.py+routes):/factor/universe/pools
池清单(白名单6指数+当前成分数,in_current=1池语义≠回测并集口径)/pool/{key}
成分(code+name读constituent_unified)/search?q=(代码前缀OR名称子句DISTINCT
LIMIT10);cfg=None兜底同analyzer;+6单测+2端点测(⚠️ 首版误覆盖batch_eval的
universe.py,git恢复后改名universe_pools,292测全绿)
前端:①New.vue终端风重写——FactorPicker(搜索+三色分组点选+已选托盘,
240因子弃下拉)+UniversePicker(三层输入:预设池一键选[跨行业30前端常量+
6指数池走后端]/搜索combobox防抖250ms带名称候选/chips池可删+复制+清空,
批量粘贴折叠兜底)+原生date input禁未来+跨度显示+校验前置(禁用+原因文案);
要素零变化(query.factor预填/hydrate回填/≥1因子+≥2标的/混合分隔)。
②Result.vue外壳——5格metric-strip(最优ICIR正红负绿/最优因子青)+IC明细
终端表格(右对齐tabular-nums,|t|≥2加粗,最优因子行青标+左青条)+tears区
tabs终端化(TearsPanel本体不动)。③factorSamples.ts常量:跨行业30只
(code+name)详情页一键直达与New页预设共用同源(LeaderboardDetail改引,
删本地重复清单)。npm run build绿(vue-tsc+rolldown)
2026-08-30 09:59:38 +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
8eba3e1cf1
fix(factor): tears对秩类离散因子必空根治(qcut duplicates+quantiles=10) [vps]
...
CI/CD / test (push) Successful in 1s
CI/CD / nas-deploy (push) Successful in 6s
CI/CD / nas-verify (push) Successful in 8s
alpha16实锤(08-30用户验收factor_b7f3a2e8无图表):cs_rank(ts_cov(cs_rank,cs_rank,5))
截面值高度并列(中位日25值仅6唯一,-19.5×12/-5×9)→alphalens quantize_factor的
pd.qcut(x,q)不传duplicates(默认raise)→Bin edges must be unique→no_raise吞成全NaN
→binning丢100%(303/303日期全抛)→merged空→IC全'No valid IC values'+tears
IndexError+报告空=页面无图表。该形态下此类因子tears永远不可能成功。
修复三件:
①tears_data.py加pd.qcut duplicates='drop'幂等patch(与demean pandas2 patch同位,
_SANGUO flag防重入)——并列值并入少数分位,quantile_keys动态短化前端已容错
②analyzer get_clean调用前import tears_data激活模块级补丁(原import在IC后=补丁
晚到)+quantiles默认5→10显式传参(对齐tears页D1..D10设计与排行榜decile口径)
③build_tears_data qkeys防御:<2组多空退化零序列/0组空Series,不再IndexError
+回归测试:离散并列因子走真实alphalens binning(原测试自合成factor_quantile
绕过该路径=漏掉此bug的原因);RED→GREEN双向验证(无patch merged空(0,3)97.5%
bin丢/有patch绿)。factor+api 123绿;NAS容器30只股端到端:binning丢0.0%、
merged 7732行、tears三周期出数(ic_mean 5D=-0.0014)
2026-08-30 09:36:21 +08:00
claude_dev
32d17676b3
fix(factor): 排行榜详情「查看tears报告」跳分析提交页的断点改一键直达 [nas]
...
CI/CD / test (push) Failing after 13m54s
CI/CD / nas-deploy (push) Has been skipped
CI/CD / nas-verify (push) Has been skipped
用户08-30验收:对比页已见,但点tears仍跳原因子分析页(旧桥接=带预填跳/factor/new手动提交,方案A上线后成了断点)。改:按钮「生成tears报告」直接submitFactor(30只跨行业样本×2024-01~2026-06,分钟级)→progress→完成即新版ECharts tears页;原桥接降级为「自选样本分析」次按钮。npm run build绿
2026-08-30 08:57:17 +08:00
claude_dev
0dd81d709f
feat(factor): tears报告方案A原生重构+「加入对比」做实(用户08-29拍板) [vps]
...
CI/CD / test (push) Successful in 5s
CI/CD / nas-deploy (push) Successful in 8s
CI/CD / nas-verify (push) Successful in 8s
①后端tears序列化:sanguo_factor/tears_data.py新模块,alphalens已算分层序列(日度IC/月度聚合/十分组累计净值/多空Q10−Q1净值+最大回撤/去重叠年化/因子秩自相关)在分析时序列化为{factor}_tears.json,与tearsheet同源;FactorReport加tears_paths,GET /task/{id}/tears/{factor}端点(token header),_persist_factor同步落DB
②前端tears页:TearsPanel.vue按设计稿tab①——指标条7格+月度IC柱(红正绿负)/累计IC线双轴+月度IC热力图(年×月,CSS格)+分组累计净值Q1/Q5/Q10+多空净值(琥珀+面积+○最大回撤标注)+十分组年化(±5%虚线)+IC衰减(1/5/10D),1/5/10D全页联动;Result.vue的iframe→原生渲染;旧任务404自动回退iframe旧alphalens报告
③加入对比(设计稿tab②纯前端):factorCompare store(localStorage持久化,2~6个)+排行榜行内「+对比/✓已选」列+详情页死按钮做实(选中青色态)+全局底部托盘CompareTray(chips可删/清空/对比N因子→)+对比页Compare.vue(指标并排·行最优青色高亮/累计IC叠加多线/月度IC序列Pearson相关性矩阵前端算/十分组小倍数SVG)
测试:tears_data纯函数5+全链真实alphalens6(合成因子IC>0/分层单调/JSON可序列化)+analyzer写盘/容错2+端点401/404/200共3;factor+api+orchestrator 317全绿;npm run build绿
2026-08-29 08:45:10 +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
64cb460748
fix(live): 08-28复盘根治三连(003011守恒120股+600818废单+day_count5连日day=0)——①EOD补插失效修复:守恒缺口非空不再一天一跑,15:05-23:00每轮重查(QMT当日视图晚间才补全:003011实锤15:05快照缺第10笔/用户22点导出已齐全=当晚自愈窗口,23:00后记日放弃防无效轮询)+缺口标的QMT原始行直接打进告警取证(当时没dump事后只能猜)+同签名重试轮降INFO防60s刷屏;②当日废单告警入EOD汇总(600818形态:filled=0废单盘中只有ERROR日志躺文件里,复盘才发现当日缺仓~8万);③small_cap day_count持久化(runtime/state_{实例env}/small_cap_day.json,08-24~28连续5交易日重启归零day=0全量调仓根治,tc=5周期跨重启保持;隔日重启+1/同日不加/停摆跨多日只+1自洽;回测无实例env不落盘=旧内存语义;原版+_ex同接all_weather共享helper,TET副本diff契约不破);+测试:003011十笔孪生vs九行台账复现补插/缺口重试到视图补全即闭环/废单告警+部分成交与跨日不进清单/持久化4态;顺手修tests/test_live_api预存红9个(B3 f9b6d77只给两文件播种快照漏了本文件,照抄同款修法;空账号断言改create即400新契约);全量1333绿 [vps]
CI/CD / test (push) Successful in 9s
CI/CD / nas-deploy (push) Successful in 17s
CI/CD / nas-verify (push) Successful in 15s
2026-08-29 08:22:14 +08:00
claude_dev
a62bdbabc1
fix(web): 因子详情「查看完整 tears 报告」从裸跳老页改为带因子名预填——原占位跳转不带上下文,用户看到的像部署了旧页;现经 query.factor 预填老分析页因子选择器(排行榜深挖单因子的正路);npm run build 绿 [nas]
CI/CD / test (push) Successful in 10s
CI/CD / nas-deploy (push) Successful in 18s
CI/CD / nas-verify (push) Successful in 0s
2026-08-28 23:02:49 +08:00
claude_dev
9c33af5d45
fix(live): 孪生成交判重+订单守恒双修(08-27 001234实锤)——①EOD对账五元组判重set→Counter计数感知:同分钟同价同量仅成交编号不同的孪生成交,第二笔原被吞成'已覆盖'→台账短100股幻影(事件路径vt_tradeid=哈希不携带成交编号,tid匹配永远落空全靠元组,集合式判重天生分不开孪生);计数后超出部分补插,001234场景在15:05即自愈②守恒校验新增:本实例当日终态订单filled合计vs台账当日成交量合计(前缀6位码归一/跨日订单不计),不平即告警——连QMT流水都缺行的极端形态最后防线③影子撮合价差对齐(用户拍板费率已齐只留撮合差):新增SanguoFundamentals.get_realtime_price(get_full_tick单次RPC+thread超时保护,裸价),build_price_getter实时tick优先/回退昨收fq=pre→raw(除权日不再跳分红因子,08-27 600988实锤47.12 vs 46.85);+3 provider测试+4定价测试+2守恒测试,全量792绿 [vps]
CI/CD / test (push) Successful in 13s
CI/CD / nas-deploy (push) Successful in 37s
CI/CD / nas-verify (push) Successful in 12s
2026-08-28 00:30:13 +08:00
claude_dev
c0dd91e8d2
fix(web): 监控页表格五修(用户验收08-26晚)——①整表挤左根治:五张表全部固定width→min-width(08-20四修治折行时全列定宽,合计~600px<卡片宽,Element固定列不拉伸→右侧大片空白;min-width保下限不折行+剩余宽度按比例分配铺满整卡)②小数位统一(非设计初衷,原始浮点透出14.6/23.577/200.0混杂):均价/价格/成本统一fmtPrice两位小数,数量/持仓/冻结/可卖num()取整千分位,时间列fmtTradeTime兼容空格式与ISO'T'两种落库路径;npm run build绿 [vps]
CI/CD / test (push) Successful in 9s
CI/CD / nas-deploy (push) Successful in 30s
CI/CD / nas-verify (push) Successful in 5s
2026-08-26 23:06:30 +08:00
claude_dev
a7c2dd6f59
fix(ci): vps_restart_resident schtasks /run 加3次重试——run756实锤三连部署短时海量ssh连接可被sshd单发重置(kex reset),拉起命令没送到=影子舰队整夜静默需手动补拉 [nas]
CI/CD / test (push) Failing after 11m54s
CI/CD / nas-deploy (push) Has been skipped
CI/CD / nas-verify (push) Has been skipped
2026-08-26 22:49:06 +08:00
claude_dev
c16f5e2248
fix(provider): get_fundamentals_df整步本地化根治small_cap选股2/3十八分钟——fields全落本地可供列(market_cap/circulating_market_cap/eps)直接委托unified parquet跳过xt;xt路径=download_financial_data(3226)卡满120s超时被弃+get_financial_data逐股0.3s×全池≈16min(08-26 live_20 delay=+1084s实锤),unified全池88s(VPS实测3226只);eps随之与回测同源(LPP年报BASIC_EPS),live原走miniQMT最新一期本就是双轨漂移;本地异常回退xt老路径fail-open;白名单外列(roic等)不走快路不混合;7新测试+1老测试拆双路径 [vps]
CI/CD / test (push) Successful in 17s
CI/CD / nas-deploy (push) Successful in 22s
CI/CD / nas-verify (push) Successful in 10s
2026-08-26 20:46:44 +08:00
claude_dev
97403c2d9e
refactor(strategy): 定寸口径全量统一_ex总资产语义(用户08-26拍板「都要统一ex的」)——回测侧四原版per_value现金→_total_value(momentum/value/small_cap同款total<=0守卫+all_weather两处:补跌加仓n_pick/月度铺余位空槽数),all_weather_ex同步(08-25 A修法时被排除的两处补齐,移交文档「_ex已全部用」与实际不符);value_selection_ex交集定序list→sorted对齐fa04475(原版已sorted,_ex副本漏带=原版↔_ex同参一致的最后一处差);8策略类inspect验证零残留现金口径;测试参数化原版+_ex双跑(12绿=统一验收)+aw两现场新增;顺修test_live_reconcile写死日期跨午夜翻红(08-26实锤,改动态今天);524全绿;回测历史结果将变(目的=回测↔实盘对齐) [vps]
CI/CD / test (push) Successful in 17s
CI/CD / nas-deploy (push) Successful in 28s
CI/CD / nas-verify (push) Successful in 13s
2026-08-26 20:38:03 +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
0c81f5b04b
fix(orchestrator): worker被OOM击杀后ProcessPoolExecutor永久破损——BrokenProcessPool让任务中心瘫痪到容器重启(factor批次连撞两次500实锤);submit_work捕获后重建池重试一次 [nas]
2026-08-26 20:19:07 +08:00
claude_dev
1539e678f6
fix(factor): fast_ops大窗口OOM根治——>60窗shift展开物化window列×10M行(250窗≈20GB)必被内核击杀,卡死24/227六次自愈全撞alpha19的统一根因;sum/min/max/mean/std/corr改原生rolling(min_samples=1截断窗与展开逐点恒等,13等值测试锁定NaN/null语义差异:min须fill_nan(None),max不fill因NaN视作最大两路同步毒化) [vps]
2026-08-26 20:19:03 +08:00
claude_dev
c40c6f3216
feat(api): 批量评估submit支持run_id断点续跑透传——docker exec会话被DSM约20min处决,评估改走uvicorn子进程不受exec收割,API带run_id无缝续 [vps]
2026-08-26 19:03:50 +08:00
claude_dev
2838b3938e
perf(factor): close_wide同款pandas pivot快路——parquet缓存后它成了每条命15min的残留大头(_eval_one同款修法) [vps]
2026-08-26 07:42:08 +08:00
claude_dev
be50d6c555
perf(factor): universe parquet缓存——外部~20min杀手 regime下每条命15min冷加载翻转为秒级复载,20min寿命=纯计算15-20因子;key含窗口/symbols/limit防串池,写失败静默 [vps]
2026-08-26 06:37:33 +08:00
claude_dev
62673ea329
fix(factor): load内存根治v2——类型转换下沉chunk级(dt解析/vt_symbol常量列/列裁剪),字符串三列活不过2100行小块,concat仅碰精简类型列;前轮lazy化未压住的6.6GB峰值源头即Utf8多份拷贝 [vps]
2026-08-26 05:27:28 +08:00
claude_dev
6eb977a0d0
fix(factor): load段内存峰值根治——chunks在concat后即清+transform链lazy单次物化,RSS监控实锤6.6GB被kernel周期性OOM击杀,eager逐步链3-4倍峰值收敛到~1.5倍 [vps]
2026-08-26 05:03:45 +08:00
claude_dev
9977ff6e2e
perf(factor): 评估内存减负——bars原始帧派生后即释放(~1G)+alpha_df弃无引用open_interest列(80M),NAS 8G盒防周期性OOM [vps]
2026-08-26 03:53:30 +08:00
claude_dev
38df909b92
perf(factor): fast_ops 双操作数join改按位拼接——ts_corr/cov每次调用对10M行帧hash join分钟级(py-spy第五查),同父df全算子保长保序前提下按位等价零成本 [vps]
2026-08-26 01:57:05 +08:00
claude_dev
d995962425
perf(factor): 落库buffer 20→1逐因子即存——重启风暴下单次最多丢在途1因子(曾一次丢6个未攒满批) [vps]
2026-08-26 00:25:57 +08:00
claude_dev
75f824341b
perf(factor): 因子矩阵宽表化polars pivot改pandas pivot——py-spy实锤10.4M行polars pivot单次10+分钟,唯一键下pandas=factorize+reshape秒级;索引/列语义与后续切窗掩码不变 [vps]
2026-08-25 23:56:44 +08:00
claude_dev
919fa50d0f
fix(live): 迟到成交对账根因修——引擎16s超时弃跟踪后迟到fill永不进engine.get_trades(08-25幻影500+700股/-18060不自愈):a窄修=下单返回非终态挂进程内待对账名单,归因轮询按券商订单号直查QMT原始成交行(broker.get_trades,绕开引擎视图)见一笔记一笔,终态出名单/隔夜出清;b宽修=15:05 EOD全量对账(QMT当日成交vs live_trades,trade_id或时间+代码+方向+价+量五元组对齐,缺失补插带eod:前缀),赶在15:10恒等式前收敛;三路径同一deal_no幂等;新增live_reconcile模块+账本seen_trade_ids快照,适配器_done挂钩孤立加载已验,21新测试+全量1100绿(9红=test_live_api前后端session既有) [vps]
CI/CD / test (push) Successful in 18s
CI/CD / nas-deploy (push) Successful in 23s
CI/CD / nas-verify (push) Successful in 2s
2026-08-25 23:56:29 +08:00
claude_dev
7bbba554f8
perf(factor): fast_ops v2 去over化——rolling.over(vt_symbol)在10M行分组滚动分钟级/算子(py-spy实锤ts_mean),改符号内shift展开统一模式(ts_mean/std/min/max/sum/corr/cov),等价性测试对齐原版+1M行速度护栏 [vps]
2026-08-25 22:15:40 +08:00
claude_dev
a2fe51b4b0
fix(nas): bs_5m失败股尾部补扫一轮——03:0x同步链持写锁60s busy_timeout耗尽database is locked(每晚1-5只)+偶发网络错(600247),原形态=该片窗口永久小洞;修=_sweep返failed清单,run尾部(07:40+同步链早已收工)chunk/inc各自失败集各补扫一轮自愈,补扫query计入swept配额、rlr并入exit语义;+2测试(双窗口失败→双retry=6调用自愈/零失败无retry回归);venv310 644绿 [nas]
CI/CD / test (push) Successful in 29s
CI/CD / nas-deploy (push) Successful in 33s
CI/CD / nas-verify (push) Successful in 2s
2026-08-25 21:32:28 +08:00
claude_dev
7ad0cbea76
fix(nas): merge_increment计数免疫并发写者——inserted改用Connection.total_changes(只计本连接INSERT生效行),原after-before会被03:00合并窗口并发的bs_5m写入污染(08-25实锤skipped(dup)=-4881,5m插的行被记成merge的inserted);+2测试钉计数契约(新/dup/混掺/他源行不计入);venv310 644绿 [nas]
2026-08-25 21:32:28 +08:00
claude_dev
41495b0c08
fix(live): 卖出闸门无价透传改fail-closed拒单——issue#38修复一A收尾 [vps]
...
CI/CD / test (push) Failing after 11m5s
CI/CD / nas-deploy (push) Has been skipped
CI/CD / nas-verify (push) Has been skipped
08-24 300059 跨实例互卖定罪(issue#38):闸门虽有台账硬顶,但两处「无有效价格」
路径透传引擎原函数=数据源退化回全账户视图(引擎按账户算target,账户有量会替
别家卖到目标值/按账户卖出)——正是「账户可卖视图放行18归属4400股」的变体洞。
改动(_instance_order_wrappers):
- otv value>0 无价(市价拿不到且账本无此票无成本可回退)→ 拒单fail-closed,
不再透传bt_otv引擎target语义(宁可少买不可互卖,策略session定夺=拒单语义)
- 负order_value无价 → 拒单,不再透传bt_ov按全账户卖出
- 事故主洞(同窗双卖吃到60s归因间隙)已由191270c即时归因关闭:新增钉死测试
「双卖窗口阻断」——第一笔4400即时归因(on_order_done钩子)→第二笔闸门读
账本可卖0拒单;闸门每调用现读positions_view的B链路行为从此有回归锚
测试:test_live_instance_orders +3(双卖窗口阻断/otv无价拒单/负ov无价拒单),
17/17绿;portfolio+data_platform+api全量819绿。B2 closeable口径已走账本
(InstancePosition直读账本info,无改动);账本bootstrap/重归=15:10恒等式
reconcile既有runbook。issue#38验收(恒等式连续3日PASS)按issue标准观察。
2026-08-25 21:30:49 +08:00
claude_dev
894c547297
feat(factor): 批量评估断点续跑——run_id复用+已落库因子跳过+空续跑免load直收尾;跨session CI容器重启只损失在途1因子,重挂即续 [vps]
2026-08-25 20:56:22 +08:00