Files
workbuddy_skills/session-mechanism
admin c9e8f0fbb0 session-mechanism:init_workspace 两处本机适配回补(副本场景起不来)
背景:这两处 2026-10-09 已在某台机器的工作副本上验证通过,但没随仓发布;
2026-10-12 那台机器按「以仓库为准」覆盖本地后,修复丢失。现按仓规补回仓库版。

一、副本场景 SK 回落技能源
  原:SK = Path(__file__).resolve().parent ⇒ 副本(<工作区>/.workbuddy/collab/)下
      没有 hooks/ ⇒ ⑤ 自检加载 hooks/_env.py 直接 FileNotFoundError,整段自检作废。
  现:加 _resolve_skill_dir(),先判 <sk>/hooks/_env.py 在不在;不在就依次到
      CODEBUDDY_CONFIG_DIR 与 ~/.workbuddy 下的 skills/session-mechanism/scripts 找,
      取第一个命中;两处都没有 ⇒ 原样返回,让报错照常暴露(不静默跳过)。
      只拼相对片段,不写盘符字面量(与「脚本是脚本、配置是配置」相容)。

二、collabd --where 归属判据认反斜杠
  原:_ws_ok = ("COLLABD_CONFIG" in 输出) or (ws_s in 输出) ⇒ 恒为 False:
      ① 输出里没有 COLLABD_CONFIG 字样(它写「配置来源」);
      ② 输出全反斜杠,而 ws_s 是正斜杠形态。
      结果这条自检永远打印 ⛔(即便工作区其实认得)。
  现:改「两端都认」—— 正斜杠原样 / 反斜杠形态 / 反斜杠形态经 normcase 归一后
      出现在同样归一的输出里,任一命中即通过。

验证(本机实跑,改动前后各一次)
  · 副本场景 e2e:改前 ⑤ 打印「⚠️ 自检跑不了:FileNotFoundError」;
                  改后 ⑤ 全量跑通,`collabd --where` 认这个工作区 = ✅(rc=0)。
  · 对照脚本:改前 SK=副本目录、hooks/_env.py 不存在、加载 FileNotFoundError;
              改后 SK=技能源、加载 OK。判据 旧=False / 新=True。
  · scripts/selftest.py:改前 110/0、改后 110/0(无回归)。
  · install.py --manifest:77 份文件,语法失败 0。
2026-10-12 10:26:05 +08:00
..