session-mechanism:解析不到文档库根时如实报错留痕(第 11 条禁令)
⚠️ 这批改动**不是本次会话写的**,是本机协作机制里别的会话留在工作区的;我按用户「就可以提交仓库」
的授权一并入库,提交前只做了语法校验 —— 三个 py 过 `py_compile`,`handoff-guard.sh` 过 `bash -n`。
- `install.py` `write_roots()`:`DSH_DOCS_ROOT` 解析不到时,原行为是**整行不生成、不报错、不留痕**
⇒ 锁类脚本读不到该键 ⇒ `handoff-guard.sh` 回落到技能包自己的 `scripts/` ⇒ 锁根落进技能包
(另一台机器实测已在 `<技能包>/scripts/05-交接单/.locks` 长出一把锁)。现改为**如实报错 + 留痕**,
并写明「本区确实没有 dsh 文档库时就写本工作区根」这条出路。
- `collabd.py` / `hooks/lock-guard-hook.py` / `lock/handoff-guard.sh`:同批配套(68 增 / 12 删)。
This commit is contained in:
1 parent
f2d07b47ad
commit
22799fc9c2
4 files changed
+68
-12
No files matched your search
@@ -359,6 +359,17 @@ def write_roots(ws: Path, docs: Path | None, code: str | None, dry: bool) -> Non
|
||||
lines.append("%s=%s" % (_k, os.environ[_k].replace(os.sep, "/")))
|
||||
if docs:
|
||||
lines.append(f"DSH_DOCS_ROOT={docs.as_posix()}")
|
||||
else:
|
||||
# 🔴 2026-10-15 修(第 11 条禁令):解析不到文档库时**如实报错 + 留痕**。
|
||||
# 原行为是**整行不生成、不报错、不留痕** ⇒ 锁类脚本读不到该键 ⇒
|
||||
# `handoff-guard.sh` 回落到**技能包自己的 `scripts/`** ⇒ 锁根落进技能包
|
||||
# (D 盘那台实测已在 `<技能包>/scripts/05-交接单/.locks` 长出一把锁)。
|
||||
# ⛔ 不许静默省略整行 —— 静默与"本机真没有文档库"表现完全一样,最难查。
|
||||
log("⛔ 解析不到文档库根:`DSH_DOCS_ROOT` 未设、`roots.env` 里也没有、启发式也没找到"
|
||||
"「同层同时有 05-交接单 与 07-scripts」的目录 ⇒ **本次不写** `DSH_DOCS_ROOT`。"
|
||||
"⚠️ 后果:锁类脚本(`lock/handoff-guard.sh` / `hooks/lock-guard-hook.py` / "
|
||||
"`collabd.py` 的域锁)取不到锁根。"
|
||||
"✅ 本区确实没有 dsh 文档库时 ⇒ 把**本工作区根**写进 `env/roots.env` 的 `DSH_DOCS_ROOT`。")
|
||||
if code:
|
||||
lines.append(f"DSH_CODE_REPO={code.as_posix()}")
|
||||
text = "\n".join(lines) + "\n"
|
||||
|
||||
Reference in new issue
Block a user