docs(计划): P2a/P2b 归属入册(鸿蒙侧,参照物是 WebUI 已成的形态);产物自证两条报错补"最常见的错误修法"

1. **归属弄反了**(pi 2026-09-14):联系人卡片视图 / 收件箱按会话折叠 / 删平级 tab
   **全在鸿蒙侧落地**;WebUI 的 `ContactPanel.tsx`(列表/卡片两视图)、`lib/mailGroups.ts`
   (按会话折叠)都是**参照物**,WebUI 根本没有平级会话入口。已写进计划文档,
   并写明「收件箱只取 50 封」那件事**不与 P2a 互相阻塞**(它是 WebUI 现存缺陷,单独查)。

2. **§14 落到产物自证这一族**:`build-stamp` / `packaging` 的报错原先只有「正确修法」
   (重构建 / 重打包),补上**最常见的错误修法** —— 别改 `BUILD_INFO.json` 的
   `gitRev`/`srcHash`、别改断言或塞一份手抄 dist:那是把判据废掉。
This commit is contained in:
2026-09-14 17:33:05 +08:00
parent e35ea479b5
commit 9af4fde706
3 changed files with 22 additions and 2 deletions

View File

@ -1043,3 +1043,18 @@ pi 的疑问:「系统那三个 `mask_*` —— light/regular/thick 是**浓
不标的多半是被 `git add -A` 卷进去的。判据在 `test/commit-hygiene.test.mjs`:
基线 = 该判据文件自己的引入提交(**历史不改**,规则管从今往后),
配分类逻辑的合成自检(否则"解析没跑起来"时会全绿)。
## P2a / P2b(鸿蒙侧 —— pi 2026-09-14 明确归属:**不是** WebUI 的活)
三件事的**落地全在鸿蒙**;WebUI 那边已经是目标形态,是**参照物**不是待办:
| 项 | 参照物(WebUI,已经是目标形态) | 鸿蒙要做的 |
| --- | --- | --- |
| **P2a** 联系人页两个视图 | `client/electron/src/components/ContactPanel.tsx` + `useContactStore.view`(列表 / 卡片) | `ContactsTab` 补**卡片视图**:承接现在鸿蒙平级「会话」tab 的东西(主题、最新一封摘要、是人还是 Agent、`PermissionChip`、`BudgetChip`)—— 它不是「多余入口」,是**放错了位置的卡片视图** |
| **P2b** 收件箱按会话折叠 | `client/electron/src/lib/mailGroups.ts` | 鸿蒙收件箱加**按会话折叠**,组头带未读 |
| **P2b** 删平级「会话」tab | WebUI **没有**平级会话入口(所以没有「删 tab」这回事) | 前两项到位后**再删**;在那之前删 = 把轮次预算、`status`、`from_agent` 从屏幕上抹掉,而「预算跑满」正是需要人介入的信号 |
**开工顺序**:P6(日历)之后。**不以下列事情为前置条件**:
- 「`/me/mail/inbox` 只取 50 封」被折叠伪装成「只有这么多会话」——若成立,它是 **WebUI 的现存缺陷**
(WebUI 的折叠早就在跑),**单独查一眼**即可,**不是**鸿蒙 P2a 的开工条件(pi 明确否掉了这个绑定)。