diff --git a/.workbuddy/memory/2026-10-06.md b/.workbuddy/memory/2026-10-06.md index a4bbe9b..fe4cad3 100644 --- a/.workbuddy/memory/2026-10-06.md +++ b/.workbuddy/memory/2026-10-06.md @@ -431,3 +431,82 @@ vibe-product 上一条会话(10-06 08:15~08:20)已诊断出两条缺陷并** - 🔴 **vibe-product 是否收工** —— 仍待用户拍板(见 §40.8,未动)。 - 🔴 技能仓历史分叉未决(§36,仍待拍板)。 + +## 42、项目管理界面:统一视图 + 提示收进「!」 + 数据时效(用户逐字驱动) + +### 42.1 用户口径(三条逐字) + +1. `没安装机制的工作区不显示 黄字描述都放到 !号的图标中,不显示在工作台` +2. `这里分类不要按照工作区分了,记住 项目管理是统一管理` +3. (我反问刷新机制后)`页面应该有自己的刷新机制,保证数据的有效性,不然看着刷新了实际没有刷新` + +### 42.2 落点 + +| 项 | 做法 | +|---|---| +| **统一视图** | ⛔ 删掉「按工作区分块」⇒ **一张四列看板**汇总本机所有目标的卡片;归属改由**卡片上的「目标」标签**体现(`.badge.goal`) | +| **提示收进「!」** | 工作台上去掉所有黄字横幅(原 `notice` 容器**整体删除**);无内容时图标淡显不可点,有内容点开弹层、点外/Esc 关 | +| **未装机制不显示** | UI 彻底不列(含原「扫到但没装机制 N 个目录」那行)⚠️ 后端仍留 `skipped`(只给 CLI/取证) | +| **数据时效** | 服务快照带 `epoch`;读数「数据 N 秒前」**只用服务 epoch 算**;>15 s 转黄(`.is-stale`);每秒重画(⛔ 不重取数) | +| **轮询自适应** | 有变化 ⇒ 3 s;连续 3 次没变 ⇒ 15 s;一变立刻回收。⛔ 不做"页面醒了才刷"这类花活 | +| **操作反馈** | 一次性 toast(新建/删除/失败),⛔ 不常驻 | + +### 42.3 🔴 「看着刷新了实际没刷新」的根因与修法(用户第 3 条的直接答复) + +- **病根**:原来 `stamp` 显示的是**服务返回的 `ts` 字符串**,而页面每 5 秒无条件 `setInterval(load)` ⇒ 每次拉取都会把它改成"刚刚" + ⇒ **数据其实没变,但读数一直在跳** ⇒ 用户看到的"新"只是**页面在轮询**,⛔ 证明不了数据是新的。 +- **✅ 正解(照现有看板 `board.html::paintAge` 的口径)**:① 读数**只用服务给的 `epoch`** 算 + (⛔ 不用本地 `Date.now()` 顶上);② 超阈值**转警示色**;③ 读数**每秒重画但不重取数** ⇒ + 数据没动时读数会**如实往上爬**,一眼分清"页面在转"与"数据在动"。 +- ⚠️ 浏览器侧验收**踩了缓存坑**:第一次探针读出 `groups=3 / cols=8 / goal_badges=[]`(=旧版), + 差点判成"改没生效"⇒ 必须 `Network.setCacheDisabled` + `Page.reload(ignoreCache=True)` 才读到真页面 + (同族 P0:「浏览器侧验收假阴性」)。 + +### 42.4 实测(浏览器侧·强刷新后) + +- 4 个列标题(⛔ 不再是 8 个);12 张卡片全在一张板上;标签 `本机协作 ×1 / vibe-product ×11` +- 「!」1 条内容、默认收起、点击展开、再点关闭;时效读数正常跳动 +- 死代码清理:随分区一起废掉的 `projgroup/pghead/pgname/pglink/pgmeta/pchip/lane*` 共 15 行,已全数删除(残留检查全 0) +- 提交 `d97fb0f`(工作区) + +## 43、vibe-product「最新会话反应的问题」核查(用户第 2 问) + +### 43.1 问题出处 + +正式载体=`执行会话/目标-vibe-product-5d27fe/目标执行状态.md`(第 1 棒检查会话,2026-10-05 18:0x 写)。 +它报**两条阻断 ⇒ 判不出来**:① `execution_doc` 指向前身目标目录;② 本目标**从未建立过任务会话**(零排期)。 + +### 43.2 核查结论:两条都已被后续动作消解,**但留下了三条新问题** + +| 原阻断 | 现状 | 判 | +|---|---|---| +| ① `execution_doc` 指旧目标 | 已改指 `执行会话/目标-vibe-product-5d27fe/`(**该目录现存在**) | ✅ 已解 | +| ② 零排期 | 台账 11 件全 done、任务图 N1~N4 全 done、验收 V1~V4 全 pass | ✅ 已解 | +| ③ 判据与存值口径 | `goalctl.py` 已同步(与技能源 **md5 相同** `c4eb6c02…`) | ✅ 已解(本轮所修) | + +🔴 **但留下三条**(见 §43.3)。 + +### 43.3 🔴 三条新问题(都没人报,是本轮核查挖出来的) + +1. **`NEXT.md` 是过期投影,还在喊「V1 pending」** + `tmp/supervise-inbox/NEXT.md`(**10-05 18:06**)内容是本目标**四条 V1~V4**、 + 而 `goal.json` 现已是**另一份目标**(「规划产品原型项目管理工具」),且它自己的那条 V1 早过。 + ⇒ **文件在,读数全错**。⚠️ 真因:清 `NEXT.md` 的 `paused_round()` **只在 `--once` 分支跑**, + 常驻主循环走**另一条路** ⇒ 常驻模式下这份投影**永不被清**。 +2. **常驻在空转,且规模已可观** + `pid 432` 起于 `08:50:47`,`round` 累计至 **54**;日志 **10,102 行 / 1,412,248 字节**。 + 去重后**只有三类内容**,全是"没事发生": + - `闸④:跳过不会再触发的一次性排期(⛔ 否则它会永远卡住闸)|<12 条旧排期名>` + - `目标检查:同名排期已在册 ⇒ 跳过([检查]-[目标检查]-vibe-product-第2棒)` + - `跨区自愈:ai1net-dsh-server=目标已完成 且队列无未完成件 ⇒ 不拉` + ⇒ 每分钟固定刷约 10 行,**纯开销、零产出**。 +3. **工作区副本跑的是 09-29 的旧代码** + `.workbuddy/collab/collabd.py` 未同步技能源(`goalctl.py` 已同步,但 `collabd.py` 未核)。 + +### 43.4 与用户第 1 问的交叉 + +🔴 **第 2 问的根因正好被第 1 问的界面暴露出来**:统一视图把 12 张卡片摊在一张板上, +一眼能看出 **11 张是 `vibe-product` 的、且全 `done`** —— 即"这个目标已干完、常驻还在空转"。 +⇒ 我的处置建议:**收工该目标**(`lifecycle=已完成` ⇒ 会 `supervise_stop` 停掉该区常驻)。 +⚠️ 但这属**跨工作区状态变更** ⇒ 仍按 §40.8「先报用户、⛔ 不擅自动手」。 +