Files
dsh_ai1net_server/docs/交接单/接续包_IM与插件接入_20260924.md
T

97 lines
7.6 KiB
Markdown
Raw Normal View History

# 接续包 · IM 线 + 插件接入(2026-09-24 21:4x)
> **工作区**:`E:/ProgramData/AIProject/ai1net-dsh-server`
> **性质**:本会话(即席问答型,非单一任务线)的**收口包**。⚠️ 本包**不自述 md5**(自述即自指)⇒ 校验值放 automation prompt。
> **本包地位**:本会话的**唯一接续依据**;两条线的长期依据仍是各自入口(见 §4)。
> **建包原因**:上下文 **311k** 触发强制收口。
---
## §0 一页速览
| 项 | 内容 |
|---|---|
| **用户问** | 「IM 的任务和插件接入的任务都完成了吗」 |
| **答** | ⛔ **都没完成** —— IM 线剩**第 17 棒**(整棒未跑);插件接入剩 **3 项**(见 §3) |
| **本会话性质** | 即席问答 + **5 处落档**;**代码零改动** |
| **下一棒** | §4 第 1 条(按用户当轮口令选 IM / 投放线) |
| **🔴 硬前置** | **切流必须等用户启用 E 单插件之后**(顺序铁律,不可抢跑) |
---
## §1 本会话已完成(5 项 · 均有校验)
1. **106 共享层补包** —— `_dsh-local_im-conversation-tabs` 由 47 → 本机 → 106 同步(21,529 B tgz 中转),**两机文件指纹逐字一致 `cebe3a57b5a0828a`**;106 现包 3 个与 47 对齐 ⇒ **E 单启用不再受"实例在哪台机"限制**。投放线入口 §5-5 那条「106 缺包」注记已就地改为「已闭合」。
2. **「待拍板内容格式」固化为规则(3 处载体)** —— 用户令「**形成规则,生成待拍板内容时必须遵循**」⇒ 作用域由「上抛」扩为「**一切要用户拿主意的输出**」(含末尾清单 / 候选 / 表格盘点,**换形态不豁免**)。落点:用户级 `~/.workbuddy/MEMORY.md`(提问条结束于字符 **3,548** < 4,000)+ 本工作区 `CODEBUDDY.md §1`(**7,957 / 8,000,余量仅 43**)+ 技能 `agent-operating-rules §1.7`(**三处 md5 `84d61abb93146b09dfe8ddde583b80d3` 一致**)。⚠️ **需完全重启才生效**。
3. **跨区可见性默认 → 已拍板** —— 用户原话「**用户连接了哪些区就能看到哪些区的用户**」⇒ 定案 = **可见性跟随「用户 × 区」成员关系**(第三案;原「倾向互不可见」及 A / B 候选**作废**)。落档:`02-架构设计/覆盖网络-顶层架构全貌.md` **§8.3 整节重写** + 同文件 §8 **F6 行** + `接续入口_IM线_20260922.md` **§4-6** + **§0 追加行**。
4. **插件「可见面」定性推翻(代码级)** —— 见 **§5-1**(含我两次措辞更正的教训)。
5. **carbon 对接文档复审(只读)** —— 见 **§5-2**。
---
## §2 本会话未做(故意)
- ⛔ **未改任何平台代码**(`src/**` 零改动)
- ⛔ **未 commit / push**(工作区 + 文档库均有未提交改动)
- ⛔ 未开新任务线
---
## §3 在途 / 未完成(4 项 —— 用户所问的答案)
| # | 项 | 归属 | 卡在哪 |
|---|---|---|---|
| 1 | **IM 线第 17 棒**(重打包 + 重投放 + 边缘接 vhost + **切流** + 档位复测 `2000`/`10`/`30 s`) | IM 线 | 🔴 **automation `19904b63` 已丢**(既不在库、也无对应 memory 目录)⇒ **需重登**;⚠️ **切流须等用户启用 E 单插件之后** |
| 2 | **插件可见性收口(A 案)** | 插件投放与分库线 | 方案已定、**未开工**(须 改码 → build → 部署两机 → 重启 → 验收) |
| 3 | **carbon 凭据投递通路**(用户点开通 ⇒ 凭据自动就位) | 平台侧立项 | ⛔ **需用户拍板**(属新增能力)⇒ 按纪律 **不登记** |
| 4 | **跨机可见性状态回流** + **跨节点内容分发** | 插件投放与分库线 | 形态均已拍板、**未开工**(可排棒) |
---
## §4 下一步(写死第 1 条)
**第 1 条**:按**用户当轮口令**决定先做 §3-1(IM)还是 §3-2(插件可见性收口)。
两条**冲突域不重叠**(IM 线 = `src/im` / `poc/im-*`;投放线 = `src/web/routes/business-plugins.ts` / `web/portal.html` / `src/db/**`)⇒ 理论可真并行,但**每线只挂一个棒**。
**长期依据(⛔ 本包不复制其正文)**:
- IM 线 → `接续入口_IM线_20260922.md`(**§0 最新行** + §2「⏭️ 第 17 棒」)
- 插件投放与分库线 → `接续入口_插件投放与分库线_20260922.md`(**§0 最新行** + §5-1 / §5-2 / §5-3 / §5-6)
---
## §5 关键决定(本会话新增 · ⛔ 别推翻)
### 5-1 插件「可见面」的真相(我做过两次措辞更正 · **最终版以此为准**)
- 🔴 **三层清单**:① **上游官方目录** ≈ **3,400** 条 ⇒ **仅 admin**(`src/web/routes/whitelist.ts` 三条路由全 `requireAdmin`)② **候选池**(admin 从目录导入的,实测 ≈ **5** 条)⇒ 🔴 **任何登录用户可见**(`/api/plugins/mine`,`src/db/repo.ts:682` 零 WHERE;**用户侧实例面板确实在调它** = `poc/business-plugins/lib/client.js:1221`)③ **共享层已发布** **3** 个 ⇒ 受开关控制。
- ⇒ **「可见面开关要不要开」这个提问的前提不成立**(用户早拍 D1/P4「全员可见、自己开通」);真实缺陷 = **可见性分层未统一:门禁只装在新增的(更严格的)那条上,老那条全量开放**。定性 = **实现层缺陷,⛔ 非待拍板项**。
- **修法(自决 · 可推翻)**:**A 案** = `/mine` 收窄为「已发布 + 我的状态」+ 撤掉 `/shared/catalog` 与其开关(须在交接单写明**推翻** S6-1「⛔ 不要顺手加过滤」的理由)。
- ⚠️ **教训**:取证须把「**接口返回什么**」与「**用户实际能看到什么**」**分开陈述** —— 我首次把 API 事实直接写成用户可见事实,被用户当场否掉。
### 5-2 carbon 接入现状(只读复审)
- 文档 = `E:/ProgramData/AIProject/dsh-plugin-carbon/对接文档_carbon插件-平台侧两处阻塞_20260922.md`(500 行 · **四方往来**),**停在 carbon 线**(等 `J1` / `J3`)。
- 平台侧**唯一欠项** = 「用户点开通 ⇒ 凭据自动就位」通路**未立项**(`grep -rn "\.dsh/plugins" src/` **零命中**)⇒ 建议**并进 worker 装配同一条腿**(零新增入站口)。
- 🔴 **本机有两份 carbon 包(⛔ 别拿错)**:正式版 `dsh-ai1net-capability/dsh-plugin-carbon` = `@dsh-local/dsh-plugin-carbon` **v0.1.7**(无 `data` 声明 ✅);旧副本 `AIProject/dsh-plugin-carbon` = `@dsh-local/carbon` **v0.1.0**。✅ §L-1 的目录名裁定(`dsh_plugin_carbon`)**正确**。
---
## §6 回滚点
| 对象 | 回滚方式 |
|---|---|
| 规则三载体 | 工作区 `CODEBUDDY.md` 改回「上抛必须自包含」原句;用户级 `MEMORY.md` 加回被压掉的长括号说明;技能相应回退 |
| 跨区可见性 §8.3 | 定稿改回「倾向**默认互不可见**」一句(原文本已在本包 + 今日日志留档) |
| 106 共享层 | 多余包 `rm -rf /var/lib/dshs/bundled-plugins/_dsh-local_im-conversation-tabs`(不影响 47) |
| 投放线入口 §5-3 / §5-6 | 原句「可见面开关的开启决策(红线门禁 · 待拍板)」见今日日志 20:4x 段 |
---
## §7 ⛔ 不要重做
- ⛔ **不要再同步 106 共享层**(已补、指纹已验 `cebe3a57b5a0828a`)
- ⛔ **不要重新固化提问规则**(三处已一致)
- ⛔ **不要重判跨区可见性**(已拍板,权威 = 定稿 §8.3)
- ⛔ **不要再把「可见面开关」当待拍板项问用户**(定性已推翻)
- ⛔ **不要重搜 carbon 现状**(本包 §5-2 已核)
- ⛔ **不要用 `automation list` 的 `status` 判某棒是否已跑**(实测:跑完仍 `ACTIVE`;正解 = 看 `automations/<id>/memory.md` 是否存在)