fix(session-mechanism): 常驻读不到宿主库 ⇒ 检查会话永不建
- init_workspace.py 生成配置时写 host_db(宿主 env → 本包 env/roots.env);旧配置留空则补,已写值不动 - collabd._wb_db() 去掉 ~/.workbuddy 回落(本机无此文件),取不到改为占位路径 + 限流留痕 - _sm_load_roots() 先读 COLLABD_CONFIG 所指配置的 host_db,再试 <CODEBUDDY_CONFIG_DIR>/skills/session-mechanism/env/roots.env,最后才上跳 - pitfalls 新增 P0-99(含「新工作区验收跑一次脱环境探针」通则) 实测:deepwrite-harness 新建区 2091 条「读库失败」、11.5 小时零检查会话;修复后五区重启读库失败归零,检查会话建棒并把目标置「已完成」
This commit is contained in:
1 parent
8160f91559
commit
310a964a94
3 files changed
+111
-3
No files matched your search
@@ -3823,3 +3823,26 @@ var r = el.getBoundingClientRect();
|
||||
- ⚠️ 升级后必做的回归:核对**下游按名引用的具体文件还在不在**
|
||||
(本次 `product-planning` 引用的 `visual-review.md`/`tools.md`/`design-direction.md`/`style-explorer.md` 全部健在;
|
||||
新版删了 `imagery.md`、新增 16 份 —— 删除项要逐条确认无下游引用)。
|
||||
|
||||
## P0-99 新建工作区的常驻读不到宿主库 ⇒ 检查会话永不建(2026-10-17 实测)
|
||||
|
||||
- **症状**:新开的工作区(`deepwrite-harness`)整夜零检查会话;`_collabd.log` 里
|
||||
`all_sessions_idle 读库失败 unable to open database file` 每 20 秒一条,**2091 条**。
|
||||
`_all_sessions_idle()` 是 fail-safe:读不出来 ⇒ 判「有会话在跑」⇒ 闸② 恒挡 ⇒ 检查线整条瘫。
|
||||
- **根因链(三道兜底全空)**:① 计划任务起 `pythonw supervise-launch.py`,环境里没有
|
||||
`CODEBUDDY_CONFIG_DIR`;② 本区 `collabd.config.json` 的 `host_db` 被 `init_workspace.py` 留空;
|
||||
③ 启动器第③级与 `collabd._sm_load_roots()` 都靠「从自身位置往上跳找 `env/roots.env`」,
|
||||
而副本在 `<工作区>/.workbuddy/collab/`、与技能包没有相对关系 ⇒ **恒找不到**。
|
||||
⇒ `_wb_db()` 回落 `~/.workbuddy/workbuddy.db`(本机无此文件)⇒ 打不开。
|
||||
- **旁证**:本机六个区里写过 `host_db` 绝对路径的三个(`aigc`/`contentm`/`mcn`)没炸;
|
||||
`ai1net-dsh-server` 同样留空 ⇒ 日志 41 次 `no such table: sessions` —— 同一个病两个报错。
|
||||
- **✅ 正解(三处一起改)**:
|
||||
① `init_workspace.py` 新增 `_resolve_host_db()`,生成配置时写 `host_db`(宿主 env → 本包 `env/roots.env`);
|
||||
旧配置留空 ⇒ 补上,已写值保持不动。
|
||||
② `collabd._wb_db()` 去掉 `Path.home()/".workbuddy"` 回落,取不到 ⇒ 返回占位路径 + `log_throttled` 留痕。
|
||||
③ `_sm_load_roots()` **先读 `COLLABD_CONFIG` 所指配置里的 `host_db`**(最接近真相,启动器恒设这个 env),
|
||||
再补一条 `<CODEBUDDY_CONFIG_DIR>/skills/session-mechanism/env/roots.env`;仍找不到才上跳。
|
||||
- **验收**:清空 `CODEBUDDY_CONFIG_DIR` 起探针 ⇒ 解析出 `E:\ProgramData\.workbuddy`;
|
||||
五个区重启后 `11:34 之后读库失败 = 0`;本区检查会话 11:26:49 起、11:28:39 把目标置「已完成」。
|
||||
- **🔴 通则**:**新工作区验收要跑一次「脱环境」探针**(`env -u CODEBUDDY_CONFIG_DIR` 起 collabd),
|
||||
能解析出宿主库才算装好。⛔ 别拿「其它区都在跑」当证据 —— 那是早年的 `host_db` 绝对路径在兜底。
|
||||
Reference in new issue
Block a user