Skip to content

chore(gate): code-intel lint hardcoded-paths 无法在隔离主机执行(已安装 0.7.1 缺该命令) #405

Description

@2233admin

问题

AGENTS.md 规定"Run code-intel lint hardcoded-paths before pushing (issue #275)"。在 DR-0013 隔离期内,本 checkout 所在主机上这个闸无法执行,因此本机上任何 Rust 改动都无法满足 AGENTS.md 的推送前要求。

实测(2026-09-30,主机 Win11ProW X64)

$ code-intel lint hardcoded-paths
Code Intel error: only one repository path may be supplied
$ code-intel lint
Code Intel error: repository path is not a directory: lint
$ code-intel --help --all        # 全文无 "lint hardcoded-paths"
  • 已安装二进制:code-intel 0.7.1
  • checkout 声明:0.7.2-beta.6

不是文档漂移——命令在源码里存在

位置 内容
src/cli/command_catalog/routes/mod.rs:152-165 raw_route! 注册 command: "lint" + subcommand: Some("hardcoded-paths"),argument_offset: 2,exit 契约 [0, 1, 74]
src/cli/command_catalog/mod.rs:72, 623 CompatibilityRoute::LintHardcodedPaths → hardcoded_paths::run_raw(raw)
src/cli/command_catalog/tests.rs:465-468 对应契约测试

这些都晚于 0.7.1,所以本机装的是旧版本。

死锁结构

  • 要用新闸 → 需编译当前 checkout → DR-0013 禁止本机编译
  • 用已安装旧二进制 → 闸不存在

两条合起来:隔离期内本机无法执行该闸。这不是某张票的问题,是所有 Rust 改动共同面对的。

建议(供维护者决定,本票不自行实施)

  1. 把本机二进制升到 0.7.2-beta.6 或更高。DR-0013 禁止的是"编译当前 checkout",不禁止"安装已发布版本"。若已有对应 GitHub Release,安装它既不违反隔离,也恢复闸的执行能力。
  2. 把 lint hardcoded-paths 放进 CI。Rust 改动的验证本来就必须在 CI 或其他主机进行,把该闸一并纳入是自洽的。
  3. 无论哪条,建议在 AGENTS.md 补一句"隔离期该闸的替代执行位置",避免每个新会话重复撞同一堵墙。

明确不做的事

不用 PowerShell 版 legacy/tools/check-hardcoded-paths.ps1 顶替。 AGENTS.md 说明 #275 已用 Rust 实现替换它;其扫描行为与文档特别警告过的 $env: 前缀剥离规则是否与 Rust 版一致,需要跑起来对比才能确认,而本机跑不了。用行为未证等价的老实现冒充新闸,比不跑更危险。

关联

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions