Files
dsh_ai1net_server/docs/交接单/接续包_IM与插件接入_20260924.md
admin c1b5e4d966 chore(工作区): 全量入库 + 补齐 .gitignore(以工作区为准)
- 变更规模:新增 514 / 修改 62 / 重命名 155 / 删除 4(归档重组与文档轮次)
- .gitignore 修:`归档/**/db-cwd归一-备份-*/` —— 原规则写绝对层级(归档/db-cwd归一-…),
  目录搬进 归档/配置与备份/ 后**静默失效**,43 MB 的 DB 备份又变成未跟踪
- .gitignore 补:嵌套 git 内部数据(归档/内嵌git-20261008/、归档/skills-git-旧线-20261007/dotgit-原样移出/)
- .gitignore 补:运行态与部署副本(.workbuddy/collab/、.workbuddy/tools/、.workbuddy/.load-pending、.workbuddy/tmp-*)
- .gitignore 补:备份件(*.bak-*)
- 未跟踪文件从 2190 降到 890(其余为 归档/ 归档件与 .workbuddy/memory/ 知识文件,按口径入库)
2026-10-10 23:13:22 +08:00

7.6 KiB
Raw Permalink Blame 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 是否存在)