- 变更规模:新增 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/ 知识文件,按口径入库)
65 lines
3.9 KiB
Markdown
65 lines
3.9 KiB
Markdown
# 主会话文案 · 切换到本工作区自己的程序副本(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. 推论:想让常驻长期在线,要么让那个会话长期不关,要么另配一个脱离会话的载体。
|