Commit Graph

989 Commits

Author SHA1 Message Date
claude_dev bf57aed17a retire(web): sanguo_web legacy 平行后端归档——用户拍板「代码保留归档,服务删」 [nas]
- git mv sanguo_web → _retired/sanguo_web/(git 历史保全+墓碑 README:
  归档原因/拍板记录/现役=sanguo_api)
- 退出启动面三处: promote.sh ALL_MODS 白名单(15→14 模块)+docker/Dockerfile:63
  COPY+docker/Dockerfile.nas:16 COPY——不可再被部署或启动为服务
- 背景(架构审计 P0-3): 硬编码 SECRET_KEY/admin123 默认口令/CORS 全开/可下
  真实订单/零测试/与 sanguo_api 路由冲突; 生产从未部署为服务, 纯误启动风险
  (README 旧「生产模式 uvicorn sanguo_web」指引已于 f6ca85e 勘误)
- three-env §3.1 模块清单+§12 矩阵行同步; session-guide §5 角色表前端行
  勘误(旧表把 sanguo_web 当前端模块推——实为 legacy 后端, 前端=frontend/)
- 零外部 import(runuweb/tests/packages 全 grep 实证), pytest testpaths=tests
  不受影响

Co-Authored-By: Claude Code <notify@anthropic.com>
2026-10-01 09:46:21 +08:00
claude_dev 1284ce7bd2 docs(audit): strategy域10-01两轮审计处置记录——10项全处置(修7/评估2/延期有据1+data转呈件采纳); P1-9十五点位印花税对齐+生产行核对项; P1-13 Phase3删除方案(先代读核实在册实例); P0-4前视全评估(三上下文语义漂移矩阵+方案a推荐+重验证义务+P1-13先行时序); P2-2滑点需reconcile标定/P2-5并infra P1-2同主题 [nas] [no-doc]
CI/CD / test (push) Successful in 37s
CI/CD / nas-deploy (push) Successful in 2s
CI/CD / nas-verify (push) Successful in 10s
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-01 09:28:43 +08:00
claude_dev 045060cbf5 docs(research): joinquant档案10-01对账——SUMMARY 932000行补'07-28 G2后已切回000985'后记+产出清单补4个_ex副本(TET Phase2验证副本现状); momentum notes'已修复前视'声明加边界注(仅覆盖真实今天bug,数据层当日bar前视仍在=架构审计P0-4) [nas] [no-doc]
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-01 09:28:43 +08:00
claude_dev 26cc7d1124 docs(design): 10-01文档审计定点勘误六件——paper-shadow(checkpoint扩展未实现/CLI名shadow_desk→shadow/§8.1费率万5注)+dev-test-prod §12创业板按策略区分(四移植系连创业板剔,factor_topn才留)+ashare C1定寸=首根bar一次定死(亲读ashare_engine坐实)+budget-spec A2未回填+B2实为fail-fast+phase3c/3d历史档案头注+迁移评估§6.5五波终态回填(桥栈可托付,使命终结) [vps]
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-01 09:28:34 +08:00
claude_dev b06dbc91f1 feat(monitor): v1.3第十一检data_monitor_alive——P1-10另一半互为外盯(data转呈采纳): data-monitor health_latest.json>26h停滞或缺失=红, morn+eve双班携带, 兜'SCHTASKS自检无人执行'结构洞; 与data域075052d盯我方两班互为反向; 附strategy-ops plan入库+§6开放决策点回填+v1→v1.3演化后记 [vps]
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-01 09:28:24 +08:00
claude_dev d923a05dc8 fix(fee): 印花税全链对齐现行万5——10-01审计P1-9: 09-25勘误只修了ledger/ashare_engine/persistence三处, portfolio+影子链15点位漏网(shadow三默认+portfolio_paper+runner_backtest两兜底+live装配+8策略OrderCode close_tax), 影子对账曾自带一倍税差; 生产行显式值核对项已交infra [vps] [no-doc]
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-01 09:28:14 +08:00
claude_dev 075052da54 fix(data): 10-01 二轮审计吸收——白名单补四类+三注册表钉死测试; data-monitor 两班入自监; 旧名注册脚本根治; manifest 补齐; spec 三勘正 [vps] [nas]
CI/CD / test (push) Successful in 38s
CI/CD / nas-deploy (push) Successful in 3s
CI/CD / nas-verify (push) Successful in 12s
- P1-5 读写注册表脱节: EVENT_PANEL_TYPES 补 margin/sw_industry/dragon_tiger_seats/
  nb_daily(15→19, 09-12 四域注册采集时漏同步); 新增 test_whitelist_sync 钉死
  「采集 PER_DATE_TYPES 全族+gdhs == 白名单 == manifest domains ⊇」三同步义务;
  nb_hold 季频 asof 语义不进 exact-date 底座(钉死边界, 零消费方)
- P1-6 manifest 脱节: data_manifest.yaml 8 域→27 域(补事件面板族 19 类),
  消 data_gap_check 对真实供给误开缺口 issue 的潜伏面
- P1-10 监控自监: SCHTASKS +sanguo-data-monitor-morn/eve(17→19); 两 wrapper 本就
  恒 exit 0(设计预留), 非零=真崩, 零假红; 双班全死盲区待 strategy 域 health
  mtime 反盯(已转呈)
- docs_audit 旧名根治: register_schtasks.ps1 重写为现役 bs-daily/xt-daily
  (旧版重跑会复活死任务双开, 09-01 事故同源); bs_eod_wrapper/xt_eod_wrapper
  头注勘正
- docs_audit spec 三勘正: §16.1 白名单 14→19 类; §20.1「零改动自动可读」落空
  改「白名单一行即读+钉死测试」; §18.8 自称权威降级+ak-daily 07:35→19:00
  (VPS 实查)+xt 行名归一+ak-events 指针化; §20.10.2 硬计数指针化;
  §20.15.1/runbook 在岗 17→19
