Spec: /tmp/scanner-ranges-spec.md §设计定案 4;ADR docs/adr/0011-eval-exclusion-scanner-self-declared-ranges.md(不对称=特性)。 范围:eval 真值语料装配侧剔除 scanner_ranges 自报段成员(精确段匹配);S12 语料版本随附、S17 趋势重置留痕;产品查询路径零改。探索笔记(/tmp/scanner-ranges-notes/EXPLORE.md)先行定位装配点与 S12/S17/run_seed 落点。tests:两臂对照(剔除前后语料版本/计数差),40.124.175.29 不再入恶意真值。 Blocked by: SR-T1
Activity
steponeerror commentedon Oct 26, 2026
SR-T2 交卷:eval 真值层装配侧剔除自报段(#213)
worktree
.worktrees/scanner-t2,分支feature/scanner-t2@ 653d76f(SR-T2 三 commit:27bc7873 D1 / 41b972d D2 / 276c712 D3+D4;merge feature/scanner-ranges 无冲突——集成分支期间已并入 SR-T3 钉测,合并仅带入两个测试文件)。未 push、未关票。交付物(+219/−1,6 文件;truth_layer.py / monthly.py / assets.py / _eval/main.py / 产品路径零改,已核 diff 为空):
backend/ipdb/_eval/layer_builders.py— 新增scanner_ranges_prefixes(csv_path):自报段前缀表供给,逐行读中间件 CSV 首列(cidr,vendor无表头;CIDR/裸 IP/v6 原样透传,坏 token 不在此层拦——「坏快照不许静默缩水」,归apply_scanner_filter侧 ip_network);CSV 缺失 → FileNotFoundError(显式索取的排除清单缺席=装配错误,防与 legacy 合表后排除面无声缩水;纯空表另有 gates_healthscanner_okDEGRADED 拒出版兜底)。docstring 锚 ADR 0011、ops 离线组装语义、原始 CSV 直读勿从 LMDB 反解。backend/ipdb/_eval/corpus.py—build_benchmark装配侧剔除:①scanner_ranges 源不入采样宇宙(成员=厂商自报的段本身,非指控观测,入语料=自证污染);②其 CSV 在场时,采样/封顶后对 benchmark 每分层过apply_scanner_filter(其他 scanner 源采出的段内 IP 同剔——census 2026-10-26 实测 80.2% 扫描器 IP 已在自报段;宁少算不回补);无该源或 CSV 缺失 → 行为与现状逐位一致(双回归臂钉死);签名不变,__main__.py调用点零改;import 方向 corpus→truth_layer/layer_builders 单向无环。removed_by_scanner_filter0→1、scanlist_fingerprint与语料指纹两臂皆变、load_asset 往返一致)/ benchmark 三例(全分层零自报段成员,逐 IP 用 ipaddress 独立判段防 tautology + 无源回归臂 + 缺 CSV noop 回归臂)/ loader 三例 / S17 换版注记(两臂真产指纹过compose_monthly_md,「换版=趋势重置」点名 truth + 新旧指纹;assets/monthly 零改)。门(本机
python -S+ PYTHONPATH 绕 sopagent .pth tests 命名空间污染,T1 判例;CI 干净环境不受影响):合并前 1220 passed / 8 skipped;合并后(653d76f)1220 passed / 8 skipped(61.3s)。tamper-red 独立复核:生产面退回基点 → D1/D3 collection 红 + D2 语义红(40.124.175.29 存活),复原全绿。未接线面(按 ADR 0011 装配侧语义留给 ops 轮):
build_truth_layer仓内无生产 caller(月轮三件套刻意不产 truth,T4 自有三闸)。ops 组装 scanlist 时以 legacy(censys+Xpanse+Shadowserver,hornet-pilot runbook)+scanner_ranges_prefixes(<scanner_ranges.csv>)喂scanner_prefixes=;换版经 scanlist_fingerprint(S12)/趋势重置注记(S17)自动留痕,仓内已用两臂测试钉住等价语义。runbook 文字更新与首轮真产对照属 ops 轮动作。环境注:加跑的 eval+core+lookup 大组合三轮各挂 1 例、三次挂点各不相同(
test_readout_red_still_exits_nonzero_with_artifacts/test_sources_needing_rebuild_plural_ignites_on_missing_v6_ptr/test_agg_share_leg_in_report_family),全部单跑绿(≤0.4s)——时序负载 flake 非语义回归(eval 代码合并前后逐位相同,合并仅带入 lookup/前端两个测试文件);规定门 eval+core 合并后全绿。细目:
SR-T2-REPORT.md(worktree 根,untracked)。SR-T2 D1 (#213): scanner_ranges_prefixes 前缀供给 — truth 侧排除器取表
SR-T2 D2 (#213): build_benchmark 装配侧剔除自报段 — 冻结语料防自证污染
SR-T2 D3 (#213): S12/S17 验证测试 — truth 两臂对照 + 换版注记钉住(零代码)
merge(#213): SR-T2 eval 真值层排除自报段(装配侧剔除+两臂钉测)