Skip to content

Probe 身份:采集真实安装图、补丁和实际构建工具版本 #94

Open

Description

@MangMax

用户结果 / Spec

缓存和证据能够识别「根包版本未变,但传递依赖/补丁/实际 bundler 已变」。身份来自实际消费项目与安装结果,不只抄 package.json 声明的 vite-plus 字符串。

审计依据 / 证据边界

基线 cacheHitAnswersThisRun 检查根包版本、Vite+、target/smoke;readToolchainIdentity 读声明字符串。未在本次审计运行完整升级实验,因此本票先构造确定性复现,不把风险写成已经发生的用户数据错误。

Plan

  1. 根包 A 保持版本,分别改变 B 传递版本、pnpm patch、实际 rolldown 版本,记录当前指纹是否变化。
  2. 先采用保守身份:安装锁文件内容摘要、补丁内容摘要、影响解析的项目配置及实际使用的工具版本;缺失信息显式未知。
  3. 标明摘要范围与无关依赖变化导致的保守失效;以后优化可达子图,本票不做自研包管理器。
  4. 路径可移植,不把绝对机器路径/凭证写入 lock;相同真实输入在不同目录得到相同身份。
  5. 提供统一身份输出供缓存/lock freshness 消费,避免 dev/CLI/build 各自读取一套版本。

验收

  • 修改传递依赖、补丁或实际构建工具,身份必变;仅换绝对项目目录不变。
  • 记录具体实际 Rolldown/Node/Vite+ 等必要版本,不混淆 Vite+ 自带与独立依赖版本。
  • 不可确认安装状态时不能生成貌似完整的验证身份。
  • 类型、序列化和兼容策略有测试与明确交接;旧 lock 仍可诊断读取。

范围

dependency-resolver identity/install-graph/fingerprint 与最小 core 类型扩展。与 ESM 定位票协调复用入口。无需真机;不改策略、不删除旧证据、不为语义未变的重构无理由升级协议。

Dependencies

Parent: #81
Depends on: none.
Acceptance depends on: none.
Related: #8, #17, #24, #89.

Activity

  1. added
    type:featureImplementation work that delivers product capability
    area:dependencyDependency decisions, probing, and compatibility
    priority:p1Required for the first usable release
    status:readyReady to implement; dependencies are satisfied
    on Sep 26, 2026
  2. added 20 commits that reference this issue on Sep 26, 2026
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

    area:dependencyDependency decisions, probing, and compatibilitypriority:p1Required for the first usable releasestatus:readyReady to implement; dependencies are satisfiedtype:featureImplementation work that delivers product capability

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions