Files
dsh_ai1net_server/交付物/主会话切换文案-20261003.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

3.9 KiB
Raw Permalink Blame History

主会话文案 · 切换到本工作区自己的程序副本(2026-10-03)

怎么用:下面那段是一份模板,复制后把三处 〈区名〉 / 〈工作区路径〉 换掉, 分别发给「会话协作测试1」和「会话协作测试2」的主会话即可。 替换示例:〈区名〉=会话协作测试1;〈工作区路径〉=E:/ProgramData/AIProject/会话协作测试1。


可直接复制的文案

本工作区的会话协作机制刚改完,需要你按新方式确认一次运行状态。本轮只做这一件事,做完即停。

【改了什么】
1. 程序改为各工作区独立:每个工作区有自己的程序副本,放在本工作区的 .workbuddy/collab/ 下。
   技能目录里那份只是"源",本工作区不该再跑它。
2. 看板共用一份:看板只有一份(在本工作区 ai1net-dsh-server 上),其它工作区的目标与运行状态
   在那一格里查看即可,本工作区不用起自己的看板。

【请你做这四步】
1. 读 .workbuddy/collab/logs/supervise-heartbeat.json,看两样:
   - 在不在跑:pid 活着,且心跳距今 < 90 秒;
   - 跑的是哪份:JSON 里的 argv0 字段,它应当指向
     〈工作区路径〉/.workbuddy/collab/collabd.py
2. 如果 argv0 不是上面这个路径(说明现在跑的是技能目录那份),先把它停掉:
   taskkill /F /PID <心跳文件里的 pid>
3. 再用后台任务起本工作区自己那份,输出重定向到文件(⛔ 别让它往会话里打日志):
   COLLABD_CONFIG="〈工作区路径〉/.workbuddy/collab/collabd.config.json" python "〈工作区路径〉/.workbuddy/collab/collabd.py" --supervise >> "〈工作区路径〉/.workbuddy/collab/logs/supervise.out.log" 2>&1
4. 等约 15 秒再读一次心跳,确认 argv0 已变成 〈工作区路径〉/.workbuddy/collab/collabd.py,
   并把结果告诉我(新的 pid、argv0 路径、心跳是否在 90 秒内)。

【硬约束】
- 只读上面点到的那几个文件,⛔ 不要在工作区里到处翻(无边界地找资料会被判成"重复执行、要求人工确认")。
- 本轮只做上面这一件事,做完即停;⛔ 不新建周期排期、不循环等待。

替换清单(三处)

  1. 〔区名〕→ 会话协作测试1 / 会话协作测试2
  2. 〔工作区路径〕→ E:/ProgramData/AIProject/会话协作测试1 / E:/ProgramData/AIProject/会话协作测试2
  3. 两处都出现,共四处替换(步骤 1 与步骤 3 各一处)

发送前的现读数(2026-10-03 17:33)

  1. 会话协作测试1:pid 49224,心跳新鲜,但没有 argv0 字段 ⇒ 跑的还是技能目录那份,需要切换。
  2. 会话协作测试2:pid 15876,同上,需要切换。
  3. ai1net-dsh-server(本工作区):pid 19424,argv0 已指向本区副本 ⇒ 已切换完成。

为什么会这样(发过去之前先知道)

  1. 之前三个工作区跑的是同一份程序文件(靠环境变量区分工作区)⇒ 改一处代码,所有工作区同时变。
  2. 现在改成"技能目录=源,每个工作区=自己的副本"⇒ 某个区的代码坏了,不影响别的区。
  3. 代价:以后改完代码要把副本分发到各区(deploy_code.py),漏了不报错、只表现为"某个区行为不对", 所以判据统一用"看心跳里的 argv0 指向哪份文件"。

附:一个要更正的认知

  1. 之前记的"一次性会话起的常驻只活 5 分钟"不准确(是那次的现象,不是规律)。
  2. 准确说法:常驻跟着发起它的那个会话 —— 那个会话结束它就停。 14:42 起的那次 5 分钟就停(发起它的会话很快结束了);16:53 起的这两个到 17:33 仍活 40 分钟 (因为那个主会话还在跑)。
  3. 推论:想让常驻长期在线,要么让那个会话长期不关,要么另配一个脱离会话的载体。