chore(工作区): 纳入版本控制基线(回收 411 MB 过程产物)

回收 411 MB(470 M → 58.8 M),全部经回收站,可恢复:
- 待清理/(146.2 M,含 relay 分片 128 M 与 42 项过程目录)
- tmp/(32.4 M,按接续棒命名的过程临时区)
- .workbuddy/tmp/(39.5 M)
- 4 份 workbuddy.db 冗余副本(101 M,09-23 事故的坏副本 / 抢救产物)
- tmp/im16/gw/centrifugo 二进制(63.9 M,可重下)+ 缓存残留

入库范围:常驻规则(CODEBUDDY.md / README.md / state.py)、在途接续入口与
接续包、docs/、交付物/、交接单/、归档/、scripts/、.codebuddy/、
.workbuddy/memory/;共 398 件,其中 >60 KB 的 26 件全为文档。

排除(.gitignore):tmp/、待清理/、运行态日志与缓存、*.db 与 DB 备份整目录、
打包二进制(*.tar.gz / *.tgz)、记忆修复前备份。
This commit is contained in:
admin committed 2026-09-24 07:51:03 +08:00
commit ce8e6ceed9
396 files changed
+66045

No files matched your search

@@ -0,0 +1,19 @@
# 自动化记忆 · 序46 执行棒 2(步骤 2 · S2 网级放行)
> 只记**高层摘要与可复用判据**;全文与原始读数见交接单 §⑩ 与 `tmp/seq46/readings-s2/`。
## 本棒做了什么(2026-09-20 15:52–16:2x · 验收通过)
- 取 **§④ 首选实现 = dialers 网级通配 `u:<tenant>/*`**(退路"整机开关"未用)。生效范围 = 只对该网、只放宽"身份"道,不放宽"准入"道。
- 改 **4 文件**:`network.ts`(`DIALER_WILDCARD` + `splitEntry` 抽公共 + `parseDialerEntry` + `isAllowedDialer` 通配分支)、`server.ts`(两处闸门改为**调用唯一出口**)、`index.ts`(导出)、两个 test(通配用例 + **T4 守卫升级**)。
- **核心判据成立**:全新 hostId `d-…-78c24c49` + 有效 grant ⇒ 通(`AUTH OK ports=[]`)。A/B:旧配置 ⇒ `no-ports`(证"不在名单里"+新代码本身不放宽)。
- **反证四条全成立**:无 grant ⇒ `identity-incomplete`;真签名但绑别的 hostId ⇒ `identity-host-mismatch`;绑别的 nodeKey ⇒ `identity-key-mismatch`;改 grant 文档 ⇒ `identity-signature-mismatch`。
- 交付门禁:`npm test` 226/225 通过 0 失败;`check:layering` 无新增违规;doc 同步镜像 md5 一致;锁已释放;下一棒已登记(`99936fdd…` @16:28)。
## 可复用判据(下次别再踩)
- 🔴 **reason code 要"真签名"才拿得到**:直接改 grant **文档** ⇒ 永远只得到 `identity-signature-mismatch`。要 `host-/key-mismatch` 必须用**真签过但与对端出示物不一致**的 grant(判定顺序 `identity.ts:449-456`:签名→网络→host→key)。
- 🔴 **跑 relay 侧 CLI 必须带 env**:`DSHS_DATA_ROOT=/var/lib/dshs`(否则注册表落到 `$HOME/.dshs` ⇒ 看到 0 张网 ⇒ `approve` 必然 `unknown-node`);`DSHS_OVERLAY_SIGNER_PUBKEYS=<签名者公钥hex>`(否则 join 必然 `invite-no-trusted-signer`)。
- 🔴 **relay 的 HMAC 密钥表在进程启动时装载一次** ⇒ 新设备不加一次重启就拨不动(`unknown-host`)。这是"人工零介入"终态的真障碍。
- ⚠️ `--ticks` 型取证脚本要在 `stop()` **之前**读 `state`,否则成功也返回退出码 1(步骤 1 的读数同款假信号)。
- ⚠️ 判 relay 是否真挂了别用 `is-active` 之外的猜测;`refused=0` 且 `manager`/`w-106` 有 `AUTH OK` 才算 ops 无影响。