## 大白话 同一个名字 `graphDigest` 在两个地方指**两个不同的东西**,而且都在 REQ-128 的同一条链上。 下一个接手的人几乎一定会搞混。 ## 两个 `graphDigest` | 出处 | 覆盖什么 | 何时算 | | --- | --- | --- | | `alpha-code#749`(授权 binding,`shared/package-admission.ts`) | **信封声明的**有效安装图(root + 未 skip 的 leaf + required 标志) | 安装前,preview/重验绑定用 | | `alpha-code#706`(账本,`ext-package-ledger-v3.ts`) | **已安装的**图,含逐节点 `manifestDigest` | 安装后,落账用 | 两者**值不同、时机不同、用途不同**,但同名。 ## 为什么值得单独裁决而不是顺手改 - 账本这个名字是**已批方案基线 §2.9 点名的**,`#706` 因此没有自行改名(判断正确)。 - 授权 binding 那个是 rev3 修订按基线要求补的,也有出处。 - 所以这是**两个都有出处的命名撞车**,属于合同层的命名裁决,不是实现方能自己定的。 ## 影响面 `alpha-code#697`(mixed Bundle 激活)与 `#698`(Bundle 生命周期)会**同时消费这两个量** —— 一个用于授权绑定、一个用于 claim mutation。同名会让"这两个 digest 应该相等吗"这种问题 在 review 里反复出现,而正确答案是「不,它们本来就不该相等」。 ## 需要裁决的 给其中一个改名(建议改账本侧为 `installedGraphDigest` 或改授权侧为 `plannedGraphDigest`), 并同步基线 §2.9 的措辞。**在 `#697` 开工前定下来**,否则那张票会带着混淆写代码。 ## 出处 `alpha-code#706`(PR #757)实现方主动报告,未顺手改。
Activity
jinjunnn commentedon Aug 1, 2026
我建这张票时写错了一条事实。 原文说「账本这个名字是已批方案基线 §2.9 点名的,
#706因此没有自行改名(判断正确)」—— 不对。实读已批基线
alpha-code@f923f286 docs/design/2026-07-30-req128-extension-package-baseline.md:graphDigest全文只出现一次,在第 441 行,语境是授权绑定:⇒ 基线认可的
graphDigest是授权绑定那个(#749补的,对信封声明的有效安装图)。账本那个(
#706的,对已安装图、含逐节点manifestDigest)是复用了基线术语去指另一个量。裁决
改账本侧的名字,保留授权绑定侧的
graphDigest。建议改成
installedGraphDigest—— 它与授权侧的区别正是「已安装 vs 计划安装」,名字自己说清楚,不必靠注释。
同时更新:
docs/contracts/extension-package-lifecycle.md、ext-package-ledger-v3.ts的相关注释,以及任何把两者当同一个量的措辞。
本票必须排在
alpha-code#764之后 —— 两者都动ext-receipt-v2.ts与 V3 账本的记录形状,并发会撞车。
#764合并后再开工。退出门
rg -a)确认:graphDigest的每一处命中,要么是授权绑定语境、要么已改名,没有第三种。
正是为了让「它们应该相等吗」这个问题以后不再被反复提出)。
[#758][CODE] 账本图摘要改名 installedGraphDigest —— 与授权绑定的 graphDigest 分开 (#770
[#773][CODE] 账本读不出来不再冒充「没装」——V3 三条只读路径共用一道读闸 (#1068)