# nexify 版本对比报告 v6 → v7 → v8 → v9 → v10 → v11(边集合进化/退化判定)

- **生成时间**: 2026-09-02(脚本 `compare_versions.py`)
> **注记（2026-09-03）**：验证基建已迁移，本文旧路径 `~/workspace/...` 现为 `~/clawspace/nexify-verify/...`（graphify-codewhale → comparison）。正文路径保留为历史事实。
- **对象**: codewhale-snapshot(Rust workspace,21 crate,1976 文件)
- **方法**: 六份同源扫描缓存差分。总量按 edges 行数;差分按 (source,target) 去重对

| 版本 | 代码 commit | extract_version | INFERRED resolved(行数) | 去重调用对 |
|---|---|---:|---:|---:|
| v6 | 0.2.1 `4219072` | 6 | 24,860 | 18,935 |
| v7 | 0.2.2 黑名单 `2c2db25` | 7 | 21,423 | 17,376 |
| v8 | 0.2.2+#M4-post-1 `c1d1a19` | 8 | 21,150 | 17,287 |
| v9 | 0.2.2+#M4-post-1+2 `5804bfc` | 9 | 21,171 | 17,301 |
| v10 | 0.2.2+#M4-post-1+2+3 `0da0a98` | 10 | 21,513 | 17,542 |
| v11 | 0.2.2+#M4-post-1+2+3+4 `8aeafca` | 11 | 21,622 | 17,641 |

## 1. 总量(calls 边按 confidence/state,行数)

| confidence / state | v6 | v7 | v8 | v9 | v10 | v11 |
|---|---:|---:|---:|---:|---:|---:|
| EXTRACTED / extracted | 40,676 | 40,676 | 40,603 | 40,673 | 40,673 | 40,673 |
| INFERRED / resolved | 24,860 | 21,423 | 21,150 | 21,171 | 21,513 | 21,622 |
| INFERRED / extracted | 6,621 | 6,621 | 6,621 | 6,621 | 6,621 | 6,621 |
| AMBIGUOUS / resolved | 306 | 252 | 252 | 252 | 252 | 252 |
| UNRESOLVED / resolved | 31,424 | 34,915 | 34,391 | 34,404 | 34,062 | 33,953 |

- v6→v7 INFERRED resolved 变化 **-3,437** 行
- v7→v8 INFERRED resolved 变化 **-273** 行
- v8→v9 INFERRED resolved 变化 **+21** 行
- v9→v10 INFERRED resolved 变化 **+342** 行
- v10→v11 INFERRED resolved 变化 **+109** 行

## 2. 逐版本差分((source,target) 去重调用对)

### v6→v7

- 新增绑定对: **14**
- 消失绑定对: **1,573**

消失对按目标符号聚合(消失=误绑修正还是真边误伤,需抽查):

| 目标符号 | 消失对数 |
|---:|---:|
| `Err` | 1,144 |
| `tr` | 330 |
| `append` | 39 |
| `json` | 20 |
| `write` | 14 |
| `read` | 12 |
| `text` | 5 |
| `get` | 3 |
| `remove` | 3 |
| `insert` | 1 |
| `collect` | 1 |
| `parse` | 1 |

新增对按目标符号聚合(top 15):

| 目标符号 | 新增对数 |
|---:|---:|
| `run` | 14 |

### v7→v8

- 新增绑定对: **0**
- 消失绑定对: **89**

消失对按目标符号聚合(消失=误绑修正还是真边误伤,需抽查):

| 目标符号 | 消失对数 |
|---:|---:|
| `run` | 6 |
| `click` | 4 |
| `record` | 4 |
| `rank` | 3 |
| `mutate` | 3 |
| `key` | 3 |
| `field` | 3 |
| `flush` | 2 |
| `custom_config` | 2 |
| `normalize` | 2 |
| `git` | 2 |
| `apply` | 2 |
| `snapshot` | 2 |
| `provider` | 2 |
| `render` | 2 |
| `tokens` | 1 |
| `cleanup` | 1 |
| `channel` | 1 |
| `jump_to_adjacent_tool_cell` | 1 |
| `send_message` | 1 |
| `flatten` | 1 |
| `open_pager_for_last_message` | 1 |
| `is_mcp_stale_session_error` | 1 |
| `usage` | 1 |
| `row` | 1 |
| `label` | 1 |
| `open_focused_cell_pager` | 1 |
| `operation` | 1 |
| `mix` | 1 |
| `contextual` | 1 |

### v8→v9

- 新增绑定对: **14**
- 消失绑定对: **0**

新增对按目标符号聚合(top 15):

| 目标符号 | 新增对数 |
|---:|---:|
| `detail_target_cell_index` | 1 |
| `handle_composer_alt_word_motion_key` | 1 |
| `is_composer_newline_key` | 1 |
| `open_focused_cell_pager` | 1 |
| `open_pager_for_last_message` | 1 |
| `is_word_cursor_modifier` | 1 |
| `minimax_base_url_is_supported_direct` | 1 |
| `jump_to_adjacent_tool_cell` | 1 |
| `is_mcp_stale_session_error` | 1 |
| `is_forced_submit_key` | 1 |
| `open_pager_for_selection` | 1 |
| `base_prompt_override_opt_in` | 1 |
| `open_turn_inspector_pager` | 1 |
| `open_reasoning_detail_pager` | 1 |

### v9→v10

- 新增绑定对: **241**
- 消失绑定对: **0**

新增对按目标符号聚合(top 15):

| 目标符号 | 新增对数 |
|---:|---:|
| `required_str` | 50 |
| `optional_str` | 48 |
| `optional_u64` | 32 |
| `optional_bool` | 20 |
| `project_todos` | 12 |
| `project_plan` | 11 |
| `chrome_style` | 9 |
| `type_mismatch` | 7 |
| `summarize_tool_output` | 7 |
| `required_u64` | 5 |
| `localized_whale_display_names` | 3 |
| `bundled_offerings` | 3 |
| `join_env_scope` | 2 |
| `env_scope_ticket` | 2 |
| `schedule_non_conflicting` | 2 |

### v10→v11

- 新增绑定对: **99**
- 消失绑定对: **0**

新增对按目标符号聚合(top 15):

| 目标符号 | 新增对数 |
|---:|---:|
| `now_unix` | 8 |
| `base_url_fingerprint` | 8 |
| `operations_for_domain` | 8 |
| `secure_account_session_secrets` | 7 |
| `account_auth_slot` | 4 |
| `is_upstream_auth_header` | 4 |
| `mirror_asset_url` | 4 |
| `provider_base_url_is_official` | 3 |
| `classify_config_api_key_value` | 3 |
| `cnb_release_base_url` | 3 |
| `bind_daemon_socket` | 3 |
| `live_offerings_from_models_dev` | 2 |
| `validate_account_auth_bundle` | 2 |
| `parse_target` | 2 |
| `is_beta_tag` | 2 |

## 3. 已知误绑簇逐版本追踪(INFERRED resolved 边行数)

| 簇 | v6 | v7 | v8 | v9 | v10 | v11 | 判定 |
|---|---:|---:|---:|---:|---:|---:|---|
| Err(...) 构造器 → type Err 别名 | 2,351 | 0 | 0 | 0 | 0 | 0 | ✅ 清零 |
| Response.json() → test 文件 json | 51 | 3 | 3 | 3 | 3 | 3 | 🟡 下降未清零 |
| Response.text() → test 文件 text | 8 | 0 | 0 | 0 | 0 | 0 | ✅ 清零 |
| .write() → vendored/test write | 79 | 2 | 2 | 2 | 2 | 2 | 🟡 下降未清零 |
| pattern 解构局部变量 contextual → tests.rs 辅助 | 1 | 1 | 0 | 0 | 0 | 0 | ✅ 清零 |
| snapshot → telemetry/src/tests.rs | 14 | 14 | 7 | 7 | 7 | 7 | 🟡 下降未清零 |
| env_lock → config/src/tests.rs | 11 | 11 | 11 | 11 | 11 | 11 | ⚠️ 未消除 |

## 4. 真绑定哨兵(召回不回退验证,INFE/EXTRACT 边行数)

| 哨兵 | v6 | v7 | v8 | v9 | v10 | v11 | 判定 |
|---|---:|---:|---:|---:|---:|---:|---|
| 跨 crate 重命名依赖 user_home(crates/paths) | 16 | 16 | 16 | 16 | 16 | 16 | ✅ 保持 |
| ToolContext::new 构造器(spec.rs) | 617 | 617 | 617 | 617 | 617 | 617 | ✅ 保持 |
| RuntimeToolServices::default 构造器(spec.rs) | 9 | 9 | 9 | 9 | 9 | 9 | ✅ 保持 |
| drain_pending_steers 方法(tui/app) | 6 | 6 | 6 | 6 | 6 | 6 | ✅ 保持 |
| FleetRunId::from 限定路径绑定(ids.rs) | 57 | 57 | 57 | 57 | 57 | 57 | ✅ 保持 |
| ViewStack::push 方法接收者绑定 | 23 | 23 | 23 | 23 | 23 | 23 | ✅ 保持 |
| discover 跨模块调用(skills) | 5 | 5 | 5 | 5 | 5 | 5 | ✅ 保持 |
| re-export 链五符号主哨兵(codewhale_tools) | 2 | 2 | 2 | 2 | 81 | 81 | ✅ 保持 |
| guard 内调用恢复哨兵(mcp/wire) | 1 | 1 | 0 | 1 | 1 | 1 | ✅ 保持 |
| workspace crate 子模块直导哨兵(config/catalog) | 18 | 18 | 18 | 18 | 18 | 27 | ✅ 保持 |

## 5. 判定

- v6→v7(黑名单):−3,437 行,消失目标集中在 Err/tr/write/json/text 等 std/builtin 名 → **进化**(已由 v7 报告抽查确认)
- v7→v8(#M4-post-1):−273 行(89 去重对),消失目标为 pattern 解构局部变量短名 → **进化**(全量排查:80 对误绑修正)
- v8→v9(#M4-post-2):+21 行(14 去重对/19 调用点),全部为 v8 误杀的 guard 内 use 导入真调用恢复 → **回归修复**
- v9→v10(#M4-post-3):+342 行(241 去重对,零消失),re-export 链穿透恢复跨 crate 真调用(217 基线 + 新源码调用点)→ **进化**;resolve 16.1s→6.5s(预建链索引使 fallback 查询净减)→ **性能大幅改善**
- v10→v11(#M4-post-4):+109 行,workspace crate 直接导入自由函数解析(crate 根/子模块路径/use 别名)→ **进化**(新增对抽样落 codewhale_* 唯一 pub fn 真定义)
- 召回哨兵 10/10 全部保持(最近两版稳定,无回退)

> ⚠️ 差分只说明减少或增加。减少是否=修正、增加是否=新误绑,需对消失/新增边抽样回源码验证。v8 消失边已全量排查(80 修正 + 9 误杀),v9 恢复边已逐条核对,v10 新增边按 re-export 链逐条核对(全部落到 lib.rs 真定义),v11 新增边按 workspace crate 直导链核验。
