55 lines
3.9 KiB
Markdown
55 lines
3.9 KiB
Markdown
# 整体改造方案 · 会话只留两类(主会话 + 协作会话)
|
||||
|
|
|
|||
|
|
> 🔴 **用户 2026-10-02 23:36 指令逐字**:「按照新的逻辑整体修改」
|
|||
|
|
> 前一条逐字:「按照之前的讨论 唤醒会话 跟进会话 和 上报程序 都去掉才对」
|
|||
|
|
> 再前一条逐字:「上报机制也不需要了」
|
|||
|
|
> 口径已落在 `collabd.py:2293`(早于本轮):「创建检查会话的为 协作程序
|
|||
|
|
> (**现在不需要上报机制了、之前已经去掉 唤醒会话和跟进会话机制**)」
|
|||
|
|
|
|||
|
|
## 一句话目标
|
|||
|
|
|
|||
|
|
**会话类别从四类收敛为两类**:① 主会话 ② 协作会话。
|
|||
|
|
唤醒会话、跟进会话、队列上报链路**整套退役**;检查会话由**协作程序**按四道闸建。
|
|||
|
|
|
|||
|
|
## 一、要改哪些(按依赖顺序,⛔ 一处一处改、每处改完即验)
|
|||
|
|
|
|||
|
|
1. **`scripts/collabd.py` 角色表** —— `parse_session_name()` 去掉 `waker` / `follow` 两类
|
|||
|
|
+ 主会话候选排除元组 `("worker","waker","follow")` 收到 `("worker",)`
|
|||
|
|
+ `_scan_follows()` / `follow_for_topic()` / `_deliver_str()` 的收件人路由**整段退役**
|
|||
|
|
2. **`scripts/board.py` + `assets/board.html`** —— 架构图从「主/唤醒/跟进/协作」四格
|
|||
|
|
改成**主会话 + 协作会话两格**;`board_ext.py` 的 `triggers`(唤醒节点)退役
|
|||
|
|
3. **`scripts/hooks/wb-result-hook.py`** —— 🔴 **只拆「上报」这一动作**
|
|||
|
|
(`maybe_run_supervisor` / `maybe_run_collabd_once` / `maybe_run_supervisor_tick` / 投递调用),
|
|||
|
|
⛔ **保留** `_authorized_now()`(授权闸,`collabd.py:4420` 指名依赖)、
|
|||
|
|
⛔ **保留** `maybe_sweep_logcap()`(日志闸)、`maybe_inject_session_gap()`(缺口注入)
|
|||
|
|
4. **`scripts/session-rules-check.py`** —— 自检项 ⑦⑪⑫ 按新口径重写
|
|||
|
|
(⛔ 原「唤醒/跟进两台周期钟」判据作废,改为「**这两台不该存在**」=反向判据)
|
|||
|
|
5. **`SKILL.md` / `references/architecture.md` / `references/collab.md` / `references/collab-detail.md`**
|
|||
|
|
—— 四类 → 两类;⛔ 逐处改,不留「四类」残影(含 frontmatter description)
|
|||
|
|
6. **`scripts/selftest.py`** —— 角色对账用例按新表重写(⛔ 断言不许写死期望值)
|
|||
|
|
7. **`references/pitfalls.md`** —— 新增本次改造的坑(⛔ 不改旧条,只增)
|
|||
|
|
|
|||
|
|
## 二、⛔ 三条硬约束(本次改造特有)
|
|||
|
|
|
|||
|
|
1. **⛔ 不删文件,只退役** —— 全部改法=`status=PAUSED` + 代码标「已退役」+ 路径改名指向。
|
|||
|
|
可逆、零丢失。
|
|||
|
|
2. **⛔ 不整删 `wb-result-hook.py`** —— 它兼授权闸。删了并发锁授权面失控。
|
|||
|
|
3. **⛔ 不在 S13 还在改 `session-rules-check.py` 时动第 4 项** —— 同一文件两个会话必互相覆盖。
|
|||
|
|
⇒ **顺序:等 S13 跑完 → 再整体改。**
|
|||
|
|
|
|||
|
|
## 三、验收判据(⛔ 全是机读,⛔ 不看页面像不像)
|
|||
|
|
|
|||
|
|
1. `sessions` 表里 `[唤醒]` / `[跟进]` **新会话数 = 0**(旧记录可留,`status` 为 completed)
|
|||
|
|
2. `automations` 表里 `[唤醒]` / `[跟进]` 命名 ⇒ `status='PAUSED'`
|
|||
|
|
3. `/board.json` 的 `front._missing` 或 `front` **无 20090 链路**(直读 JSON,⛔ 不看页面)
|
|||
|
|
4. `selftest.py` **PASS 数 ≥ 改前**,且新加的「两类」断言**非恒真**
|
|||
|
|
(⚠️ 变异法:把角色表改回四类,新断言必须报红)
|
|||
|
|
5. `py_compile` 全过;`PRAGMA integrity_check=ok`
|
|||
|
|
6. 🔴 **重启看板**才生效(P0-17:**改了配置也必须重启**,`C` 是模块级加载一次)
|
|||
|
|
|
|||
|
|
## 四、需要用户拍板的点(⛔ 不自决)
|
|||
|
|
|
|||
|
|
**看板要「唤醒」那两格完全消失,还是保留灰格标注「已退役」?**
|
|||
|
|
- 候选 A:**完全消失**,架构图只两格。优点:干净。缺点:丢失「为什么没有」的线索。
|
|||
|
|
- 候选 B:**保留灰格 + 标「已退役 · 2026-10-02」**。优点:可追溯。
|
|||
|
|
- **倾向 B** —— 与本项目一贯「过期会话收起但不删除」的口径一致。
|