Skip to content

Commit 4918286

Browse files
committed
docs(plan): record where the implementation deviated from the plan, and why
1 parent 37ac0ea commit 4918286

1 file changed

Lines changed: 14 additions & 0 deletions

File tree

.agents/docs/2026-07-30-issue315-implementation-plan.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
关联:#315
66
目标版本:**2026.7.30.3**(基线 `d79ab00` / 2026.7.30.2)
77
形态:**单 PR**,内部按 A–F 六段推进,每段自带验收。
8+
状态:**已完成**(PR #320)。实施中偏离计划的地方记在 §G。
89

910
---
1011

@@ -136,6 +137,19 @@ std::string_view reason_text(RefreshReason);
136137

137138
---
138139

140+
## G. 实施中相对本计划的偏离(都是实现时才看清的约束)
141+
142+
| 计划 | 实际 | 原因 |
143+
|---|---|---|
144+
| `--offline``BuildOverrides` 透传 | CLI 全局 flag → **`MCPP_OFFLINE` 环境变量**,各处按需读 | 消费者横跨 pm(索引/包)与 build(工具链),透传要改三个子系统的签名;env 又恰好让 `--offline``MCPP_OFFLINE=1` 成为字面上的同一个开关 |
145+
| `offline_mode()``mcpp.pm.index_refresh` |**`mcpp.platform.env`**(叶子模块) | `mcpp.pm.index_route` 已 import `mcpp.fetcher`,pm 里的 helper 会让 fetcher 反向依赖 pm ⇒ **模块环** |
146+
| 判据顺序:offline 最先短路 | **本地分析在前,opt-out 在后** | 先短路会把「解析得好好的依赖」也报成 `offline mode`,而那恰恰是 offline 用户要确认的事。多出的成本只是本地文件读 |
147+
| `decide_for_miss(policy, subject)` |`env` 参数,**同样吃去抖** | 连着两次 `mcpp add` 打错字不该换来两次多仓库同步,理由与构建路径完全一致 |
148+
| `mcpp update` 无条件强制刷新 | 工程里**没有走共享 registry 的依赖时跳过** | 纯 path/git 依赖的工程刷全局索引毫无意义;顺带让 e2e 23/24 不必平白联网 |
149+
| `index_revision` 直接定义在实现区 | 拆成匿名命名空间里的 `read_index_revision` + 外层转发 | 实现区那一大段在**匿名命名空间**内,直接定义会得到内部链接 ⇒ 导出声明未定义(link 期才暴露) |
150+
| P1 单列一期 | **全部并入 P0** | advisory、`index status` rev 列、S4 打标、docs 都只有几十行,分期反而让「变懒」上线时缺少配套的可观测性 |
151+
| 计划未列 | 追加 `mcpp why deps``package index: <rev> (<age>)`| 刷新变懒后,「为什么解析到这个版本」的答案常常是「因为它是你本地索引已知的最新版」 |
152+
139153
## 风险与回退
140154

141155
| 风险 | 处置 |

0 commit comments

Comments
 (0)