- docs_audit README §4 调度表整表换现役 10 任务; data-monitoring 计划加三行
  状态头注(初值退出权威位)

tests: data_platform+portfolio 1397 passed

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-01 09:19:29 +08:00
claude_dev d9c8535745 docs(factor): 审计 10-01 两处吸收——收编清单指归档位+batch1 spec API 契约勘误头注 [nas] [no-doc]
CI/CD / test (push) Successful in 38s
CI/CD / nas-deploy (push) Successful in 4s
CI/CD / nas-verify (push) Successful in 10s
- factor-system-design.md:8: 「+同名 plans/」改指 docs/archive/plans/(infra 4ebbd43 归档)
- specs/2026-08-24-factor-batch1-alpha101-158.md: 头注声明设计期命名
  /factor/leaderboard、/factor/batch_eval 的落地实际=/factor/eval/*(routes_factor.py:35-105),
  API 契约以代码为准(审计 2.2#18)

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-01 09:16:03 +08:00
claude_dev db7d56ca35 fix(factor): version_registry Gitea 地址 env 化——修 VPS 晋级 --gitea-open 必失败 [vps] [no-doc]
审计 10-01 P1-13 尾:open_gitea_issue base_url 硬编码 http://192.168.2.154:3000
(strategy_registry.py:281 已 env 化,此处修了一半漏的另一半)——VPS 侧因子晋级
--gitea-open 连不上内网地址,静默降级只落模板不issue。

- 优先级=显式参数 > env SANGUO_GITEA_BASE_URL > 内网缺省(镜像 strategy_registry)
- 测试 test_open_gitea_issue_base_url_env_and_param 三优先级全覆盖(TDD 先红后绿)

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-01 09:16:03 +08:00
claude_dev c089190111 fix(frontend): 流水线 P0 mock 改 DEV 门——生产构建不再短路假数据 [vps]
审计 10-01 P1-12:PIPELINE_MOCK 硬编码 true+client.ts 短路不受 MOCK_ON 限制,
build/NAS/VPS dist 全生效。VPS 已挂生产控制台,hypotheses/monthly-review/ic-trend
三端点(后端无对应路由)的生产假数会误导晋级判读。

- mock/index.ts: PIPELINE_MOCK=import.meta.env.DEV(与 MOCK_ON 同门,build 关)
- client.ts:57 短路保留但仅 DEV 活(P4 开发预览仍可用;三端点全接真后再删机制)
- HypothesisPool/FactorFactory: 未接真端点 .catch 退化空态/隐藏 PanelCard,
  不裸抛 unhandled rejection;FactorFactory 真端点 factors 列表不受拖累
- spec §7 数据行同步(档随码走):mock 门变更+接真进度快照
- specs 不动三端点本身:接真或删页=P1/P4 排期决策,不在吸收波单方处置

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-01 09:15:57 +08:00
claude_dev 61893fb9a9 docs(audit): 补入库——10-01 二次审查+验收两报告(台账已引用) [nas]
CI/CD / test (push) Successful in 38s
CI/CD / nas-deploy (push) Successful in 4s
CI/CD / nas-verify (push) Successful in 10s
Co-Authored-By: Claude Code <notify@anthropic.com>
2026-10-01 09:08:38 +08:00
claude_dev 4ebbd434a6 docs(archive): 过期文档归档波——14 件墓碑+台账补全+两轮审计报告入库 [nas]
- 归档 12 件(git mv 保历史,audit/20261001_docs_audit/ §2.1 判定):
  deployment/{vps-native-brain,windows-bridge-setup,d-phase-windows-deploy,README}
  (miniQMT/FastAPI-bridge 退役架构,09-08)+vps-deploy-pending(一次性任务使命
  终结)+specs/phase3b-vue(里程碑已兑现)+plans/{phase3c-paper-trading,
  backtest-result-page,strategy-management-backend,factor-batch1}(已完成/被
  实态推翻)+design/provider-mcp-expose(未实施行号全失效)+research/README
  (死模板)
- 原位墓碑 2 件: sanguo_qmt_bridge/README(包内保留,运维语义退役)+
  CHANGELOG(冻结,变更历史以 git log 为准)
- 台账: audit/README 补 5 波次表+状态列+固定安全清单约定(每波必查凭据/
  鉴权面/CI 门禁 diff——历轮审计系统性盲区,docs_audit §5.2);docs/README
  索引对齐归档后实态(+design/audit 行)
- 审计报告入库: 20260927_commit_docs_consistency+20261001_architecture_
  code_audit+20261001_docs_audit 三目录

Co-Authored-By: Claude Code <notify@anthropic.com>
2026-10-01 09:08:29 +08:00
claude_dev f6ca85e937 docs(audit): 文档审计吸收批——P0×2+P1×4 修复 [nas]
- P0-2 触及面矩阵修正(three-env §12): sanguo_api+frontend→🔴——VPS 常驻
  sanguo-api 生产控制台(runbook §7.1/§7.6 09-25 勘误「本就常驻跑纯 API」,
  vps-deploy.yml 每次部署重启 sanguo-api 实证)+公网前端 dist; sanguo_web=legacy
  平行后端非「前端」; orchestrator→🟡 随 api 常驻加载(app.py:15 import 实证)。
  同病 .claude/CLAUDE.md 判定行+reload 节一并修正(两处)
- P0-1 README 入口: 生产命令勘误(勿起 sanguo_web legacy 后端,架构审计 P0-3
  定性危险)+admin123 凭据指引删除+api/user_guide 断链节改指文档中心
- P1 reload 旧任务名 sanguo-bs-eod→sanguo-bs-daily(three-env §4+session-guide
  §6, 2026-08-20 重组遗留)
- P1 session-guide: smoke_e2e.py 死引用(da32cca 审计卫生批已删)→CI nas-verify
  手动等效探针(免凭据版);dispatch 样例补 confirm 必填字段
- P1 nas-deploy-plan §四: docker run 补 --init+数据挂载/删 8080(现役容器
  docker inspect 实证 Init=true 仅 8000 双挂载);§五外网链路标废(首尔入口 502)
- env-version-matrix VPS 角色+ops-README BRIDGE_URL: miniQMT/FastAPI-bridge
  退役标注(09-08)
- three-env §1 NAS 路径 stock→homes/admin(promote.sh:19 实证)+§3.1 模块
  计数 13→15

审计源: audit/20261001_docs_audit/(P0-1/P0-2/P1-1~4) +
audit/20261001_architecture_code_audit/(P0-1)

Co-Authored-By: Claude Code <notify@anthropic.com>
2026-10-01 09:08:18 +08:00
claude_dev b6fb9e4e58 docs(spec): §20.15.1 表残留②——seats 旧行删半边留 nb_daily, 消与 1010 校准新行的同表矛盾 [nas] [no-doc]
CI/CD / test (push) Successful in 39s
CI/CD / nas-deploy (push) Successful in 1s
CI/CD / nas-verify (push) Successful in 11s
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-01 08:16:37 +08:00
claude_dev ad216e193a docs(monitor): strategy_checks 模块 docstring 补 shadow_*.log——P3-4 修 registry title 时 docstring 漏网(验收残留①) [vps] [no-doc]
CI/CD / test (push) Successful in 40s
CI/CD / nas-deploy (push) Successful in 5s
CI/CD / nas-verify (push) Successful in 6s
2026-10-01 08:16:23 +08:00
claude_dev aa9410175c fix(reconcile): 恒等式只算在册实例——stopped书=冻结史不再慢性假红 [vps]
CI/CD / test (push) Successful in 44s
CI/CD / nas-deploy (push) Successful in 6s
CI/CD / nas-verify (push) Successful in 13s
2026-10-01 老账调查定案(infra 代读全量数据+我析):identity_reconcile
09-18~09-30 连续 unattributed_over_tol = 双分量叠加——H2 起病=09-17 夜
清算回滚(隔夜账户总价值 −608k=gate cash −362k+snapshot_mv −246k 对齐,
09-17 行本身 pass/09-18 行起病,银弹票单稳定:幻影 002088 −20100/300059
−9000,孤儿 002415/159915/510050/513030)+H1 叠加=09-25 停机后六实例书
冻结(live_balance 最后行 23:18:3x 恒 2670666)而快照随行就市(−272584→
−212880 ≈+2万/日漂移)。修=build_identity_report 实例装载过滤
status!='stopped':全 stopped → no_instances(既有 pass 等价态,live 桌
回归日自动重武装);H2 残留归修账/留痕不归语义门。附带判读:B 案
dual_track 09-25 后停写=结构性(live_accounts 六行 15:20:50 统一翻
stopped→pairs=[];B2 列存在实证 find_dual_track_pairs 无 raise 面),
supervisor 同 try 块 warning-loop 形态排除。runbook 恒等式语义行落档。
测试 +stopped 书不计例,tests/trader+portfolio 1035 绿。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-01 08:01:24 +08:00
claude_dev f6ea116f10 chore(pipeline): 桥1m超时降级路径加warning打点——分清桥坏vs无数据 [vps] [no-doc]
CI/CD / test (push) Successful in 40s
CI/CD / nas-deploy (push) Successful in 1s
CI/CD / nas-verify (push) Successful in 6s
10-01 二次审计 P2-7 采纳 infra 域意见:不扩捕获面(0928-30 事故所见全部
=TimeoutError 形态, 扩面有真故障吞成静默降级的反向风险), 先做降级发生处
打点, 第二故障形态实证后再议。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-01 07:51:06 +08:00
claude_dev 65921c5c25 refactor(strategy): value空名单守卫打磨——指标层/过滤清空分流日志+Ex副本parametrize同测+死代码清 [vps] [no-doc]
10-01 二次审计 P2-4/P2-5 处置:守卫日志两支分流(指标层空=铁定数据故障
vs 6条过滤后全被涨跌停/停牌滤除=状态数据可疑或极端行情待人工研判),
行为一致均跳过调仓保仓;正身+Ex 副本 parametrize 同测(test_sizing 同款
工法, 3 用例×2 类);step5 的 target_num==0 死代码双文件删(守卫早退后
不可达)。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-01 07:51:06 +08:00
claude_dev 86e2e4a137 fix(monitor): 策略监控v1.2二审两修——fills双轨配对逐对账+no_restart盘窗口径重设计 [vps]
10-01 二次审计 P1-3/P2-3 处置(抗辩记录在案:P3-2 同日不复活=alerts_store
既有设计决策、P3-3 expected=7 为告警设定值非事实硬编码,均维持现状):
①P1-3 fills_vs_paper 全表总量口径在 live 桌回归日必误红——重设计为
_dual_track_pairs(instance_id 优先精确配对,回退 strategies 首名,
reconcile_report v2 语义镜像)逐对笔数+金额对账;配对内 0:1=真双轨分歧
照红;无 running live 账户=n/a 绿(09-30 语义保留)。
②P2-3 no_restart 旧「creation>=当日00:00」双失效(盘中重启次日必绿+
08:05 当日必然未确认→red 恒降黄)——重设计为近 3 个确认交易日盘窗
(09:15-15:30)内出生=违例:违例日皆已确认→red 可达;夜间/盘前出生=
合法 deploy 窗;连休无新增确认日自然绿。
附带:_count_running 排除 mode='live'(同族口径,wmic needle 数的是
shadow 进程);registry titles 随 LOG_GLOBS/新语义更新(P3-4);
runbook 注记三处同步+连休预期形态注(P3-1)。
fixture 增双轨配对(8=live↔7=shadow);测试 24 绿(新增盘窗红/deploy 窗
绿/未确认日缓评估/降级载体迁 is_identity_resid/配对全状态链)。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-01 07:50:55 +08:00
claude_dev 4755e8dec6 fix(monitor): 1010 二审吸收八修——dmsk半年报08-31勘正+margin_sse同步+strategy两班入岗+Disabled豁免+ETF守卫单边死+ISO格式校验+mirror fallback+FakeDate helper [vps] [nas]
CI/CD / test (push) Successful in 37s
CI/CD / nas-deploy (push) Successful in 4s
CI/CD / nas-verify (push) Successful in 7s
P2-1 半年报法定截止 09-30→08-31(向宽松错30天检出延迟),代码+spec+runbook三处同步;
P2-2 margin_sse (200,4000)→(200,8000)预防性同步(SSE子集~3300贴脸);
P1-2 SCHTASKS 补 strategy-monitor morn/eve(监控自身死亡全链静默缺口),watchlist测试钉17;
P2-6 schtask 主动禁用(Disabled/已禁用)跳过,qmt-relogin 0929/30检修暂停误红实案;
P3-6 xt_eod 守卫抓单边板块死+raise态(NotImplementedError不再裸崩),+3单测;
P3-7 dmsk 分区名只认ISO格式防紧凑格式静默错序;P3-11 mirror start无日期置None防DONE错归日;
P3-12 FakeDate 三份拷贝提取_anchor_today+文件头日期教条修订(禁裸墙钟,锚日选非周期端点);
P3-13 spec带宽表margin/seats行对齐registry现值。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-01 07:49:15 +08:00
claude_dev 08efd325fd docs(runbook): 二次审查吸收三处——§5速查清扫(P1-1:期望行LIVE=6旧数改DB实查口径+活性探针示例live_21.log死文件改现役shadow_63.log)+注记标题NAS/VPS两侧归类(P3-14)+85min措辞消歧(P3-15:开盘前85min=relogin后15min) [nas]
CI/CD / test (push) Successful in 38s
CI/CD / nas-deploy (push) Successful in 14s
CI/CD / nas-verify (push) Successful in 11s
2026-10-01 07:38:25 +08:00
claude_dev 25063ca606 test(dmsk): 季末日历炸弹拆除——canary/notice 两测锚日 FakeDate 固定, 治 09-30 当天 CI 必红 [nas] [no-doc]
CI/CD / test (push) Successful in 33s
CI/CD / nas-deploy (push) Successful in 11s
CI/CD / nas-verify (push) Successful in 11s
canary=periods[1] 随墙钟翻页(Q3 末 09-30 入期集合, 次新变 06-30, 空 03-31 不再触发 rc=1);
notice_filter 的 today not in pdirs 在季末当天必炸(dt=2026-09-30 是合法 REPORT_DATE 落点).
锚日=2026-09-08 非季末, 文件内 test_daily_marker_date_scoped 同款 FakeDate 工法.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-30 22:17:35 +08:00
claude_dev 151f84b79e fix(strategy): value空名单守卫——过滤后归零判数据异常跳过调仓,不再隐式全清仓 [vps] [no-doc]
CI/CD / test (push) Failing after 35s
CI/CD / nas-deploy (push) Has been skipped
CI/CD / nas-verify (push) Has been skipped
09-01 案根修(10-09 截止项):monthly_adjustment 第 4 步「卖出不在 buy_list 的」
在 buy_list 被数据故障清空(候选池非空+6 条过滤/涨跌停过滤后归零)时会清光
全部持仓——第 5 步 target_num==0 守卫在卖完之后,拦不住。修=过滤去重后
buy_list 为空即判数据异常:跳过本轮调仓保持现仓+logger.error 落监控 ERROR
口径可见,下个调仓窗自愈。spec §94 宪法既有原则的实现(全清仓=人选的档 6
防御模式,不被空名单隐式触发)→[no-doc]。正身+Ex 副本(TET 同款复制纪律)
双文件同修;测试=守卫拦(零下单+ERROR 日志)+对照不拦(正常轮换照卖)两例,
tests/portfolio+trader 1028 passed。候选池空守卫(原有)与本守卫合成完整链。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-30 22:16:42 +08:00
claude_dev 3f675ed4b2 fix(monitor): margin row-band 校准 (200,4000)→(200,8000)——两融标的扩容 6051 涨破旧上限致 0929/30 连黄 [vps] [nas] [no-doc]
CI/CD / test (push) Failing after 35s
CI/CD / nas-deploy (push) Has been skipped
CI/CD / nas-verify (push) Has been skipped
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-30 22:13:23 +08:00
claude_dev c79c86e17c fix(monitor): 策略监控v1.1两修——日志面盯现役shadow_*.log+fills_vs_paper按live侧有数据才对账 [vps]
CI/CD / test (push) Failing after 35s
CI/CD / nas-deploy (push) Has been skipped
CI/CD / nas-verify (push) Has been skipped
09-30 复盘两案(09-28/29 eve+09-30 morn 三班实跑实证):
①日志双检只盯 live_*.log——LIVE=0 时代全是 stopped 旧文件:logs_stale 永黄
(09-30 08:05 首班误黄)+ logs_error_storm 26h 窗恒 0=vacuous 绿,现役引擎
实际写 shadow_*.log。修=LOG_GLOBS=("live_*.log","shadow_*.log") 两检查全盯,
live 桌回归日自动覆盖。
②fills_vs_paper 三连误报(0:28/0:201/0:32)——shadow 桌本地撮合订单不出门
(shadow/runner.py+broker.py 源码、paper_shadow_orders 全史 0 行、QMT 两日
cash/mktval 恒定三证互证),LIVE=0 时代 live_trades 结构性为空,拿 live 桌
总数对 shadow 桌总数每个有成交的交易日必误报。修=live 侧当日零行→绿 n/a
(no-live-fills),live 桌回归出成交即自动武装;柜台↔台账恒等式仍归 15:10
仪式(infra 域)分层不变。
测试:n/a 门(早段 red 被绿班消解链顺带验证)+shadow glob 双断言各 1 例,
tests/portfolio+trader/test_scheduler 764 passed。runbook 监控注记同步两处。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-30 22:12:07 +08:00
claude_dev 0be832d579 fix(monitor+xt_eod): 0929 晨复盘三修——ETF 漏采守卫+mirror 假黄根修+seats 带校准 [vps] [nas]
CI/CD / test (push) Successful in 41s
CI/CD / nas-deploy (push) Successful in 10s
CI/CD / nas-verify (push) Successful in 11s
①xt_eod.py ETF 清单空 rc=1 抬码: 昨夜 21:00 桥板块接口死(universe 2266→0 + redis rpc timeout), bj_codes(本地 sqlite 恒 39)掩护合并空守卫→rc=0 静默漏采, 0928 全 ETF 停 0924(监控 dbbardata_daily RED 首战抓到); 修=ETF 清单空仍写北交所但 rc=1, schtask last_result=1 触发告警; 当晨已重跑 sanguo-xt-daily 补 0928 ETF 窗口(幂等 INSERT OR REPLACE)
②nas_monitor_check vps-mirror 连黄根修: push.log DONE 行只带 [HH:MM:SS] 不带日期, 旧按 want_day 过滤行永剩 start 行(0926~28 连黄实锤, 实际镜像日日 DONE fail=0); 改按 want_day 的 start 段内出现 DONE fail=0 判(+回归测试)
③dragon_tiger_seats 带 (0,400)→(200,2000): 实测 670~810, 旧上限真交易日必黄(0928 670 黄实案)
runbook 监控注记同步(xt rc=1 分诊+mirror 修+带校准); tests 620 绿

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-29 07:50:05 +08:00
claude_dev 4d61b643a5 fix(portfolio): 桥1m超时降级no_anchor——盘后桥不伺候分钟史不再炸整份IS日报 [vps] [no-doc]
CI/CD / test (push) Successful in 36s
CI/CD / nas-deploy (push) Successful in 6s
CI/CD / nas-verify (push) Successful in 10s
infra 09-28 部署后 §287 probe 定案:盘后桥 1m 查询 >30s 抛 TimeoutError,
经 make_price_fn→_build_leg 穿透 run_day,scheduler 兜底只记日志 → 整份
IS 日报缺失(而非 no_anchor 降级)。修=is_price_source_vps.make_price_fn
捕获 TimeoutError→缓存空 dict:调用方按无分钟数据走宁缺毋假降级链
(decision→no_anchor,arrival→派发 tick 兜底),日线锚(本地 dbbardata)
不受牵连;同 (day,code) 只烧一次 30s 超时后 fail-fast。probe() 不经此层
保持 fail-loud。今晚 20:50 首跑 cd1793c 新决策价口径的前提保障。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-28 15:36:45 +08:00
claude_dev 06d1d55ae1 chore: 525c939 补票——上条 runbook 落档漏打 [nas] 致 label 门禁红/nas-deploy 跳过 [nas] [no-doc]
CI/CD / test (push) Successful in 39s
CI/CD / nas-deploy (push) Successful in 12s
CI/CD / nas-verify (push) Successful in 10s
label 门禁只查本次 push 新 commit,本票过门即绿+nas-deploy 全树部署
(525c939 的 runbook 改动随之生效 NAS)。无代码内容。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-28 13:44:23 +08:00
claude_dev 525c93996c docs(runbook): 策略面监控 v1 落档——schtask 表两行+监控注记节+§3 晨查仪式消费链改自动化
CI/CD / test (push) Failing after 5s
CI/CD / nas-deploy (push) Has been skipped
CI/CD / nas-verify (push) Has been skipped
档随码走(188bcbb/7ac74da 同 push):设计浓缩入 runbook(运维知识唯一归宿);
§3 08:05 晨查行从「引擎 12/12 日志推进+锚」改为 strategy-monitor 自动化+
alerts 消费(ssh 探针退为 fallback)。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-28 13:41:29 +08:00
claude_dev 7ac74da6a4 feat(monitor): 策略监控 wrapper+schtask 注册脚本(恒0/ASCII/08:05+21:30 两班) [vps]
strategy_monitor_wrapper.ps1: 逐字适配数据域范本——恒 exit 0(红态由
alerts/health 承载, exit 3 会污染调度层 schtask 自检)、清三 proxy env、
Set-Location C:\sanguo_vnpy_v2、日志落 data\migration_logs\strategy_monitor_*.txt、
C:\Python310\python.exe -X utf8 --shift $Shift。注释纯 ASCII
(PS5.1 无 BOM 按 GBK 解析中文注释=崩溃铁律)。
register_strategy_monitor_schtasks.ps1: sanguo-strategy-monitor-morn 08:05 /
-eve 21:30 两行注册(--% 反斜杠工法、/ru SYSTEM /rl HIGHEST、VERIFY 尾节
输出下次运行时间); noon 按需手动跑不注册。注册动作归 infra(部署口令后执行)。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-28 13:38:00 +08:00
claude_dev 188bcbb4ff feat(monitor): 策略运维监控 v1——两班只读体检+alerts source=strategy(引擎/日志/订单链/报告产物十检) [vps]
数据面 data_monitor 三件套的策略域镜像: registry 驱动十检
(morn 5=engines_expected/actual/no_restart+logs_error_storm/stale,
eve 5=is_report_ran/is_identity_resid/orders_leftover/fills_vs_paper/
weekly_ran, noon 复用 morn 前四), 只读体检不修数据。
告警写 alerts_store source="strategy" host="vps"(与 data 域同表分域,
前端类别页直读 API 零改动); 每班末对本班绿 key resolve_passed(悬死案教训)
+purge_expired。日历语义逐字镜像 data_monitor: 确认集(dbbardata 000300)
∪近 15 日工作日假定集, 未确认工作日红级违例降黄, 周末/连休交易日语义
整体不评(告警不误开也不消解)。health 落 data/monitor/health_strategy_*
+health_strategy_latest(health_latest.json 是数据域的, 永不写)。
退出码 0=绿/黄 3=有红(wrapper 层恒转 0)。
wmic 纪律照 vps_count_engines(name='python.exe'+needle 计数, 自匹配免疫);
order 残留=replay_order_states 无 open/ack/partial(expire 终态);
fills 对账=笔数+金额双对账容差 0.01 元(paper_trades 只数 rejected=0,
一表两态); tests 756 绿(+21 新用例: 三 shift/未确认日降级/26h 窗/
消解自愈/health 文件名禁写 health_latest)。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-28 13:37:42 +08:00
claude_dev 494fb741de docs(runbook): 0928 监控三修运维注记同步——dmsk 季频锚(替 mtime 80h)/row-band 豁免按文件日期/schtask weekday 72h+宿主生效位 scp -O 纪律(88c4a47 门禁补档,基线线认 runbook 非 spec) [nas] [no-doc]
CI/CD / test (push) Successful in 38s
CI/CD / nas-deploy (push) Successful in 14s
CI/CD / nas-verify (push) Successful in 11s
2026-09-28 13:18:55 +08:00
claude_dev 88c4a474f2 fix(monitor): 0928 开盘巡检三修——口径噪声根治 ①row-band 豁免改按文件日期(latest)判: lag 型 per_date(margin/margin_sse T-1) exp=ok[-1-lag]=确认日, 旧条件对闸门空写非确认日 0 行文件永不豁免(0927 margin_sse 20260925 空文件假黄实案), weekly 同型 ②schtask weekday 限 26h→72h: weekday 任务周五晚→周一晚班次跨度 69h, 26h 限周一早班必假黄(0928 ak-events-retry 57h/qmt-probe0915 71h 实案), 真死>72h 仍黄+next_run=N/A red 兜底 ③nas-dmsk mtime 80h→季频披露锚: 五域季频披露驱动 mtime 无结构意义(Q2 水位 06-30 停滞正常), 改最新 dt= 分区≥最近已过披露截止季末; 另 bs-daily rc=1(eod 腿 baostock 网络错)与 ak-weekly rc=1(share_capital failed)为正确告警不改; spec §20.15.2 同步; tests 619 绿(+4 新用例) [vps] [nas]
CI/CD / test (push) Failing after 9s
CI/CD / nas-deploy (push) Has been skipped
CI/CD / nas-verify (push) Has been skipped
2026-09-28 13:15:42 +08:00
claude_dev 93dacba109 feat(web): 运维告警页类别扩展——策略异常(source=strategy)进分类与过滤 [nas]
sourceLabel 映射与 SOURCE_TABS 的 strategy 条目已随 453b133 落位(核实现状在位);
本条补齐验收缺口:alertsLogic.spec 加 sourceLabel('strategy')='策略' 断言 +
filterAlerts 按 source='strategy' 过滤一例(照既有用例风格,fixture 加 strategy 告警,
空过滤计数 3→4)。7/7 绿。前端只部署 NAS 不触及 VPS runtime→[nas]。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-28 13:08:40 +08:00
claude_dev c73b4b35f9 docs(runbook): 架构图引擎树对齐实态——live_17~22 全stopped(live desk 空)+shadow_57~63×7 含挑战者63;新增'引擎数期望以DB实查为准勿按图背数'铁律(09-28 联合巡检实证,策略域晨查曾按图误忆LIVE=6) [nas]
CI/CD / test (push) Successful in 44s
CI/CD / nas-deploy (push) Successful in 11s
CI/CD / nas-verify (push) Successful in 10s
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-28 07:10:29 +08:00
claude_dev 3d47a4b4da docs(audit): 审计产物集中 audit/ 根目录——zcode三域审计波29文件整目录迁入+README约定(以后所有审计文档/反馈/probe一律归此,按波次建子目录) [nas]
CI/CD / test (push) Successful in 47s
CI/CD / nas-deploy (push) Successful in 38s
CI/CD / nas-verify (push) Successful in 8s
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-27 22:37:06 +08:00
claude_dev 8032887c92 docs(runbook): 部署班次台账 append b3fe69a 班(run2125 P3控制台5条[vps]+VPS三脸冒烟绿;引擎未重启守11.0,registry merge幂等no-op) [nas]
CI/CD / test (push) Successful in 45s
CI/CD / nas-deploy (push) Successful in 8s
CI/CD / nas-verify (push) Successful in 7s
2026-09-27 19:47:25 +08:00
claude_dev b3fe69af61 docs(spec): P4 分解器工程细则第二波——跨项目因子挖掘调研折入(五件确定级⑥-⑩:qlib命名空间封闭白名单/tickflow AI与非AI同一验证器+护栏回归测试/RD-Agent IC正交闸门/qlib四指标考场产物契约/RD-Agent值校验清单;开工再定清单八件含防泄漏件归因子档) [nas]
CI/CD / test (push) Successful in 46s
CI/CD / nas-deploy (push) Successful in 7s
CI/CD / nas-verify (push) Successful in 8s
2026-09-27 19:25:03 +08:00
claude_dev 380bbcf4ff docs(spec): P4 分解器工程细则——QuantaAlpha 同题调研折入(五件抄作业:护栏反馈式重生成/因子四层分解variables=gap_check输入/md5+AST子树防换皮进考场/假设卡prompt三细节/因子值三级缓存;两件明拒:轨迹进化违宪法二条+LLM查LLM软门;地基确认=白名单建在vnpy表达式生态自己词表上qlib零引入) [nas]
CI/CD / test (push) Successful in 50s
CI/CD / nas-deploy (push) Successful in 9s
CI/CD / nas-verify (push) Successful in 8s
2026-09-27 19:20:54 +08:00
claude_dev 55bcde798b feat(api): 控制台可读化波——合成层族切换器+归因页整页重构(用户令:多策略就绪+人类可读) [vps]
CI/CD / test (push) Successful in 37s
CI/CD / nas-deploy (push) Successful in 7s
CI/CD / nas-verify (push) Successful in 8s
①合成层多族就绪: /pipeline/composite 加 ?family= 选族+families 清单
  (前端下拉切换器)——以策略为锚,新策略钉住新合成层上位时登记新树,
  无策略消费的单代族不进树; 未知族 fail-soft items=[]+清单照常。
  前端: 族下拉+族说明+「新族自动出现」提示+空态+版本角色徽标
  (在位者/挑战者)+TE 未算人话文案; sub 明示「页面上没有也不该有一键
  换因子(决议 A)」。
②归因页整页人类可读重构(用户令: 按策略归因颗粒度讲清楚):
  - ?variant=incumbent|challenger 切在位者/挑战者归因件(challenger=
    生效位 challenger/ 子目录)+attributionMeta(asOf/windowEnd/months)
  - 前端: variant 切换条+口径条(数值含义+数据截至+覆盖月数+更新节律);
    右块分组=「收益结构·风格四桶」(market/size/industry/specific 带
    tooltip 人话解释)与「选股因子贡献·12 源」(组级说明=暴露×因子收益
    =贡献,长期负贡献=降权/退役候选); 合计行(恒等式加总≈同窗组合总
    收益); 空态=「归因批未产出(首次 10-04)非故障」; 左块加偏差含义
    说明+IS 金额行脚注; 条宽 min(…,100)% 防溢出。
- 测试: tests/api 202→208(families/未知族/challenger 子目录/meta/
  variant 422); 前端 pipeline+mock 34 过(分组+合计+空态+variant 重拉+
  族切换/空态); vue-tsc 过; spec §4.7 端点节同步(档随码走)。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-27 18:43:21 +08:00
claude_dev 3a938ecac8 fix(portfolio): 运行注册表种子缺失条目自动 merge——治挑战者双机漏登记缺口 [vps]
CI/CD / test (push) Successful in 40s
CI/CD / nas-deploy (push) Successful in 7s
CI/CD / nas-verify (push) Successful in 8s
2026-09-27 实证: 挑战者 szneul_eq_reb63 登记 config 种子后, 双机运行副本
(ensure_runtime_registry 首触才拷贝)永不知晓——周报 job 按运行副本点名
stage+paper_account_id, 挑战者被跳过=影子 A/B 评测腿(周报/孵化梯/毕业 gate)全盲。
治本: 首触整拷语义不变, 另加 _merge_seed_entries——种子有而运行副本缺的
条目(strategies/factors 双主顾)每次 touch 自动补入, 同名条目运行态为准
(防部署回滚转移结果), 无缺条目不写盘(幂等)。
config 种子挑战者 paper_account_id null→63(周报点名非空才算, 与双机手动补行一致)。
runbook 注册表行同步更语义(档随码走)。a 方案(双机手动补行)已先行落地救急。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-27 18:35:43 +08:00
claude_dev b7fc69e921 test(api): 契位修复随行——attribution 直通断言对齐聚合短表新契约 [vps]
CI/CD / test (push) Successful in 37s
CI/CD / nas-deploy (push) Successful in 22s
CI/CD / nas-verify (push) Successful in 8s
test_attribution_factor_contribution_from_json(64ea2dc 接线时写)断言
直通长表——正是把归因页搞崩的旧行为; fdbbb48 改聚合短表后实现对/
断言旧(CI run 2118 唯一挂点, infra 同定位)。断言更新为
{factorId, contributionPct}(近 12 月 Σ×100)新契约。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-27 17:56:37 +08:00
claude_dev fdbbb488dc fix(api): 控制台归因页崩修复+合成层版本树接真——两波同修(用户拍板 factor 域) [vps]
CI/CD / test (push) Failing after 39s
CI/CD / nas-deploy (push) Has been skipped
CI/CD / nas-verify (push) Has been skipped
①归因页契位修复(infra 派单): 020e610 产物 factorContribution=月度长表
  {factor,month,contribution_ret}(1008 条含 market/size/industry/specific
  三桶行)直通撞前端 P0 短表契约 {factorId,contributionPct}——首行
  contributionPct undefined → AttributionResearch.vue toFixed 整页崩
  (双机实锤)。修=_aggregate_monthly_contribution 聚合适配:
  - 口径=近 12 月 Σ contribution_ret×100(滚动年窗;全期 market +65%
    溢出前端横条 3.2×;量级 0.1~6% 恰配)
  - 三桶(market/size/industry/specific)与 12 源同板上板(研判核心结构)
  - 不足 12 月(挑战者件 8 月)退化全窗 Σ;脏行跳过;降序返回
  - 真件端到端验证: 1008 行→16 行与实探量级一致(market+5.85/kup+2.22)
  - 前端补 typeof 兜底 filter(缺字段行滤掉防再整页崩)
②合成层版本树接真(追加派单): /pipeline/composite 真端点+mock 条目退役
  - 两节点: quant12_v2a(L1 档案 resolved 权重=在位者 szneul_reb63 钉住,
    releasedAt=档案 created)/quant12_v1(等权基线=#69 挑战者)
  - 影子对照挂挑战者节点: 读 szneul_eq_reb63 周报 weeks_counted/
    te_annual; 09-28 首跑前无周报→如实 0/4 周+TE null+进行中(不造数);
    满 4 周 TE≤影子阈值达标/超阈
  - 因子侧坏档 fail-soft items=[](宁空勿 500,同归因页纪律)
  - 前端: 标题接 family 真名(告别 fund8 硬编码)/cand+gate 条件改
    shadowCompare(告别 v3 硬编码)/TE null 显示「未算」/类型
    trackingError number|null
  - spec §4.7 端点节+控制台功能表两行同步(档随码走)
- 测试: tests/api +13(attribution 7+composite 6,含 jwt secret 每测试
  现签防全量套件串扰); tests/api 202 全绿+tests/factor 438 全绿
  +前端 vitest 17 过+vue-tsc 过

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-27 17:54:20 +08:00
claude_dev b7ce364b11 feat(factor): 归因批挂月度首班 stage4——attribution_batch 新模块(截面增量前置+双跑+cp 双投递) [vps]
CI/CD / test (push) Successful in 37s
CI/CD / nas-deploy (push) Successful in 7s
CI/CD / nas-verify (push) Successful in 7s
10-04 首班起挂 NAS 月度批评链第四段(run_factor_monthly_standalone.sh):
- 15 截面增量前置: 12 quant 源+size_log+在位者 composite_quant12_v2a_szneul
  +挑战者 composite_quant12_szneul, 各跑 daily_section 220 历日短窗幂等
  merge——NAS 截面无每日班(09-25/26 手动快照起点), 批前必然新鲜
- as_of(自然月末)撞周末/节假日: latest_bar_date 归一 ≤as_of 最近日线
  bar 日(000001 走 symbol 索引秒回), 防 daily_section sanity raise
- 归因双跑同窗同参(全窗锚 2021-07-01 与首跑件一致, 挑战者受其截面
  自然窗限制; 挑战者落工作区 challenger/ 子目录=端点 glob 非递归防顶掉)
- cp 双投递生效位(--effective-dir): 在位者件→data/attribution/ 根
  glob 取最新; 挑战者件→challenger/attribution_<end>_<因子名>.json
  带因子名防顶掉; #69 影子 A/B 四周对照的归因侧供给
- fail loud: 截面断供/归因挂/投递缺任一→容器非零→班次 final=1
  (静默旧件=红线); 生效位目录容器挂 rw /effective-data, 代码卷恒 :ro
- 档随码走: 因子档归因行拆两行(独立 CLI+归因批)+runbook 三段链→四段
  (VPS 侧批评三段不镜像 stage4, 归因双跑落 NAS, VPS 归因件=infra
  偏差日报链另行供给)
- 测试 428→438(归一日/编排序/同窗断言/挑战者子目录/双投递文件名/
  fail loud/CLI 冒烟共 10 件)

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-27 15:38:49 +08:00
claude_dev 9eb1a80266 docs: 9eb5883 收尾——CLAUDE.md CI 覆盖句同步 tests/api 第四目录(描述与 ci-cd.yml 实跑面一致,防后续 session 误判盲区仍在) [nas] [no-doc]
CI/CD / test (push) Successful in 39s
CI/CD / nas-deploy (push) Successful in 6s
CI/CD / nas-verify (push) Successful in 7s
2026-09-27 15:12:50 +08:00
claude_dev 9eb58834b2 chore: zcode review 三修——①本地tag强制对齐远程c97f449+runbook增部署班次台账节(治注记滞后两轮循环) ②审计报告14件归档docs/archive/reports/audit_20260927入库(根目录4md+reports全目录,顺带堵手动promote带未跟踪件路径) ③CI pytest加tests/api第四目录(治盲区,189测17s) [nas] [no-doc]
CI/CD / test (push) Successful in 38s
CI/CD / nas-deploy (push) Successful in 10s
CI/CD / nas-verify (push) Successful in 8s
2026-09-27 12:40:57 +08:00
claude_dev c97f4499f0 chore: 验收遗留清——存量红测试断言对齐过户费万0.1×1000=0.01(实现对测试旧,tests/api CI盲区首红)+L3 qmt_launcher.py历史名注记(git+VPS双料查无,v2实施件=test_input.py); L1五件死测试删除已搭2ddd645顺风车(共享index,内容无误) [nas] [no-doc]
CI/CD / test (push) Successful in 26s
CI/CD / nas-deploy (push) Successful in 8s
CI/CD / nas-verify (push) Successful in 9s
2026-09-27 08:34:34 +08:00
claude_dev 2ddd6453b9 fix(data): 审计验收 R1——ak-weekly wrapper 类型调序落 repo(share_capital 挪最后, 防其熔断连坐 fa/top_holders; 验收挂起条件=10-03 班前 repo 含新序, 防只改 VPS 被下次 promote 静默回滚); 与 b34ee53 形状类豁免双层纵深; runbook §7.4 防漂移纪律 [vps]
CI/CD / test (push) Successful in 24s
CI/CD / nas-deploy (push) Successful in 10s
CI/CD / nas-verify (push) Successful in 8s
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-27 08:33:40 +08:00
claude_dev 42ccfe0135 fix(docs): 归档断链善后——zcode验收L2晨报引用+infra全库扫8处旧路径补archive/reports前缀(survey/probes/portfolio_backtest三类出处注释; 归档件内部叙述碑文不动+runner_backtest输出参数行为不动) [nas] [no-doc]
CI/CD / test (push) Successful in 24s
CI/CD / nas-deploy (push) Successful in 9s
CI/CD / nas-verify (push) Successful in 9s
2026-09-27 08:26:52 +08:00
claude_dev 7f9ffb360c docs(data): 审计终局 P3 文档批——F-6 三处措辞修正 to_vt_symbol→to_generic_symbol『.SH/.SZ/.BJ 通用形非 vt_symbol 形』(factor 转交)+spec 数字校准四项(nb_hold 深池 2269/margin ~2,000/valuation ~5,570/ths_concept 列名英文化注记)+§20.15.1 三域带宽对齐 registry 现值+§20.10.6 登记簿补三行(5m 60M 冻结腿/双任务知情/zz_slash_test)+§20.15.3 退出码表补登(zcode 线)+idx-daily 入监控 SCHTASKS(🟢-6)+runbook hot_rank NAS 件无 marker 注记(🟢-8); 随班车动作登记: index 双任务退役/zz_slash_test 清理/ak-weekly 类型调序; 615 全绿 [vps]
CI/CD / test (push) Successful in 24s
CI/CD / nas-deploy (push) Successful in 6s
CI/CD / nas-verify (push) Successful in 7s
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-27 08:06:46 +08:00