docs(audit): 审计终审双报告归档——代码线终审(rebuttal RB-C1..C4 全 accept+修复验收 29 关闭/2 挂账/26 开放+RB-C3 台账补录缺位注记)+监控线终裁(rebuttal RB-M1..M4 全 accept+P1×3 与 P2 主体全过+200 测试绿+终裁新发现 P3-1 降级键永不 resolve+文档残留 §6.1/§10/§4.0);根目录终审件归位 audit/;三天审计线就此闭环 [nas]
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
# 监控审计终裁报告(rebuttal 二审 + 修复验收,2026-10-05)
|
||||
|
||||
- **终裁输入**:①原审计 `监控spec与代码审计报告_2026-10-04.md`(含 10-05 补充审计 §7);②rebuttal `rebuttal.md`(RB-M1~M4);③分诊档 `audit/20261005_audit_triage_dispatch.md`(74bced6);④用户拍板档(025b4e6,⚖️-1/2/3);⑤修复波 8 个监控相关提交(79c6b8b / 8f70ce3 / 93d7ace / b954b02 / 586d2b1 / 9aa14d1 等)。
|
||||
- **终裁基线**:HEAD `434d7cb`(终裁时点工作区 clean,审计件已随 74bced6 归档入库)。
|
||||
- **方法**:rebuttal 逐条对证据实证;修复提交逐 diff 主线程复核(不盲信提交信息);spec 勘正逐处 grep 对账 + §12 行数与 `wc -l` 逐文件核对;本地复跑测试。全程只读。
|
||||
- **终裁结论(TL;DR)**:**rebuttal 4/4 accept**(RB-M4 为归因细化、我方原表述两处修正);**P1×3 与 P2 主体修复全部验证通过**(三 P1 修复质量高,其中 A-1 的实现优于审计原方案);文档漂移 14 处闭环 12 处、残留 3 处(C-A3/C-A7/C-A8)+ 修复波新残 2 处(§6.1 purge 行、§10 值班手册 universe EMPTY);测试 **200 passed / 0 failed**。
|
||||
|
||||
---
|
||||
|
||||
## 一、Rebuttal 二审裁定(逐条)
|
||||
|
||||
> 按审计纪律本表为终裁判定;`rebuttal.md` 的二审记录区保持原样未代填(只读纪律),如需回填可由域 session 或用户指令执行。
|
||||
|
||||
| 条目 | 判定 | 裁定理由(证据均经主线程复核) |
|
||||
|---|---|---|
|
||||
| **RB-M1** relogin MON-FRI 已上机裁决 | ✅ **accept** | 上机证据链自洽且与 repo 旁证一致:next run=10-06(周二)、probe0915 周一有班、周末两日未触发;runbook :73 已勘正「MON-FRI 07:50」并注明上机核实口径,与 spec §8.1 同步。我方原判「repo 内不可裁决」在当 时点成立,rebuttal 以机上新证据关闭开放项=正常闭环,非纠错。 |
|
||||
| **RB-M2** C-A5 方向反转(spec 错非码错) | ✅ **accept**(附澄清) | 方向反转成立:`alerts_store.summary:155` 枚举(数据/策略/因子/运维)即权威,错在 spec §6.4 文字;586d2b1 已按最小修落 spec(现 :317 含勘正注)。两点澄清:①我方原报告 C-A5 证据行本就自注「alerts_store.summary :155 枚举即权威」,从未主张前端改造——rebuttal 对定级动机(「暗示代码缺陷」)的解读有偏差,但双方处置路径完全一致;②P2 定级针对「文档误导值班找 nas tab」这一后果,非码缺陷。 |
|
||||
| **RB-M3** C-A2 降文档班车 | ✅ **accept**(处置被超越) | 优先级异议合理;且实际处置优于提案——b954b02 当日随 P2 批直接勘正 §5.2(现 :244:`Expecting value`=source_changed 红 / `KeyError`=field_changed 红、无 TypeError),C-A2 无需等班车即闭环。 |
|
||||
| **RB-M4** C-A4 归因细化(60s 错源=另一个 supervisor) | ✅ **accept**(我方表述修正两处) | 证据 1 坐实:`sanguo_trader/shadow/supervisor.py:26 POLL_SEC=60` + `run_auto_supervisor(poll_sec=POLL_SEC)`——确系与 `sanguo_live/runner.py` 不同的 supervisor。修正①:我方原句「60s 是 AccountMonitor 快照线程间隔」只说对一半——数值的同语义源头是 shadow/supervisor.py 的 DB 轮询缺省;修正②:runner.py:444 注释对 AccountMonitor「60s 刷快照」的描述**本身正确**,我方「注释张冠李戴」措辞过重。真错源=两处 60s 巧合同值 + spec §9.A-14 引「supervisor docstring 明载 60s」(docstring 实无此数)。结论方向(实为 5s)双方一致,79c6b8b 勘正已落。 |
|
||||
|
||||
---
|
||||
|
||||
## 二、修复波验收(逐提交逐条实证)
|
||||
|
||||
### 8f70ce3 —— 三 P1 全闭环 ✅
|
||||
|
||||
| 条目 | 验证 |
|
||||
|---|---|
|
||||
| **D-1** | ✓ `keep.sort(key=os.path.getmtime)`(data_monitor.py:255)+ 归并改后到运行整行胜出(:264-269)。「最新班次权威」语义正确:早班成功/后到失败不再被压住;后到成功/早班失败=自愈消解,与 resolve 语义一致;归并按 type 粒度互不影响。 |
|
||||
| **D-2** | ✓ 单检隔离(`check_entry` 包 `_check_entry_impl`,:57-68,抛错降黄对齐 strategy 先例)+ main 三段壳(main :461 → `_run_shift` :482 → `_crash_exit` :586):裸崩溃写 `infra-monitor-crash` red 告警 + red health(含 crash 尾巴)+ stderr + exit 3;「崩溃中的崩溃」双守卫,告警/health 任一失败也不掩原始崩溃(stderr 兜底)。wrapper 恒 0 纪律未破坏。整班静默窗从最坏 ~22h 收敛到本班内。 |
|
||||
| **D-3** | ✓ monitor_checks.py:27-31 `sorted({str(r[0])[:10] for r in rows if r[0]})` 与 strategy 版逐字对齐,双实现分叉收敛,脏 datetime 崩坏链消除。 |
|
||||
| 测试 | ✓ 四新测随批(归并/mtime 序/崩溃壳/归一),全量测试运行覆盖。 |
|
||||
|
||||
**修复残余(终裁新发现 P3-1)**:单检隔离的降级键统一为 `data-{name}-stale`,而 disk/static_exists/vintage 三 kind 的正常键分别为 `infra-disk-data`/`data-{name}-exists`/`data-vintage-verdict`——这三类检查若触发单检降黄,其告警键不在任何绿班 passed 清单里,将**永不自动 resolve**(挂到 open 黄 28d purge 才清)。建议隔离分支按 kind 映射正确键,或绿班对 `-stale` 键做兜底收集。
|
||||
|
||||
### b954b02 —— 二 P2 批 11 项全闭环 ✅
|
||||
|
||||
D-5(exp=None 弱检=样本可读绿/库不可达黄,:196-201)✓|D-6(month_bucket rows=None 黄,:155-157)✓|D-8(`check_disk(path, warn_gb, crit_gb)` 真消费注册表,monitor_checks.py:150-157 + disk 项传参)✓|D-9(`(ValueError, TypeError)` 双处)✓|D-10(close 进 finally)✓|AL-1(upsert UPDATE 带 severity,alerts_store.py:60-66)✓|purge MON-04(open/acked 黄按 last_seen 28d、resolved 统一 30d、open 红永不删——「活着不删」语义正确)✓|N-1(rc 先存后拼)✓|N-2(NAS `last_weekday` 接休市表镜像 :30-42 + CI 同步测钉两表相等;**corpus/xcheck 34h 免豁免判定接受**——producer 日历日节奏假期照采、10-01~05 分区连续实证,理由充分)✓|T-2(NAS red 分支+假日窗测试)✓|migration_logs 保洁(wrapper 14d 剪旧)✓。附带:我方补充审计 P3×2 一并处理(`signatures_by_type` 的 `[FATAL]` 级别标记跳过归因 :220-221;`scan_signatures` test-only 注记 :199-201)。spec §5.1/§5.2/§5.3-④/§5.5/§7.6/§12 同步 ✓。
|
||||
|
||||
### 79c6b8b —— 策略批 6 项闭环 ✅
|
||||
|
||||
S-1(查表入 try,strategy_monitor.py:63-71)✓|S-2(空确认日历降黄 `no-confirmed-days`,strategy_checks.py:200-206——vacuous 绿消除,fail-safe 方向,附 reason evidence)✓|A-1(**优于审计原方案**:yaml 上移模块级 import 使 ImportError 进程启动即 fail loud,规避了「懒加载版在 except 里引 yaml.YAMLError」的 NameError 雷;宽捕三元+根节点非映射显式 ValueError+`_cfg_fail_note` 首败/30 败节流;契约入 §9.A-17)✓|P3-26 docstring 随迁 ✓|T-3(复市日 morn 诚实黄钉测,赶 10-08 前)✓|C-A4 spec 勘正(60s→5s+归因注)✓。
|
||||
|
||||
### 93d7ace —— 剩余认同批 ✅
|
||||
|
||||
T-1(**彻底翻修**:真调 `poll_once`,断言返回 4 + 快照表终态 + `_FakeTrader.instances` 路径覆盖实证 P_OLD 从未被连接——自证缺陷清除且覆盖强于原审计要求)✓|S-3 可见性(storm `unreadable_files` 入 evidence,灯色不动=恰当)✓|S-4 留痕(CreationDate 解析失败计违例+复核留痕)✓|S-6(`_dual_track_pairs` 兼返 unpaired 清单+零配对不再伪装 no-live-desk)✓|weekday 死闸门退役(monitor 门+registry docstring)✓|前端 4 例(范围外,未逐行审)。
|
||||
|
||||
### 文档批(586d2b1 + 9aa14d1 + 3cdf7e2)✅
|
||||
|
||||
状态灯三处(§0.2/§6 节头/§12)✓|§6.2「错峰」勘正+MON-09 建账 ✓|§6.4 tab 枚举勘正(C-A5 闭环)✓|§0.1 触面补 account_monitor(C-A9 闭环)✓|runbook MON-FRI(RB-M1 闭环)+ universe 异常实串(C-A1 runbook 侧闭环)✓|§1 时间线两行 ✓|MON-04~09 六条台账建立 ✓。
|
||||
|
||||
---
|
||||
|
||||
## 三、终裁后剩余台账(终裁时点实况)
|
||||
|
||||
### 3.1 文档班车件(P3,一次 push 可清)
|
||||
|
||||
1. **§6.1 :304 purge 行未随 b954b02 更新**——仍写「resolved 30d / 黄 14d / 红永不」+ 旧坐标 :96;码现实=「resolved 30d / open 黄 last_seen 28d / open 红永不」(:101)。§5.3 :252 新段已写对,spec 内部自相矛盾。**修复波新残**。
|
||||
2. **§10 值班手册 :468 仍写「FATAL ETF/基金 universe EMPTY」**——C-A1 在 §7.6 与 runbook 都已勘正,值班手册行漏网。**修复波新残**。
|
||||
3. §4.0 :126 行数三处 stale(153/58/368 vs 实 163/79/399)——C-A7 原样未修(586d2b1 修了状态灯但未动此行)。
|
||||
4. §5.4② :265「scp(必带 -O…)」误置 NAS→VPS 事件推送链路——C-A3 原样未修(runner SCP_OPTS 无 -O,-O 属 Mac→NAS 部署同步)。
|
||||
5. C-A8:09-25 plan 仍无 monitoring-design 指针。
|
||||
6. §11 MON-04 状态行应标「已收口(b954b02)」。
|
||||
|
||||
### 3.2 代码 P3 长尾(不阻塞,随批消化)
|
||||
|
||||
- **P3-1(终裁新发现)**:D-2 隔离降级键对 disk/static_exists/vintage 三 kind 产生绿班永不 resolve 的挂账黄(见 §二.8f70ce3 残余)。
|
||||
- NAS 群:cron.log 全量读+尾 200 行滑窗、17:00-17:33 手工重跑边角、NAS main 无兜底(有 VPS 静默检测兜)、`StrictHostKeyChecking=no`+硬编码 IP/私钥、`out/` 产物无清理(本次保洁只做了 VPS migration_logs 侧)。
|
||||
- account 群:connect 判断+报错二次调用、空 mini_path WARN 无节流(79c6b8b 只节流了配置读取失败)、PROBE_SESSION_ID 固定、query 无超时(下游 fail-closed 兜)、StockAccount 无 account_type、getattr 默 0 静默零值。
|
||||
- data 群:`--db` 字面量比较、重入 tmp 踩踏/NAS 事件双计、disk 项 kindword 文案、latest_stem 临时文件竞态、parse_schtasks_list 冗余条件、rolling_rows_band 内联 numpy。
|
||||
- strategy 群:traded_at LIKE 宽匹配、wmic 时区假设(已留痕)。
|
||||
|
||||
### 3.3 台账 open(按既有排期)
|
||||
|
||||
MON-202610-01(open red 永不 purge,维持现状)|MON-06(always 族双盲,10-08 验证窗后)|MON-09(morn 同峰错峰 5min,10-08 后)。**⚖️-3 已批**:`sanguo_data/monitor_common.py` 收口获用户同意(即本审计 §2.1 架构建议采纳),三域合议 10-08 后——届时 D-3 类双实现分叉、A-16 表漂移、NAS 休市表镜像三问题一并根治。
|
||||
|
||||
---
|
||||
|
||||
## 四、测试与工作区状态
|
||||
|
||||
- **200 passed / 0 failed**(1.56s):八测试文件全量(data 六件 + test_akshare_static_download + test_alerts_store + strategy 域 + account 域)@ HEAD 434d7cb。
|
||||
- 工作区 clean;本终裁报告为唯一新增未跟踪文件。
|
||||
- 前端 vitest(93d7ace 声称 67/67 绿)与 factor/漏斗族修复属另一审计线,本终裁未复跑。
|
||||
|
||||
---
|
||||
|
||||
## 五、终裁统计
|
||||
|
||||
| 类别 | 终裁前 | 终裁后 |
|
||||
|---|---|---|
|
||||
| P1 | 3 | **0**(D-1/2/3 全修复验证;D-4 更早已由 85830b6 关闭) |
|
||||
| P2 | 18 存续 | **1**(D-7/R-4 always 族双盲转 MON-06 台账,其余 17 项修复验证通过) |
|
||||
| P3 | 30+3 | 修复/可见性收敛 14 项;转台账 4 项;**新发现 2 项**(P3-1 隔离键、文档新残 2 处并入班车);余约 15 项挂长尾 |
|
||||
| 文档漂移 | 内容 9 + 状态灯 4 + 行号 9 | **闭环 12**;残留 3(C-A3/C-A7/C-A8)+ 新残 2 |
|
||||
| Rebuttal | — | **4/4 accept**(RB-M4 附我方两处表述修正;RB-M2 附定级动机澄清) |
|
||||
| 架构建议 | §2.1 收口 monitor_common | **⚖️-3 用户已批**,10-08 后三域合议落地 |
|
||||
|
||||
**终裁签名**:审计方(ZCode session),2026-10-05。全程只读,未修改任何项目文件(含 rebuttal.md 二审记录区未代填);本报告为唯一新增写入,**处置均未执行,git 状态保持原状**(434d7cb clean + 本报告 untracked)。
|
||||
@@ -0,0 +1,126 @@
|
||||
# 最终审计报告(终审):rebuttal 二审 + 修复验收
|
||||
|
||||
- **审计线**:`audit/20261003_recent2days.md`(2026-10-03 最近两天 commit 审计,基线 HEAD=7f9b413,活跃 P1×5/P2×19/P3×33)
|
||||
- **终审输入**:rebuttal 档 `audit/20261003_rebuttal.md`(4 条:RB-C1~C4;data/factor 两域零反驳)+ 分诊档 `audit/20261005_audit_triage_dispatch.md` + 用户拍板三项(025b4e6,⚖️-1/2/3)+ 10-05 修复波全部提交
|
||||
- **终审基准**:HEAD = `434d7cb`(2026-10-05 17:32,修复波已全部落库后)
|
||||
- **方法**:全程只读(未运行测试、未修改任何代码文档);rebuttal 4 条逐条读码裁决;修复波逐条核对「原条目→修复 commit→HEAD 现状」,关键点位全部主审亲自读码(corpus_funnel/corpus_download/funnel_lexicon/monthly_batch/factor_guard/pipeline_store/routes_pipeline/hypothesis_decompose/ic_gate/version_registry/data_gap_check/json_utils/client/account_monitor/qmt_gate_common/run_corpus_standalone.sh)
|
||||
- **说明**:23:10 定时任务因平台规则未能创建(本会话本身即定时任务会话,不允许内部再建定时任务);因修复波 17:32 已全部落库,终审即时执行,输入与 23:10 完全一致。rebuttal 档内的 ☐accept/☐reject 签名栏未代填(共享档多 session 并行,pathspec 纪律),裁决全文见本报告§二,可照抄誊入。
|
||||
|
||||
---
|
||||
|
||||
## 一、终审结论
|
||||
|
||||
**rebuttal 4 条:全部 accept**(其中 RB-C3 附一项执行缺位)。**修复验收:29 条关闭(4 P1 + 17 P2 + 8 P3 全部 HEAD 读码实证通过,零「不通过」),2 条按用户拍板挂账,26 条仍开放(1 P2 + 25 P3,全部在既定排期/台账内)。**
|
||||
|
||||
三天审计线就此闭环:无未决 P0/P1 级异议;两处挂账(P1-5、P2-17)均有明确触发窗口(all_weather −27.49% 重评大讨论);开放项最高为 P2-19(探活灯色语义,已排 10-08 验证窗后)。10-05 修复波质量高——不仅按建议修复,多处超出原建议(P2-5 三分返回值消歧、P3-13 顺手根治、P2-18 根治到单一权威源+灾备腿 stdlib 读取器),且修复自身引入的缺陷也在当日被二次修复(aba1c3d 读侧 try 面过宽→87817a6 收窄到 0 字节残骸),自愈链完好。
|
||||
|
||||
---
|
||||
|
||||
## 二、rebuttal 二审裁决(4/4 accept)
|
||||
|
||||
### RB-C1(对 P2-18 定性):**accept**
|
||||
- **裁决理由**:定性修正成立。原审计将「模拟账号硬编码」归入敏感信息面并附「若实盘属性升级 P0」的条件分支,系保守取档而非断言泄漏;rebuttal 指出「模拟柜台不可交易、无资金面」与原审计自证(余额 9999998.51、userdata_mini、32 文件既存扩散)一致。该条件分支经 ⚖️-2 用户拍板(确认永为模拟柜台账号)已永久关闭。
|
||||
- **处置验收(超越原建议的根治)**:`434d7cb` 落地 `config/qmt_identity.json` 单一权威源 + `qmt_gate_common.py:15-36` stdlib 读取器(fail-loud 链);**主审 grep 实证 `scripts/qmt_relogin/*.py` 中 `66639661` 字面量清零**。P2-18 关闭(根治落地)。灾备腿零 DB 依赖、10-08 验证窗后上 VPS 班车的落地顺序符合拍板令。
|
||||
|
||||
### RB-C2(对 §九「漏斗 token 无上界」时点):**accept**
|
||||
- **裁决理由**:时点事实修正成立。原报告的担忧是条件式(「若近期要放量跑」),实际时间线:10-04 19:33 首夜实跑 = LLM 配置缺失 fail loud(rc=1,未烧 token)——分诊档「基线核实三事实」与 data 域回执勘正(ddfedd1)双源互证;当前为 pending 存量消化期(8929 行不吃 cap),墙钟 23:00 + 串行慢爬 + cap 构成软上界。
|
||||
- **注记**:原报告的核心问题(runbook 宣称「token 预算断路」与生产命令实际不符)本身属实且已被修复关闭——`run_corpus_standalone.sh:113` 已实接 `--token-budget 3000000`(主审读码实证),runbook 9aa14d1 同步。烈度描述降级采纳,修复不受影响。
|
||||
|
||||
### RB-C3(对 P3-22「空窗=全绿」处置):**accept(附执行缺位一项)**
|
||||
- **裁决理由**:accept。「两层职责分离(gate 管结构完整性、新鲜度归 data-monitor dir_mtime 族)系既定架构」与原报告 P3-22 自身括注一致,本就属 P3 建议级,「不改码、挂台账」是原建议两个分支中的合法选择。
|
||||
- **执行缺位**:rebuttal 承诺「挂 MON 台账(观察项)」,但主审核对监控活文档 `docs/superpowers/specs/2026-10-03-monitoring-design.md` §11 台账 **MON-202610-01~09 均无 integrity_gate 空窗观察项**(MON-04 purge / 05 NAS 日历 / 06 always 族 / 07 factor 不在岗 / 08 argv key / 09 morn 同峰)。**需补录一条**(如「MON-202610-10:integrity_gate 空窗=全绿系设计决策,gate 绿不作管道存活证据,由 data-monitor 新鲜度族覆盖」),或在 §5 域内明确放弃并记录。处置方向不改。
|
||||
|
||||
### RB-C4(对 A-1 处置偏离:ImportError 不入捕、yaml 上移模块级):**accept**
|
||||
- **裁决理由**:四证据全部成立,偏离严格优于审计原方。关键机理核实:函数内 `import yaml` 使 yaml 成为局部名,依赖缺失时 import 抛 ImportError、名字永不绑定,`except (..., yaml.YAMLError)` 元组在异常匹配前求值即 NameError——审计原方「照抄捕 ImportError」确会埋更难归因的雷。HEAD 实证:`sanguo_live/account_monitor.py:22` 模块级 `import yaml`(进程启动 fail loud,与 runner.py:28 先例同契约——account_monitor 由 runner 懒加载进同进程,不新增依赖约束);`:75` 宽捕 `(OSError, ValueError, yaml.YAMLError)` + `_cfg_fail_note` 节流。「移防」(启动期 fail loud)替代「入捕」的处置定性正确。
|
||||
|
||||
---
|
||||
|
||||
## 三、修复验收总表(HEAD=434d7b 读码实证)
|
||||
|
||||
### P1 族(5 条:4 关闭 + 1 挂账)
|
||||
|
||||
| 条目 | 修复 commit | 验收结论 | HEAD 证据 |
|
||||
|---|---|---|---|
|
||||
| P1-1 水位先行崩溃丢数据 | `14f30a0` | **通过** | `corpus_funnel.py:221-224` 每日 `ctx.commit()` 后才 `_save_watermark`(数据先落盘再前移);`:379-393` main 兜底 `except Exception`→emergency commit+残余回写 pending+rc=1。崩溃窗口闭合 |
|
||||
| P1-2 `--limit` 假开关 | `14f30a0` | **通过** | `corpus_funnel.py:241` `_llm_lane` 循环顶 `if ctx.budget_exhausted(): break`,参数保留(分诊裁定勿删,冒烟语义需要) |
|
||||
| P1-3 `--llm-cap` 溢出永久丢 | `14f30a0` | **通过** | `corpus_funnel.py:215-216` 全量收集不截断;`:357-362` main 入队前按「每夜总量」统一截断+`candidates_dropped` 计数+日志 |
|
||||
| P1-4 动态注册直通 eval | `567997f` | **通过** | `monthly_batch.py` resolve_with_yaml:注册前 `precheck_expression` + `derive_source` 一致性校验,违规记 skipped+stderr 不注册;恶意式/来源编数双拒绝测试在库 |
|
||||
| P1-5 all_weather 涨停分支恒死 | ⚖️-1 拍板 | **挂账** | `all_weather.py` 自 6251451 后零变更(主审 git log 实证),无越权修复;触发窗口=并入 P0-4 后 all_weather −27.49% 重评大讨论 |
|
||||
|
||||
### P2 族(19 条:17 关闭 + 1 挂账 + 1 开放)
|
||||
|
||||
| 条目 | 修复 commit | 验收结论 | HEAD 证据要点 |
|
||||
|---|---|---|---|
|
||||
| P2-1 Retry-After 未实现 | `bda62d6` | 通过 | client.py:59 `_post` 带回 headers;:112-117 `_retry_delay` 429 解析 Retry-After(非数字回落退避);测试改不重合值钉真等待 |
|
||||
| P2-2 L5 清洗损坏字符串值 | `bda62d6` | 通过 | json_utils.py:53-72 `_clean_trailing_commas` 字符串感知状态机(in_str/esc),仅字符串外清 `,}`/`,]`;:104 接入 L5 |
|
||||
| P2-3 非 str/content=null 穿透 | `2731e26` | 通过 | json_utils.py:91 入口 isinstance 统一 JSONParseError;client.py:140 content None 走 strict 重试,两轮空才 LLMError |
|
||||
| P2-4 坏 YAML 形状 500 | `d55c9cd` | 通过 | hypothesis_card.py:57 `isinstance(manifest, dict)` 降级;双形态测试 |
|
||||
| P2-5 状态机竞态 | `a13ce79` | 通过 | pipeline_store.update_hypothesis_state 条件 UPDATE(WHERE id AND state IN allowed)原子判读+写;rowcount==0 二次 SELECT 三分返回 True/False/None(优于原建议的 False 歧义消解);不传 allowed_from 走矩阵推导,既有调用零行为变化 |
|
||||
| P2-6 decompose 两步写丢更新 | `a13ce79` | 通过 | routes_pipeline.py:40 `_DECOMPOSE_LOCK` 全程持锁(:895-969),仿 _GRADUATE_LOCK |
|
||||
| P2-7 批内换皮双过 | `eb9bce6` | 通过 | hypothesis_decompose.py:133-137 `batch_libs = {**library_exprs, ...本批 passed 表达式}` 增量并入;routes:930 setdefault 同步;同批孪生 dup_exact 拒绝测试 |
|
||||
| P2-8 AST 白名单漏五节点 | `f680435` | 通过 | factor_guard.py:58-65 JoinedStr/FormattedValue/Await/Yield/YieldFrom 入 _BLOCKED_NODES;四形态拒绝测试 |
|
||||
| P2-9 IC 闸静默 no-op | `02acb48` | 通过 | ic_gate report 增 skipped_missing_values/compared_pairs/insufficient_days;checked<len 与比对数为 0 显式告警 |
|
||||
| P2-10 死亡回写零痕迹 | `110f1a1` | 通过 | version_registry.py:144/158-170 `death_writeback_missed` stderr+events 附记;相对路径 abs 化警告;库不存在跳过不再静默建空库 |
|
||||
| P2-11/12 manifest fail-soft 只补一态 | `c94ac8e` | 通过 | monthly_batch 四态:缺路径落 `{"manifest_missing": true}` 标记件+stderr;坏语法/坏形状整体 try/except 照跑批;四态参数化测试钉契约(防只修一态再犯——原审计建议原样落地) |
|
||||
| P2-13 缺口单去重三重脆弱 | `b75a3ac` | 通过 | data_gap_check.py:85-119 首页 LIST 50+search API 兜底双层;网络异常抛出→**跳过开单下月再试**(fail-open 改 fail-safe);:78/121-157 指纹本地 append-only 台账第二道去重 |
|
||||
| P2-14 rc 优先级吞 checkpoint | `14f30a0` | 通过 | corpus_funnel.py main 出口分级:config_error/crashed→1、**stopped→3(优先于噪声 failed)**、else ctx.rc();llm_calls lane_ran 门控归零(10-04 生产误报勘正顺带入内) |
|
||||
| P2-15 否定守卫只拦紧邻 | `14f30a0` | 通过 | funnel_lexicon.py:57-63 前 4 字窗 contains;:73-94 `_negated_hit` 被拦命中降级第二层 LLM 纠偏(is_llm_candidate:102 接线)——「已终止的质押」类不再 confidence=1.0 反向落库 |
|
||||
| P2-16 生产无 token 断路 | `14f30a0`+`9aa14d1` | **通过(repo 侧)** | run_corpus_standalone.sh:113 `--token-budget 3000000` 实接。**保留注记**:NAS 生效位(/volume1/stock/corpus/run_corpus.sh)为手动 scp 同步副本,属带外动作,repo 不可验——以今晚三合一首班的 funnel 段日志为生产实证点(分诊档时点警示已排) |
|
||||
| P2-17 `_previous_date_str` 回落当日 | ⚖️-1 拍板 | **挂账** | 等重评窗口;挂账前提=其与 P1-5 同属 all_weather 语义族,单独修无意义 |
|
||||
| P2-18 账号硬编码 | `434d7cb` | 通过 | 见 RB-C1 验收;scripts/qmt_relogin 硬编码清零,生产 wrapper 改读 json 按 10-08 后班车顺序 |
|
||||
| P2-19 探活撤单败仍 GREEN | — | **开放** | 分诊排 10-08 验证窗后(避 probe0915 金标准验证窗口);无代码变更,判定维持 |
|
||||
|
||||
### P3 族(33 条:8 关闭 + 25 开放)
|
||||
|
||||
**已关闭(8)**:P3-10(有效 corr 日数下限 20+insufficient_days 留痕,02acb48)、P3-11(origin 条目级判定+全版本扫描回落,02acb48)、P3-12(plan_batch「纯函数」docstring 勘正副作用,567997f)、P3-13(NAME_RE `\Z` 根治尾换行,顺手超出 Task 9 排期)、P3-20(Gitea base_url 单源 `GITEA_BASE_URL` 常量,b75a3ac)、P3-21(events_in 先于调用入册,14f30a0)、P3-24(`_dump_raw_fail` 死代码+Path 导入清除,14f30a0)、P3-26(logs_stale docstring 随迁 trading_day,79c6b8b)。
|
||||
|
||||
**仍开放(25,均在排期/台账内,逐条 HEAD 复核过未修)**:
|
||||
- **Task 9 收编波在途(aa2a7ff,P3-1..8)**:P3-1(L4/L5 并行候选不叠加+「重截一次」注释失真,json_utils.py:103-104 实证未动)、P3-2(_balanced_braces 首个 `{` 起点)、P3-3(client.py:67/106/137 双解析仍三处)、P3-4(400 自愈共享预算)、P3-5(want_usage 空 dict 语义)、P3-6(**pipeline_store.py:228 token_hex(2) 未动**,id 秒级碰撞面仍在)、P3-7(**routes_pipeline.py:862 source 仍零白名单**)、P3-8(**routes_pipeline.py:844/940 仍 `HTTPException(502, str(e))` 透传**——按点名改脱敏/固定文案待落)
|
||||
- **factor 随批消化**:P3-9(小树交换律换皮 dup 缺口,factor_guard swap 机制未动;与已修 P2-9 联动的兜底现已加强,紧迫性降)、P3-14(双机同日竞态:本地台账不跨机,仍开放低危;建议开单权威单机制)、P3-15(**monthly_review.py:158 仍硬编码 `< 2.0`** 未引 _PROMOTION_BAR)、P3-16/17(exam_gate 无部分周期降权提示/报告无 run_id 文件名)、P3-18/19(promotion_t evidence_run 指针/等权交集语义——记录性)
|
||||
- **data/infra**:P3-19 等权交集(记录性)、P3-22(=RB-C3,accept 不改码,**台账补录待办**)、P3-23(sh 调用侧 rc 分档打标未做,gate_verdict/funnel_outcome 类)、P3-25(docker argv key 窗口=MON-202610-08 台账,10-08 后 --env-file 收敛)、P3-27(margin 中段缺块——原审计即记录项)
|
||||
- **qmt 灾备源(10-08 后随 identity 班车顺序)**:P3-28(用户名入日志)、P3-29(requirepass None 守卫)、P3-30(flush 解码败静默删队)、P3-31(盘符/内部域名布局契约)
|
||||
- **docs 记录项(维持)**:P3-32/33(内网 IP/NAS 运维坐标入档,增量有限)
|
||||
|
||||
### 监控审计线(RB-M1~M3 归属 10-04 监控审计,非本终审裁决范围,状态备案)
|
||||
|
||||
其修复波(8f70ce3 三 P1、b954b02 二 P2 批、93d7ace 剩余认同件、79c6b8b 分诊批)已随 10-05 班车落地并有 monitoring spec §5.x 随码注记;终裁权在该审计线的 rebuttal 流程,本报告不代裁。
|
||||
|
||||
---
|
||||
|
||||
## 四、更新后问题台账(本审计线最终态)
|
||||
|
||||
| 分类 | 计数 | 条目 |
|
||||
|---|---|---|
|
||||
| **关闭-窗口内自愈**(10-03 报告已记) | 8 | building 500→f740999、manifest 缺路径→1b27226、load_domains→1e3579b、sentence 上限→1e3579b、time.sleep→1e3579b、传输异常→1e3579b、prompt 名单→f740999、(draft 上限双点) |
|
||||
| **关闭-修复验收通过** | 29 | P1-1/2/3/4 + P2-1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/18 + P3-10/11/12/13/20/21/24/26 |
|
||||
| **挂账-用户拍板** | 2 | P1-5(⚖️-1:并入 all_weather −27.49% 重评大讨论);P2-17(⚖️-1:同窗口) |
|
||||
| **开放-排期在途** | 24 | P3-1..9、P3-14/15/16/17/18/19、P3-23/25/27、P3-28/29/30/31(10-08 后 qmt 簇)、P2-19 |
|
||||
| **开放-记录维持** | 2 | P3-32/33 |
|
||||
| **待办-台账补录** | 1 | RB-C3 承诺的 MON 观察项(建议编 MON-202610-10) |
|
||||
|
||||
---
|
||||
|
||||
## 五、残余开放项处置建议(只提意见,不执行)
|
||||
|
||||
1. **唯一开放 P2(P2-19)**:10-08 验证窗后把探活撤单失败改 AMBER/exit 2,让 GREEN=「委托确认且撤单干净」。
|
||||
2. **Task 9 收编波(P3-1..8)**建议按原排期落,其中 P3-8(502 detail 透传)按分诊点名改脱敏/固定文案;P3-6(token_hex 4-8 字节)一行级可搭车。
|
||||
3. **RB-C3 台账补录**:monitoring-design §11 增 MON-202610-10(integrity_gate 空窗=设计决策、gate 绿不作存活证据)——这是本终审指出的唯一「承诺了但没做」项。
|
||||
4. **P2-16 生产实证点**:今晚三合一首班 funnel 段日志出现 token 断路或正常 checkpoint 即彻底闭环;若 NAS 生效位未同步,日志将仍是旧命令行形态,值班可当场发现。
|
||||
5. **fail-soft 四态测试清单**:c94ac8e 已按原审计建议参数化钉死,本窗口「三度只修一态」的模式性缺陷就此闭合,无需再立新清单。
|
||||
|
||||
## 六、敏感信息复核(434d7cb 后)
|
||||
|
||||
- `scripts/qmt_relogin/*.py`:`66639661` 字面量 **grep 零命中**(原 P2-18 硬编码清零);账号身份收敛至 `config/qmt_identity.json` 单一权威源(模拟柜台属性经 ⚖️-2 拍板在案)。
|
||||
- 本轮 10-05 修复波 17 个代码提交 diff 复扫:无新增明文凭据/token;Gitea base_url 反向收敛为单源常量(P3-20 闭环)。
|
||||
- 维持原结论:全窗口无明文密码/token/密钥泄漏。
|
||||
|
||||
## 七、方法与局限
|
||||
|
||||
- 只读终审:未运行测试套件(修复波各提交均自带测试,文件存在性已抽查:test_corpus_funnel/test_funnel_lexicon/test_llm_client/test_llm_json_utils/test_pipeline_store_hypotheses/test_monthly_batch/test_version_registry 等在库);「通过」判定=HEAD 读码实证修复逻辑与原建议一致,非测试执行结果。
|
||||
- P3 开放项逐条 HEAD 复核「确实未修」后才列入开放;P1/P2 全部主审亲读。
|
||||
- NAS 生效位(run_corpus.sh 手动同步副本)、VPS schtask、tonight 三合一首班等带外事实不可 repo 验证,已标注为值班实证点。
|
||||
- 监控审计线(10-04)的 RB-M1~M3 终裁归其自身流程,本报告仅备案其修复波落地状态。
|
||||
|
||||
---
|
||||
|
||||
*终审:claude_dev(ZCode,2026-10-05 21:49 起,原定 23:10 定时任务因平台限制改即时执行);报告路径:`/Users/chufeng/.openclaw/sanguo_projects/sanguo_vnpy_v2/audit_20261005_final_verdict.md`;除本报告外全程只读,未修改任何代码与文档。*
|
||||
Reference in New Issue
Block a user