feat(overlay): 内容块级寻址 + 实例逐步拉起 + 骨干选路 + 组密钥加密(序24–㉛ 累积同步)

代码
- 内容分发块级寻址:新增 src/net/relay/content/{chunker,store,runtime,source,peer,crypto}.ts
- 组密钥(C 档)确定性加密:AES-256-GCM,块 id β′ = sha256(密文) 前 32 hex;双 epoch 过渡窗口
- 实例生命周期:三处 teardown() 不再杀实例(local/remote/leased-spawner);启动认领 + TCP 探活判孤儿
- 骨干选路:jitter 选路 + endpoint-target;relay client/server/wire/identity/directory/rendezvous/switcher 调整
- 工作台 src/web/server.ts、src/worker/relay-tunnel.ts 装配与候选链观测

脚本与测试
- scripts/overlay-{probe,keyring,jitter}.cjs 更新
- 探针新增 OBS-21(每连接候选数)/ OBS-22(teardown 静态守卫 + 认领面)/ OBS-23(组密钥加密)
- 新增 test/{orchestrator-teardown,orchestrator-rehydrate,overlay-content,overlay-jitter}.test.mjs;relay 两例更新

文档
- 新增交接单:覆盖网络-序24-内容分发块级寻址 / 序25-实例逐步拉起 / 序26-骨干稳定选路与加密
- INDEX.md、交接单/README.md、skills/dsh-auto-handoff-chain/SKILL.md 同步

验收(零回归,2026-09-18 08:0x 复核)
- npm test           201 tests / 200 pass / 0 fail / 1 skipped
- overlay-failover-drill --scene all --table   12 PASS / 0 SKIP / 0 FAIL
- overlay-probe --table                        23 PASS / 0 SKIP / 0 FAIL (rc=0)
This commit is contained in:
admin committed 2026-09-18 08:08:51 +08:00
1 parent 04776af4b1
commit 09ce76f3af
38 files changed
+9133 -211

No files matched your search

+135 -135
View File
@@ -1,59 +1,59 @@
# dsh 平台文档导航(INDEX)␍␍␍␍␍
␍␍␍␍␍
> **首读 `BRIEF.md`(现状卡)**:30 秒对齐现行事实;本文件只管"定位篇目 + 状态"。␍␍␍␍␍
> **双端模型**:本机 `D:\github\dsh_shenxian\dsh-server-docs\`(**工作树**,git 仓库 `dsh_shenxian_doc`)↔ 服务器 `/opt/dsh/docs`(**部署镜像**,root 600,**无 .git**,靠 scp)。␍␍␍␍␍
> **对账**:`bash scripts/docs-sync-check.sh`(退出码 0 = 全绿)。␍␍␍␍␍
> **最后核对**:2026-09-12 — **篇数与规模不在此写死**:本库由多会话并行改动,绝对值数十分钟即失效(同日实测 83 → 85 → 87,3 次作废);**一律以 `python3 scripts/docs-manifest.py` 复跑结果为准**。代码 HEAD 看服务器:`git -C /opt/dshs log -1`(最后核对值 `ebe8075`)。域名 `alotbuy.com`(旧域 `dsh.alotbuy.com` 已 301)。␍␍␍␍␍
␍␍␍␍␍
---␍␍␍␍␍
␍␍␍␍␍
## 一、按场景快速定位␍␍␍␍␍
␍␍␍␍␍
| 我要做什么 | 先读 |␍␍␍␍␍
|---|---|␍␍␍␍␍
| **访问入口(当前域名)** | 门户 `https://alotbuy.com`;用户实例 `https://<用户名>.alotbuy.com` | `04-22`(迁移+回滚) |␍␍␍␍␍
| **重建 / 交接部署** | **`DEPLOY-本部署.md`**(拓扑·目录·env·依赖·脚本族·构建/部署/回滚) | 档案 19 §C9 |␍␍␍␍␍
| 理解架构 / 多租户隔离 | `01-规划与架构.md`(一~五、九、十三) | `archive/` 全文 |␍␍␍␍␍
| 日常运维(重启/备份/token/KEY/排障) | `02-运维手册.md` | `03-路线图与待办.md` |␍␍␍␍␍
| **做一次平台改造(完整流程)** | **`skills/dsh-change-workflow/SKILL.md`**:六阶段 + **红线 R1-R11** + 档案模板 + 并行调度协议 |␍␍␍␍␍
| **开源导出 / 发新版本** | **`skills/dsh-opensource-release/SKILL.md`**:五条硬规则 R-O1–R-O5(源仓库只读 / 探针 0 命中 / 去插件 / 不带文档与 skill / 分层授权)+ 脱敏映射表 + **迭代 SOP** + 验证六件套;产物在本机 `_开源导出_20260913/` |␍␍␍␍␍
| **排查业务插件故障(没 UI / 装不上 / 改了没生效)** | **`skills/dsh-plugin-diagnose/SKILL.md`**:三层归属 + 三把尺子(inject 差集 / glibc 直测 / 产物插探针)|␍␍␍
# dsh 平台文档导航(INDEX)
> **首读 `BRIEF.md`(现状卡)**:30 秒对齐现行事实;本文件只管"定位篇目 + 状态"。
> **双端模型**:本机 `D:\github\dsh_shenxian\dsh-server-docs\`(**工作树**,git 仓库 `dsh_shenxian_doc`)↔ 服务器 `/opt/dsh/docs`(**部署镜像**,root 600,**无 .git**,靠 scp)。
> **对账**:`bash scripts/docs-sync-check.sh`(退出码 0 = 全绿)。
> **最后核对**:2026-09-12 — **篇数与规模不在此写死**:本库由多会话并行改动,绝对值数十分钟即失效(同日实测 83 → 85 → 87,3 次作废);**一律以 `python3 scripts/docs-manifest.py` 复跑结果为准**。代码 HEAD 看服务器:`git -C /opt/dshs log -1`(最后核对值 `ebe8075`)。域名 `alotbuy.com`(旧域 `dsh.alotbuy.com` 已 301)。
---
## 一、按场景快速定位
| 我要做什么 | 先读 |
|---|---|
| **访问入口(当前域名)** | 门户 `https://alotbuy.com`;用户实例 `https://<用户名>.alotbuy.com` | `04-22`(迁移+回滚) |
| **重建 / 交接部署** | **`DEPLOY-本部署.md`**(拓扑·目录·env·依赖·脚本族·构建/部署/回滚) | 档案 19 §C9 |
| 理解架构 / 多租户隔离 | `01-规划与架构.md`(一~五、九、十三) | `archive/` 全文 |
| 日常运维(重启/备份/token/KEY/排障) | `02-运维手册.md` | `03-路线图与待办.md` |
| **做一次平台改造(完整流程)** | **`skills/dsh-change-workflow/SKILL.md`**:六阶段 + **红线 R1-R11** + 档案模板 + 并行调度协议 |
| **开源导出 / 发新版本** | **`skills/dsh-opensource-release/SKILL.md`**:五条硬规则 R-O1–R-O5(源仓库只读 / 探针 0 命中 / 去插件 / 不带文档与 skill / 分层授权)+ 脱敏映射表 + **迭代 SOP** + 验证六件套;产物在本机 `_开源导出_20260913/` |
| **排查业务插件故障(没 UI / 装不上 / 改了没生效)** | **`skills/dsh-plugin-diagnose/SKILL.md`**:三层归属 + 三把尺子(inject 差集 / glibc 直测 / 产物插探针)|
| **换电脑 / 改了工作区路径,规则会不会丢** | **`skills/dsh-env-bootstrap/SKILL.md`**:常驻规则快照 + `--check` 校验 / `--inject` 注入 / `--env-check` 环境自检(默认只报不改)|
| **跑跨会话长任务(自动接力)** | **`skills/dsh-auto-handoff-chain/SKILL.md`**:六件套 prompt 骨架 + 登记门禁 + 五条实测防护 + 复跑脚本 `scripts/chain_report.py` |
| 看还有什么没做完 | `03-路线图与待办.md` §二 | **`交接单/README.md` §一**(已规划待执行) |␍␍␍␍␍
| **改前端页面(强制基线)** | **`06-工作台UI规范.md`** |␍␍␍␍␍
| **改实例 UI 分区(设置面板)** | **`07-实例UI分区登记表.md`**(哪个包提供 / 源码在哪 / 能不能改)+ `06-工作台UI规范.md` |␍␍␍␍␍
| 红线与硬约束 | `README.md` §红线(含 **R7 禁批量全仓写入**、**R8 中断用户须先知会**)| `04-07` |␍␍␍␍␍
| **插件兼容性预检(导入/上传即判定)** | **`04-71`**(判据 + PoC + 三层防线)|**`交接单/T05`**(执行单)|`scripts/plugin-compat-check.mjs`(可在服务器直接跑) |␍␍␍␍␍
| **实例崩溃循环 / 插件不兼容** | `04-70`(anysearch 与 dsh-llm `assertNever` 不兼容;判据「重启后错误是否变化」)|`04-20`(自愈熔断)|`04-25`(崩溃循环前例)|`02 §C.4` |␍␍␍␍␍
| **锁机制(防并行冲突)** | **`04-73`(强制钩子)|`04-69`(三把锁建立)**|`交接单/README.md` §一·§三·§六|`scripts/{handoff-guard.sh,op-lock.sh,lock-guard-hook.py}` |␍␍␍␍␍
| **多会话并行 / 冲突治理** | **`04-69`**(两级文档锁 + 服务器侧操作锁 + commit 常态化)|`交接单/README.md`(占用锁 / 写者归属 / §六 服务器侧锁)|`scripts/handoff-guard.sh`、`scripts/op-lock.sh` |␍␍␍␍␍
| 插件管理面 | `04-16`(三层归属)| `04-31`(门户双 Tab)| `04-57`/`04-60`(设置面板分区) |␍␍␍␍␍
| **搜索 provider / 联网搜索** | `04-64`(接入 AnySearch)|`04-65`(启停与 web provider 联动)|`04-66`(P0 误报与 admin 显式信任) |␍␍␍␍␍
| **「能力管理」section UI** | `04-67`(按 UI 规范重做)|`04-36`/`04-38b`(分区铺开 / 术语统一)|`04-68`(启停属主污染根治)|**`04-100`(「我的技能」分组 · 09-15)**|**`04-101`(改名「能力管理」+ tab 分页 + 卡片三行 + DeepSeek 改名 · 09-15)** |␍␍␍␍␍
| 安全 / 暴露面 | `04-14`(出网护栏)|`04-39`(可见面收窄·封 loopback)|`04-41`(上传加固) |␍␍␍␍␍
| 技能共享层 / 管理面 | `04-10`(bundledSkillDir)|`04-11`(API+页面)|`04-40`(挂载修复) |␍␍␍␍␍
| 会话/登录跳转 · 断连恢复 | `04-13`(冷启动 404)|`04-24`(实例侧 401)|`04-49`(回收后反馈)|`04-51`(401 透明重放)|**`04-72`(回收/关闭后回到页面自动唤醒)** |␍␍␍␍␍
| 实例易用性 | `04-45`(老会话档位提示)|`04-56`(实例助手)|`04-59`(启动动画) |␍␍␍␍␍
| 实例资源 / 配额 | `04-58`(内存口径 + 配额 384M)|`04-38a`(边界:无磁盘配额) |␍␍␍␍␍
| VoxEMW | `04-12`(摘要)| `archive/工作区草案/` 两份全文 |␍␍␍␍␍
| 历史全量时间线 | `archive/dsh-improvement-plan-20260909-full.md` |␍␍␍␍␍
␍␍␍␍␍
---␍␍␍␍␍
␍␍␍␍␍
## 二、全量清单␍␍␍␍␍
␍␍␍␍␍
> **状态摘要**(**机器生成,勿手改**):档案 **115** 份(`04-*`),另含根级编号 5 条(01/02/03/06/07),另有非编号行 14 条(README / INDEX / 技能 / poc 等)—— ✅ 16 | 🔄 5 | 🔍 1 | 📋 22 | 未标记 76。复跑 `python3 scripts/docs-index-stats.py` 取数,`--write` 就地刷新本行。
> **分层与机读明细**(路径 / 日期 / 字符数 / 被引次数 / tier,可 `jq` 先筛后读):**`docs-manifest.json`**;复跑 `scripts/docs-manifest.py` 即刷新。␍␍␍␍␍
> 图例:✅已落地 | 🔄维护中 | 🧪PoC | 📝待开发 | 🔍核查完成 | 📋评估 | 🟡保留兜底 | 🗄归档|🔧修复|🔴|🚧|❓␍
␍␍␍␍␍
| 号 | 状态 | 一句话 |␍␍␍␍␍
|---|---|---|␍␍␍␍␍
| README | 🔄 | 文档库总说明、模块一览、红线、使用约定(**档案清单唯一来源**)|␍␍␍␍␍
| INDEX | 🔄 | 本文件:场景速查 + 状态总览 |␍␍␍␍␍
| 01 | ✅ | 背景/架构/目录布局/dsh 分层/归属矩阵/安全边界 |␍␍␍␍␍
| 02 | ✅ | 迁移、备份恢复、域名接入、uid 排障、命令速查(**正文为历史,现行以附录 C 为准**)|␍␍␍␍␍
| 03 | 🔄 | OQ 结论、已完成清单、进行中/待办、历史决策 |␍␍␍␍␍
| **跑跨会话长任务(自动接力)** | **`skills/dsh-auto-handoff-chain/SKILL.md`**:六件套 prompt 骨架 + 登记门禁 + 六条实测防护 + **排期两条铁律**(首个/唯一接续棒 = 收口 + 5~8 分钟 · 同一时刻只挂一个接续棒) + 复跑脚本 `scripts/chain_report.py` |
| 看还有什么没做完 | `03-路线图与待办.md` §二 | **`交接单/README.md` §一**(已规划待执行) |
| **改前端页面(强制基线)** | **`06-工作台UI规范.md`** |
| **改实例 UI 分区(设置面板)** | **`07-实例UI分区登记表.md`**(哪个包提供 / 源码在哪 / 能不能改)+ `06-工作台UI规范.md` |
| 红线与硬约束 | `README.md` §红线(含 **R7 禁批量全仓写入**、**R8 中断用户须先知会**)| `04-07` |
| **插件兼容性预检(导入/上传即判定)** | **`04-71`**(判据 + PoC + 三层防线)|**`交接单/T05`**(执行单)|`scripts/plugin-compat-check.mjs`(可在服务器直接跑) |
| **实例崩溃循环 / 插件不兼容** | `04-70`(anysearch 与 dsh-llm `assertNever` 不兼容;判据「重启后错误是否变化」)|`04-20`(自愈熔断)|`04-25`(崩溃循环前例)|`02 §C.4` |
| **锁机制(防并行冲突)** | **`04-73`(强制钩子)|`04-69`(三把锁建立)**|`交接单/README.md` §一·§三·§六|`scripts/{handoff-guard.sh,op-lock.sh,lock-guard-hook.py}` |
| **多会话并行 / 冲突治理** | **`04-69`**(两级文档锁 + 服务器侧操作锁 + commit 常态化)|`交接单/README.md`(占用锁 / 写者归属 / §六 服务器侧锁)|`scripts/handoff-guard.sh`、`scripts/op-lock.sh` |
| 插件管理面 | `04-16`(三层归属)| `04-31`(门户双 Tab)| `04-57`/`04-60`(设置面板分区) |
| **搜索 provider / 联网搜索** | `04-64`(接入 AnySearch)|`04-65`(启停与 web provider 联动)|`04-66`(P0 误报与 admin 显式信任) |
| **「能力管理」section UI** | `04-67`(按 UI 规范重做)|`04-36`/`04-38b`(分区铺开 / 术语统一)|`04-68`(启停属主污染根治)|**`04-100`(「我的技能」分组 · 09-15)**|**`04-101`(改名「能力管理」+ tab 分页 + 卡片三行 + DeepSeek 改名 · 09-15)** |
| 安全 / 暴露面 | `04-14`(出网护栏)|`04-39`(可见面收窄·封 loopback)|`04-41`(上传加固) |
| 技能共享层 / 管理面 | `04-10`(bundledSkillDir)|`04-11`(API+页面)|`04-40`(挂载修复) |
| 会话/登录跳转 · 断连恢复 | `04-13`(冷启动 404)|`04-24`(实例侧 401)|`04-49`(回收后反馈)|`04-51`(401 透明重放)|**`04-72`(回收/关闭后回到页面自动唤醒)** |
| 实例易用性 | `04-45`(老会话档位提示)|`04-56`(实例助手)|`04-59`(启动动画) |
| 实例资源 / 配额 | `04-58`(内存口径 + 配额 384M)|`04-38a`(边界:无磁盘配额) |
| VoxEMW | `04-12`(摘要)| `archive/工作区草案/` 两份全文 |
| 历史全量时间线 | `archive/dsh-improvement-plan-20260909-full.md` |
---
## 二、全量清单
> **状态摘要**(**机器生成,勿手改**):档案 **115** 份(`04-*`),另含根级编号 5 条(01/02/03/06/07),另有非编号行 14 条(README / INDEX / 技能 / poc 等)—— ✅ 16 | 🔄 5 | 🔍 1 | 📋 22 | 未标记 76。复跑 `python3 scripts/docs-index-stats.py` 取数,`--write` 就地刷新本行。
> **分层与机读明细**(路径 / 日期 / 字符数 / 被引次数 / tier,可 `jq` 先筛后读):**`docs-manifest.json`**;复跑 `scripts/docs-manifest.py` 即刷新。
> 图例:✅已落地 | 🔄维护中 | 🧪PoC | 📝待开发 | 🔍核查完成 | 📋评估 | 🟡保留兜底 | 🗄归档|🔧修复|🔴|🚧|❓
| 号 | 状态 | 一句话 |
|---|---|---|
| README | 🔄 | 文档库总说明、模块一览、红线、使用约定(**档案清单唯一来源**)|
| INDEX | 🔄 | 本文件:场景速查 + 状态总览 |
| 01 | ✅ | 背景/架构/目录布局/dsh 分层/归属矩阵/安全边界 |
| 02 | ✅ | 迁移、备份恢复、域名接入、uid 排障、命令速查(**正文为历史,现行以附录 C 为准**)|
| 03 | 🔄 | OQ 结论、已完成清单、进行中/待办、历史决策 |
| 04-01 | ✅ | 登录直达 URL 自动带 launch token |
| 04-02 | ✅ | 权限边界收紧 + DB 加固 |
| 04-03 | ✅ | API KEY 收归管理员统一管控 |
@@ -103,7 +103,7 @@
| 04-45 | ✅ | 存量会话「新开会话」提示(选提示不选迁移) |
| 04-46 | ✅ | 实例共享工具 jq / ripgrep / ffmpeg |
| 04-47 | ✅ | admin「运行环境」管理页(含版本漂移告警) |
| — | ⚠️ | **编号 48 未使用**(跳号;不影响检索,勿补占)|␍␍␍␍␍
| — | ⚠️ | **编号 48 未使用**(跳号;不影响检索,勿补占)|
| 04-49 | ✅ 已落地 | 实例回收后首次访问的反馈与自愈(wake.html 过渡页) |
| 04-50 | ❓ | 会话过期自愈注入脚本(**已被 04-51 在传输层取代**,保留兜底) |
| 04-51 | 已落地并实测验证 | 实例侧 401 透明重放(含 SSE 自动重连) |
@@ -118,7 +118,7 @@
| 04-60 | ✅ 已实施并验证(服务器已生 | 设置面板分区改名:功能插件 → 功能管理 |
| 04-61 | ✅ 已实施并验证(服务器已生 | 插件管理页:官方插件列表加高 + 页面底部留白 200px |
| 04-62 | ✅ 已实施并验证(服务器已生 | 插件目录:缓存状态可见化 + 「重新拉取目录」按钮 |
| — | ⚠️ | **编号 63 未使用**(跳号;该号只出现在当日工作日志的「事故 63」里,**无档案**,勿补占)|␍␍␍␍␍
| — | ⚠️ | **编号 63 未使用**(跳号;该号只出现在当日工作日志的「事故 63」里,**无档案**,勿补占)|
| 04-64 | admin 侧已实施 | 接入 AnySearch 搜索 provider(admin 侧已实施;**待端到端确认 → 铺普通用户**) |
| 04-65 | ✅ 已部署并生效(服务器 ` | 功能插件启停与 web provider 配置联动(**已部署生效**:服务器 `lib/` 00:13 构建 → **00:15:23 重启即载入**,08:02 再载入;§7.3 第 3 条「anysearch 覆写 |
| 04-66 | ✅ 已实现、已验证、已部署 | 业务插件 P0 误报 → admin 显式信任(fail-closed + 逐条回显 + 留痕) |
@@ -144,20 +144,20 @@
| 04-86 | ✅ 已上线并端到端验证(后端 | ① 平台**所有**服务/文件 API 都是 `request.user.id` 语义(`desktop.ts` 头注释原文 "one user can never address another user's file |
| 04-87 | ✅ 已上线并端到端验证(后端 | **平台自建「模型设置」**(官方「设置 → 模型」页在平台环境**必然报错** ⇒ 弃用它):① 官方「模型」分区对**全角色(含 admin)**隐藏 —— 判据是**浏览器页面**的 loopback 判定(真实域 |
| 04-88 | ✅ 已修复并验证(源仓 `c | **内置 dsh 安装路径按序探测(修 P1 静默失效)**:平台**三处**把内置 dsh 目录写死成 `/usr/local/lib/node_modules/@deepseek-ai/dsh` —— 而 `npm |
| — | 🔍 | **档案 82–86 尚未登记进本表**(本轮发现;属别人 lane 故未代加):82 R2 管理面就地化|83 登录注册页对齐|84 内存配额口径统一|85 模型密钥开放给用户自配|86 admin 跨用户实例管理 + 两处改名。**待收口会话补** |␍␍␍␍␍
| — | 🧪 | `04-调整方案/poc/portal-entry/`:portal-entry 插件源码(v0.5.1)|␍␍␍␍␍
| 06 | 🔄 | **前端 UI 强制基线**:Token/布局/组件/交互/9 条已知坑 |␍␍␍␍␍
| 07 | ✅ | **实例 UI 分区登记表**:settings.section 的 id/order/label → 提供者 → 源码 → 可改性 + 定位套路(含"中文文案要同时搜 UTF-8 与 \uXXXX") |␍␍␍␍␍
| — | 🔍 | **档案 82–86 尚未登记进本表**(本轮发现;属别人 lane 故未代加):82 R2 管理面就地化|83 登录注册页对齐|84 内存配额口径统一|85 模型密钥开放给用户自配|86 admin 跨用户实例管理 + 两处改名。**待收口会话补** |
| — | 🧪 | `04-调整方案/poc/portal-entry/`:portal-entry 插件源码(v0.5.1)|
| 06 | 🔄 | **前端 UI 强制基线**:Token/布局/组件/交互/9 条已知坑 |
| 07 | ✅ | **实例 UI 分区登记表**:settings.section 的 id/order/label → 提供者 → 源码 → 可改性 + 定位套路(含"中文文案要同时搜 UTF-8 与 \uXXXX") |
| 04-89 | 🔄 进行中(L2 机制级已验 | **对话内文件预览**:采纳官方推荐库现成插件 `@softspark/dsh-file-preview`(65 KB,包住官方 `openWorkspacePath` 接管"点文件"手势;兼容预检 ok、已启用、L5 |
| 04-103 | 📋 | **客户端安装 + 覆盖网络互联 · 可行性评估**(规划态 · 未实施):判定 ✅ 可行,且现有架构已给出约 80% 形状(`soft` 档实例=裸子进程 ⇒ 无需 root;Worker 拨出式反向隧道 ⇒ **节点本来就不需要公网 IP**);缺口 4 条(客户端运行时落点 · 节点身份 · **信任模型反转** · 分发与版本矩阵);形态三档已按用户口径收窄为**单机自用**(B 档);6 步落地、每步可单独回滚。⚠️ 真正硬阻塞点修正 = **平台调用层**(Windows 下裸名 `spawn` ENOENT / `.cmd` EINVAL),非 dsh 运行时 |
| 04-104 | 📋 | **覆盖网络 · 全球架构复盘**(规划态 · 未实施):五层架构(控制面 / 会合 / 骨干·中继 / 数据面 / 观测)+ 12 条必须内建特性 + **10 类风暴类型学** + 流量组织五原则 + 流量预算表 + 7 步落地顺序。🔑 三句结论:控制面与数据面**彻底分离** · 失败不要变成重试(退避+抖动+判死) · 放大点必须前置治理。🟢 范围声明:**只做技术实现,跨境数据合规由使用者自负**(⛔ 不再作前置条件或上抛项) |
| 04-105 | 📋 | **覆盖网络 · 骨干层方案**(规划态 · 未实施):多中心骨干(≤10–20 成员、全互联;每节点只连 1–2 个骨干)+ 选择性加入。三条硬约束:**接入 / 成员 / 可见三分离** · **骨干资格只能控制面签发**(否则出现第二权威源、骨干沦为公网跳板) · **骨干不得被默认征用**(命中 R5)。⚠️ §7 唯一待拍板 = 骨干服务范围(A 只服务自己名下设备 / B 服务全网;**倾向 A→B 渐进**) |
| 04-106 | 📋 | **覆盖网络 · 百台规模推演 v2**(规划态 · 纯文字推演):⚠️ 含**前提级纠错**(v1 作废)—— 用户纠正「**单机用也要互联**」;错因 = **把「租户维度收窄」误当成「网络维度收窄」**。100 台异构画像:L1 10 / L2 30 / **L3 需中继 40–55** ⇒ **中继按 45% 设计、55% 留余量**(⛔ 不用同构假设的 15%);**必须补 443/TCP 兜底**(否则企业/校园网整类进不来);**L1 自动升格为中继候选**;仍不建全互联(4,950 vs 100) |
| 04-107 | 📋 | **覆盖网络 · 千台全场景推演**(规划态 · 纯文字推演):1000 台异构 × 11 场景 + **流量预算总表** + 瓶颈排序。🔥 **第一瓶颈 = presence**(1000 人大房 ≈ **16,700 次/秒**,是其消息扇出的 16 倍;普通房合计 8,200/s);💰 **最大成本杠杆 = 游戏服放 L1**(放家宽 ⇒ 中继 **600 Mbps 常驻**、峰值 1.2–2.0 Gbps;放公网 IP ⇒ **0**);游戏的真正门槛是 **jitter < 20 ms** 而非带宽;**agent 为本方案独有放大源** |
| 04-108 | 📋 | **覆盖网络 · 游戏专项(MMORPG 2D/2.5D · MUD · 传奇类)**(规划态 · 未实施):⚠️ 判定**由「不合适」修正为「最匹配」**(该类游戏天生服务端权威 + tick 驱动 + **AOI 九宫格** + 分区/分线;每玩家仅数 KB/s~数十 KB/s、几百 ms 无感)—— 原"不合适"只针对 3D 大世界强实时竞技。⭐ 核心简化:**玩家之间不需要互联 ⇒ 中继容量按「服数」算、不按「玩家数」算**。含 12 条设计细节 + 参考方案(Evennia/Skynet/Pomelo/Nakama…)+ 8 条反模式 |
| 04-109 | 📋 | **覆盖网络 · 调研:游戏网络特征与单房间群聊上限**(规划态 · 全网调研稿,数值均标来源):游戏侧每玩家 **2–20 KB/s**、同步 5–20 Hz、**jitter > 20 ms 即 desync**;群聊侧 **Telegram 20 万 / WhatsApp 2,048 / Discord 单频道 100K+**;🔑 **上限不是「人数」而是「扇出预算」**,且 **presence(N²) 比消息更早爆**(1000 人房 ≈16,700/s)。**本方案实际上限 = min(扇出预算, presence 预算, agent 预算)** |
| 04-110 | 📋 | **覆盖网络 · 答疑(群聊+agent / 备份 / 迁移提速 / 传输保密)**(规划态 · 未实施):① 群聊=**应用层**的事(覆盖网络只给「可达」);**agent 四条硬约束**(⛔ 禁止 agent 直接触发 agent);② ✅ **备份主层用对象存储**,覆盖网络只当**搬运通道与第三副本**(P2P 副本无 SLA、可误删,不适合当存档);③ 迁移 7 条按收益排,**最大一招 = 只搬不可再生(46.3 MB vs 2.9 GiB ≈ 64×)**;④ 保密 = 三层加密 + 元数据保护,**最大缺口 = 身份(共享令牌 → 一机一钥)** |
| 04-111 | 📋 | **覆盖网络 · 补遗与参考方案**(规划态 · 未实施):互联游戏 ✅ 但**由游戏形态决定**(锁步/回合/异步最友好;FPS/MOBA 64+ ❌ 不合适,P2P 无法反作弊);补遗 **24 条**(身份与账户 / 寻址与名字 / 接入与可见性 / 自检与选路 / 流量与公平 / 移动端弱网 / 升级版本自愈 / 可观测)+ 10 个能力域的参考方案 + **反模式 12 条**。⭐ 最划算的架构复用:**群聊房间与游戏对局是同一个模型**(一次投资,群聊 + 游戏 + 协作 + 看板共用) |
| 04-103 | 📋 | **客户端安装 + 覆盖网络互联 · 可行性评估**(规划态 · 未实施):判定 ✅ 可行,且现有架构已给出约 80% 形状(`soft` 档实例=裸子进程 ⇒ 无需 root;Worker 拨出式反向隧道 ⇒ **节点本来就不需要公网 IP**);缺口 4 条(客户端运行时落点 · 节点身份 · **信任模型反转** · 分发与版本矩阵);形态三档已按用户口径收窄为**单机自用**(B 档);6 步落地、每步可单独回滚。⚠️ 真正硬阻塞点修正 = **平台调用层**(Windows 下裸名 `spawn` ENOENT / `.cmd` EINVAL),非 dsh 运行时 |
| 04-104 | 📋 | **覆盖网络 · 全球架构复盘**(规划态 · 未实施):五层架构(控制面 / 会合 / 骨干·中继 / 数据面 / 观测)+ 12 条必须内建特性 + **10 类风暴类型学** + 流量组织五原则 + 流量预算表 + 7 步落地顺序。🔑 三句结论:控制面与数据面**彻底分离** · 失败不要变成重试(退避+抖动+判死) · 放大点必须前置治理。🟢 范围声明:**只做技术实现,跨境数据合规由使用者自负**(⛔ 不再作前置条件或上抛项) |
| 04-105 | 📋 | **覆盖网络 · 骨干层方案**(规划态 · 未实施):多中心骨干(≤10–20 成员、全互联;每节点只连 1–2 个骨干)+ 选择性加入。三条硬约束:**接入 / 成员 / 可见三分离** · **骨干资格只能控制面签发**(否则出现第二权威源、骨干沦为公网跳板) · **骨干不得被默认征用**(命中 R5)。⚠️ §7 唯一待拍板 = 骨干服务范围(A 只服务自己名下设备 / B 服务全网;**倾向 A→B 渐进**) |
| 04-106 | 📋 | **覆盖网络 · 百台规模推演 v2**(规划态 · 纯文字推演):⚠️ 含**前提级纠错**(v1 作废)—— 用户纠正「**单机用也要互联**」;错因 = **把「租户维度收窄」误当成「网络维度收窄」**。100 台异构画像:L1 10 / L2 30 / **L3 需中继 40–55** ⇒ **中继按 45% 设计、55% 留余量**(⛔ 不用同构假设的 15%);**必须补 443/TCP 兜底**(否则企业/校园网整类进不来);**L1 自动升格为中继候选**;仍不建全互联(4,950 vs 100) |
| 04-107 | 📋 | **覆盖网络 · 千台全场景推演**(规划态 · 纯文字推演):1000 台异构 × 11 场景 + **流量预算总表** + 瓶颈排序。🔥 **第一瓶颈 = presence**(1000 人大房 ≈ **16,700 次/秒**,是其消息扇出的 16 倍;普通房合计 8,200/s);💰 **最大成本杠杆 = 游戏服放 L1**(放家宽 ⇒ 中继 **600 Mbps 常驻**、峰值 1.2–2.0 Gbps;放公网 IP ⇒ **0**);游戏的真正门槛是 **jitter < 20 ms** 而非带宽;**agent 为本方案独有放大源** |
| 04-108 | 📋 | **覆盖网络 · 游戏专项(MMORPG 2D/2.5D · MUD · 传奇类)**(规划态 · 未实施):⚠️ 判定**由「不合适」修正为「最匹配」**(该类游戏天生服务端权威 + tick 驱动 + **AOI 九宫格** + 分区/分线;每玩家仅数 KB/s~数十 KB/s、几百 ms 无感)—— 原"不合适"只针对 3D 大世界强实时竞技。⭐ 核心简化:**玩家之间不需要互联 ⇒ 中继容量按「服数」算、不按「玩家数」算**。含 12 条设计细节 + 参考方案(Evennia/Skynet/Pomelo/Nakama…)+ 8 条反模式 |
| 04-109 | 📋 | **覆盖网络 · 调研:游戏网络特征与单房间群聊上限**(规划态 · 全网调研稿,数值均标来源):游戏侧每玩家 **2–20 KB/s**、同步 5–20 Hz、**jitter > 20 ms 即 desync**;群聊侧 **Telegram 20 万 / WhatsApp 2,048 / Discord 单频道 100K+**;🔑 **上限不是「人数」而是「扇出预算」**,且 **presence(N²) 比消息更早爆**(1000 人房 ≈16,700/s)。**本方案实际上限 = min(扇出预算, presence 预算, agent 预算)** |
| 04-110 | 📋 | **覆盖网络 · 答疑(群聊+agent / 备份 / 迁移提速 / 传输保密)**(规划态 · 未实施):① 群聊=**应用层**的事(覆盖网络只给「可达」);**agent 四条硬约束**(⛔ 禁止 agent 直接触发 agent);② ✅ **备份主层用对象存储**,覆盖网络只当**搬运通道与第三副本**(P2P 副本无 SLA、可误删,不适合当存档);③ 迁移 7 条按收益排,**最大一招 = 只搬不可再生(46.3 MB vs 2.9 GiB ≈ 64×)**;④ 保密 = 三层加密 + 元数据保护,**最大缺口 = 身份(共享令牌 → 一机一钥)** |
| 04-111 | 📋 | **覆盖网络 · 补遗与参考方案**(规划态 · 未实施):互联游戏 ✅ 但**由游戏形态决定**(锁步/回合/异步最友好;FPS/MOBA 64+ ❌ 不合适,P2P 无法反作弊);补遗 **24 条**(身份与账户 / 寻址与名字 / 接入与可见性 / 自检与选路 / 流量与公平 / 移动端弱网 / 升级版本自愈 / 可观测)+ 10 个能力域的参考方案 + **反模式 12 条**。⭐ 最划算的架构复用:**群聊房间与游戏对局是同一个模型**(一次投资,群聊 + 游戏 + 协作 + 看板共用) |
| 04-112 | 📋 | **覆盖网络 · 九大瓶颈落地方案**(规划态 · 未实施):把 107 的九大瓶颈逐个给成**可执行做法 + 验收判据**(含 Slack / SCCM·BranchCache·Delivery Optimization 官方照抄点)。🎯 **只做三件 = presence 改造 + 游戏服放 L1 + 块级内容寻址分发**(覆盖最大三个瓶颈,且**都不需要改传输协议**)。🔑 分水岭:**必须做「块级」内容寻址,⛔ 别做「包级」**(包级 = 版本一发所有 peer 源失效 ⇒ 正是全量重拉风暴的成因) |
| 04-113 | 📋 | **覆盖网络 · 传输方案取舍(开放端口 vs 自研 relay)**(决策稿):逐条对比 5 种传输形态,定下**自研 relay + 回环监听 + 中继切流**路线;⛔ P4(SSH 版中继 / 32023)判**不做** |
| 04-114 | 📋 | **覆盖网络 · 应用场景推演完成度 & 方案待完善清单**(检查稿):逐场景打勾哪些已推演、哪些仍缺;作为后续补遗的取数底稿 |
@@ -171,75 +171,75 @@
| 04-122 | 📋 | **guest 迁移(w-47 → w-106)与共享重建方案**:存量 guest 落 106 的搬运步骤 + 共享面重建判据 |
| 04-123 | 📋 | **方案规划方法 —— 从覆盖网络线提炼**:把本线的规划手法沉淀成**可复用方法论**(判据优先 / 单一来源 / 假绿识别) |
| 04-124 | 🔍 | **文档无效信息审计报告**:对文档库做「无效信息」体检,输出应删/应改/应合并清单(**报告,未执行**) |
| 04-125 | 📋 | **会话接续机制 · 问题复盘与修复**:复盘「接续为何断链/为何空转」,产出修复项(间隔纪律 = 收口 + 2~5 分钟) |
| 04-125 | 📋 | **会话接续机制 · 问题复盘与修复**:复盘「接续为何断链/为何空转」,产出修复项(**排期两条铁律** = ① 首个/唯一接续棒 = 收口 + **5~8 分钟**〔原记 2~5,2026-09-18 用户更正〕② **同一时刻只挂一个接续棒**;规则实体见技能 `dsh-auto-handoff-chain §3.1.1`) |
| 04-126 | 🔄 | **会话接续规范:token 超限后如何无损继续**:接续六件套 prompt 骨架与登记门禁的规范文本 |
| 04-127 | 📋 | **DSH 平台客户端化部署方案 —— 单机自用**:B 档(单机自用)形态下的客户端化部署路径;⚠️ 真正硬阻塞 = 平台调用层(Windows 裸名 `spawn` ENOENT) |
| 04-128 | 📋 | **DSH 桌面客户端开发方案 —— 基于官方 Electron 壳迭代**(待评审 · 只做规划不含代码):复用官方壳 vs 自建的取舍与分发/版本矩阵 |
| — | 🗄 | `archive/dsh-improvement-plan-20260909-full.md`:拆分前 19 章 |␍␍␍␍␍
| — | ✅ | `skills/dsh-change-workflow/SKILL.md`:六阶段 + **红线 R1-R11**(工作副本在本机 `.workbuddy/skills/`)|␍␍␍␍␍
| — | ✅ | `skills/dsh-decision-method/SKILL.md`:**改造决策方法论**(用户有效决策 U1-U12 / AI 有效决策 A1-A13 / 反例 X1-X8 + 确认最优解十问 + 交互 UI 专项清单)(工作副本在本机 `.workbuddy/skills/`)|␍␍␍␍␍
| — | ✅ | `skills/dsh-feature-first/SKILL.md`:**功能优先协作协议**(用户只提功能卡 4 问 · AI 自主决策 9 类白名单 · 只上抛功能语义分叉与红线门禁 · 报障闭环前置 · 交付回执格式)(工作副本在本机 `.workbuddy/skills/`)|␍␍␍␍␍
| — | ✅ | `skills/dsh-opensource-release/SKILL.md`:**开源导出与版本迭代**(五条硬规则 R-O1–R-O5 · 脱敏映射表唯一口径 · 分层授权与其 MIT 法律前提 · 迭代发布 SOP · 验证六件套 · 8 条实测坑)(工作副本在本机 `.workbuddy/skills/`)|␍␍␍
| — | ✅ | `skills/dsh-plugin-diagnose/SKILL.md`:**业务插件故障诊断**(三层归属 host / client / 网关·原生绑定 · 三把尺子 inject 差集 / glibc 直测 / 产物插探针 · 8 条实测坑)(工作副本在本机 `.workbuddy/skills/`)|␍␍␍␍␍
| — | 🗄 | `archive/dsh-improvement-plan-20260909-full.md`:拆分前 19 章 |
| — | ✅ | `skills/dsh-change-workflow/SKILL.md`:六阶段 + **红线 R1-R11**(工作副本在本机 `.workbuddy/skills/`)|
| — | ✅ | `skills/dsh-decision-method/SKILL.md`:**改造决策方法论**(用户有效决策 U1-U12 / AI 有效决策 A1-A13 / 反例 X1-X8 + 确认最优解十问 + 交互 UI 专项清单)(工作副本在本机 `.workbuddy/skills/`)|
| — | ✅ | `skills/dsh-feature-first/SKILL.md`:**功能优先协作协议**(用户只提功能卡 4 问 · AI 自主决策 9 类白名单 · 只上抛功能语义分叉与红线门禁 · 报障闭环前置 · 交付回执格式)(工作副本在本机 `.workbuddy/skills/`)|
| — | ✅ | `skills/dsh-opensource-release/SKILL.md`:**开源导出与版本迭代**(五条硬规则 R-O1–R-O5 · 脱敏映射表唯一口径 · 分层授权与其 MIT 法律前提 · 迭代发布 SOP · 验证六件套 · 8 条实测坑)(工作副本在本机 `.workbuddy/skills/`)|
| — | ✅ | `skills/dsh-plugin-diagnose/SKILL.md`:**业务插件故障诊断**(三层归属 host / client / 网关·原生绑定 · 三把尺子 inject 差集 / glibc 直测 / 产物插探针 · 8 条实测坑)(工作副本在本机 `.workbuddy/skills/`)|
| — | ✅ | `skills/dsh-env-bootstrap/SKILL.md`:**环境引导 / 迁移**(常驻规则快照 `references/常驻规则-快照.md` + `scripts/resident-rules.py` 的 `--check / --inject / --env-check / --snapshot`;**权威方向单向**:CODEBUDDY.md 为权威、快照为副本)(工作副本在本机 `.workbuddy/skills/`)|
| — | ✅ | `skills/dsh-auto-handoff-chain/SKILL.md`:**多棒自动接力编排法**(规划棒 ↔ 执行棒交替 · 一次性 automation 链条 · 六件套 prompt 骨架 · 登记门禁 · 五条实测防护 · 断链 / 双开 / once 不转完成态 等 · `scripts/chain_report.py` 复跑)(工作副本在本机 `.workbuddy/skills/`)|
␍␍␍␍␍
> **待办与优先级不在本文件维护**(单一来源):**未规划**的见 `03-路线图与待办.md` §二;**已规划待执行**的见 `交接单/README.md` §一。␍␍␍␍␍
␍␍␍␍␍
---␍␍␍␍␍
␍␍␍␍␍
## 三、变化与更新状态:怎么追␍␍␍␍␍
␍␍␍␍␍
| 手段 | 怎么做 |␍␍␍␍␍
|---|---|␍␍␍␍␍
| **双端对账** | `bash scripts/docs-sync-check.sh`(一致/不一致/仅本地/仅服务器 + 退出码 0=全绿)|␍␍␍␍␍
| **机读清单** | `python3 scripts/docs-manifest.py` → `docs-manifest.json`(状态/日期/tier/引用数)|␍␍␍␍␍
| **质量审计** | `python3 scripts/docs-audit.py`(9 类判定;编号冲突与悬空引用会返回非 0)|␍␍␍␍␍
| **代码侧变更** | `git -C /opt/dshs log --oneline`(平台代码是 git 仓库,比文档更细)|␍␍␍␍␍
| **文档侧变更** | 本目录是 git 仓库:`git log --oneline`;服务器镜像无 .git,靠 scp 单向推送 |␍␍␍␍␍
| 时间线溯源 | `03-路线图 §已完成` + 各档案 commit 列 + `archive/` 全文 |␍␍␍␍␍
␍␍␍␍␍
---␍␍␍␍␍
␍␍␍␍␍
## 四、归档与工作区残留␍␍␍␍␍
␍␍␍␍␍
| 文件 | 位置 | 状态 |␍␍␍␍␍
|---|---|---|␍␍␍␍␍
| **已完成的交接单**(规划/执行分离的单子)| `archive/交接单-已完成/` | **T02**(文档库收尾:37/38 编号消歧 + INDEX 瘦身 28,809→7,468)|**T03**(7 插件整合投放:`dsh-plugin-mcn-suite` 上传候选池 + **guest 启用成功**,实例重启探活通过)|**T04**(并发治理:commit 常态化 + 服务器侧操作锁 `/opt/dsh/state/.op-lock` + 权限 700/600 + 代码库 `ebe8075`→`06e63ac`)|**T05**(插件兼容性预检:`04-71` 落地 + 档案 66 源码回填)— 均 2026-09-12 完成|**T06**(平台自建「模型设置」:`04-87` 落地 + 插件 0.3.11 铺发 + 迁移 V6 + 官方模型分区全角色隐藏;验收四件事全绿,顺手修角色补丁整文件覆盖与陈旧断言两颗雷)— 2026-09-13 完成|**T07**(内置 dsh 安装路径按序探测:`04-88` 落地;**三处**写死路径(第 3 处是提出方漏的)改为按序探测 + 降级留痕;测试服 `test106` 三种姿势验证通过)— 2026-09-14 完成 |␍␍␍␍␍|**T09–T21**(2026-09-17 从工作区根批量入仓:覆盖网络线 13 份交接单 —— 含「落地执行 / 网抽象与地址规划 R6 / relay R2-R4 / 443 兜底 / 中继失败切流 / 切流冷却语义 / presence 在线态 / 一机一钥与信任根 / 参数表与观测 / 检测时延与 deadline / 最小形态真机批次 / 观测口径与在册缺陷 / 在册收尾」;⚠️ 均为**已完成单的归档副本**,若其中仍有未完成项需在 `交接单/` 另开新单)
| 三份工作区草案(插件管理面 / VoxEMW×2)| `archive/工作区草案/` | 已归档防丢;插件草案 v5 被档案 16 取代 |␍␍␍␍␍
| `scripts/docs-{sync-check.sh,audit.py,manifest.py}` | 本库 `scripts/` | 随库分发,**在用** |␍␍␍␍␍
| `.workbuddy/memory/YYYY-MM-DD.md` | 工作区 `.workbuddy/` | 过程日志,不入库 |␍␍␍␍␍
| `*.bak*` | 各处 | 已纳入 `.gitignore`;**服务器侧勿生成结尾带点号的备份名**(Windows 落不了地)|␍␍␍␍␍
␍␍␍␍␍
---␍␍␍␍␍
␍␍␍␍␍
## 五、仓库与同步拓扑␍␍␍␍␍
␍␍␍␍␍
| 资产 | 路径 | 仓库 / 状态 |␍␍␍␍␍
|---|---|---|␍␍␍␍␍
| **平台代码** | 服务器 `/opt/dshs`(git,上游 fork,**浅克隆**)| `git@work.alotbuy.com:maogeigei/dsh_shenxian.git` — `master @ ebe8075` ✅ 已推送 |␍␍␍␍␍
| **改造文档** | 本机 `dsh-server-docs/`(**本目录即工作树**)↔ 服务器 `/opt/dsh/docs`(镜像,root 600)| `git@work.alotbuy.com:maogeigei/dsh_shenxian_doc.git` — `main @ 43e4ae9` ✅ 已推送 |␍␍␍␍␍
| 上游基线 | `上游骨架仓库(已按要求不再具名)`(123 提交,HEAD `04bc832`)| 本机 remote 名 `upstream` |␍␍␍␍␍
| 本机代码副本 | `D:\github\dsh_shenxian` | 上述代码仓库的 clone |␍␍␍␍␍
␍␍␍␍␍
**约定**␍␍␍␍␍
1. **推送只能从本机执行**:服务器无 Gitea 凭据 → 服务器改码后 `git bundle`(区间)→ 本机 fetch/merge → push。␍␍␍␍␍
2. **同步链路(文档)**:编辑本目录 → `docs-sync-check.sh` 对账 → scp 到 `/opt/dsh/docs`(`chmod 600`,README 保持 644)→ 复跑脚本确认全绿。␍␍␍␍␍
3. **权限**:服务器 docs 树 root 600(README 644);`/opt/dsh` 为 `drwx------ root`(用户 uid 读不到,需先暂存到用户 home 再安装)。␍␍␍␍␍
4. **行尾**:本机 git 的 system 级 `core.autocrlf=true` 会把工作树写成 CRLF,而仓库 blob 是 **LF** → **scp 单文件前看 `file` 输出**;脚本类必须 LF(否则 shebang 带 `\r` 执行失败)。␍␍␍␍␍
␍␍␍␍␍
---␍␍␍␍␍
␍␍␍␍␍
## 六、新增文档的落位规则(约定)␍␍␍␍␍
␍␍␍␍␍
1. **功能类改造** → `04-调整方案/` 新建档案,**编号递增**(**复跑取号,勿写死**:`ls 04-调整方案/ | sort -n | tail -1`;**63 为空号,勿补占**);模板:目标 → 改动 → 验证 → 红线遵守 → 回滚。␍␍␍␍␍
2. **规范 / 基线类**(跨页面长期生效)→ 根级编号文档(`01`~`06`),不入 `04-调整方案/`;入库时登记 §一 场景表 + §二 清单。␍␍␍␍␍
3. **排障记录** → 追加 `02-运维手册.md` 排障小节。␍␍␍␍␍
4. **状态 / 待办变化** → 更新 `03-路线图与待办.md` 与本文件 §二。␍␍␍␍␍
5. **保留原章节编号**,便于与 `archive/` 完整版对查。␍␍␍␍␍
6. **同步**:见 §五.2(对账 → scp → chmod → 复跑)。␍␍␍␍␍
7. **UI 规范优先**:涉及前端改动**先读 `06-工作台UI规范.md`**;沉淀了新"为什么"要回写源侧并回拷 `06`。␍␍␍␍␍
8. **规划/执行分离的任务单** → `交接单/`(约定见其 `README.md`):规划会话产出单子,执行会话按单开工(**不读规划会话上下文**);完成后 `git mv` 入 `archive/交接单-已完成/` 并在 §四 加行。␍␍␍␍␍
| — | ✅ | `skills/dsh-auto-handoff-chain/SKILL.md`:**多棒自动接力编排法**(规划棒 ↔ 执行棒交替 · 一次性 automation 链条 · 六件套 prompt 骨架 · 登记门禁 · **排期两条铁律 §3.1.1**〔首个/唯一接续棒 = 收口 + 5~8 分钟 · 同一时刻只挂一个接续棒〕· 六条实测防护 · 断链 / 双开 / once 不转完成态 / 预登记队列 等 · `scripts/chain_report.py` 复跑)(工作副本在本机 `.workbuddy/skills/`)|
> **待办与优先级不在本文件维护**(单一来源):**未规划**的见 `03-路线图与待办.md` §二;**已规划待执行**的见 `交接单/README.md` §一。
---
## 三、变化与更新状态:怎么追
| 手段 | 怎么做 |
|---|---|
| **双端对账** | `bash scripts/docs-sync-check.sh`(一致/不一致/仅本地/仅服务器 + 退出码 0=全绿)|
| **机读清单** | `python3 scripts/docs-manifest.py` → `docs-manifest.json`(状态/日期/tier/引用数)|
| **质量审计** | `python3 scripts/docs-audit.py`(9 类判定;编号冲突与悬空引用会返回非 0)|
| **代码侧变更** | `git -C /opt/dshs log --oneline`(平台代码是 git 仓库,比文档更细)|
| **文档侧变更** | 本目录是 git 仓库:`git log --oneline`;服务器镜像无 .git,靠 scp 单向推送 |
| 时间线溯源 | `03-路线图 §已完成` + 各档案 commit 列 + `archive/` 全文 |
---
## 四、归档与工作区残留
| 文件 | 位置 | 状态 |
|---|---|---|
| **已完成的交接单**(规划/执行分离的单子)| `archive/交接单-已完成/` | **T02**(文档库收尾:37/38 编号消歧 + INDEX 瘦身 28,809→7,468)|**T03**(7 插件整合投放:`dsh-plugin-mcn-suite` 上传候选池 + **guest 启用成功**,实例重启探活通过)|**T04**(并发治理:commit 常态化 + 服务器侧操作锁 `/opt/dsh/state/.op-lock` + 权限 700/600 + 代码库 `ebe8075`→`06e63ac`)|**T05**(插件兼容性预检:`04-71` 落地 + 档案 66 源码回填)— 均 2026-09-12 完成|**T06**(平台自建「模型设置」:`04-87` 落地 + 插件 0.3.11 铺发 + 迁移 V6 + 官方模型分区全角色隐藏;验收四件事全绿,顺手修角色补丁整文件覆盖与陈旧断言两颗雷)— 2026-09-13 完成|**T07**(内置 dsh 安装路径按序探测:`04-88` 落地;**三处**写死路径(第 3 处是提出方漏的)改为按序探测 + 降级留痕;测试服 `test106` 三种姿势验证通过)— 2026-09-14 完成 |␍␍␍␍␍|**T09–T21**(2026-09-17 从工作区根批量入仓:覆盖网络线 13 份交接单 —— 含「落地执行 / 网抽象与地址规划 R6 / relay R2-R4 / 443 兜底 / 中继失败切流 / 切流冷却语义 / presence 在线态 / 一机一钥与信任根 / 参数表与观测 / 检测时延与 deadline / 最小形态真机批次 / 观测口径与在册缺陷 / 在册收尾」;⚠️ 均为**已完成单的归档副本**,若其中仍有未完成项需在 `交接单/` 另开新单)
| 三份工作区草案(插件管理面 / VoxEMW×2)| `archive/工作区草案/` | 已归档防丢;插件草案 v5 被档案 16 取代 |
| `scripts/docs-{sync-check.sh,audit.py,manifest.py}` | 本库 `scripts/` | 随库分发,**在用** |
| `.workbuddy/memory/YYYY-MM-DD.md` | 工作区 `.workbuddy/` | 过程日志,不入库 |
| `*.bak*` | 各处 | 已纳入 `.gitignore`;**服务器侧勿生成结尾带点号的备份名**(Windows 落不了地)|
---
## 五、仓库与同步拓扑
| 资产 | 路径 | 仓库 / 状态 |
|---|---|---|
| **平台代码** | 服务器 `/opt/dshs`(git,上游 fork,**浅克隆**)| `git@work.alotbuy.com:maogeigei/dsh_shenxian.git` — `master @ ebe8075` ✅ 已推送 |
| **改造文档** | 本机 `dsh-server-docs/`(**本目录即工作树**)↔ 服务器 `/opt/dsh/docs`(镜像,root 600)| `git@work.alotbuy.com:maogeigei/dsh_shenxian_doc.git` — `main @ 43e4ae9` ✅ 已推送 |
| 上游基线 | `上游骨架仓库(已按要求不再具名)`(123 提交,HEAD `04bc832`)| 本机 remote 名 `upstream` |
| 本机代码副本 | `D:\github\dsh_shenxian` | 上述代码仓库的 clone |
**约定**
1. **推送只能从本机执行**:服务器无 Gitea 凭据 → 服务器改码后 `git bundle`(区间)→ 本机 fetch/merge → push。
2. **同步链路(文档)**:编辑本目录 → `docs-sync-check.sh` 对账 → scp 到 `/opt/dsh/docs`(`chmod 600`,README 保持 644)→ 复跑脚本确认全绿。
3. **权限**:服务器 docs 树 root 600(README 644);`/opt/dsh` 为 `drwx------ root`(用户 uid 读不到,需先暂存到用户 home 再安装)。
4. **行尾**:本机 git 的 system 级 `core.autocrlf=true` 会把工作树写成 CRLF,而仓库 blob 是 **LF** → **scp 单文件前看 `file` 输出**;脚本类必须 LF(否则 shebang 带 `\r` 执行失败)。
---
## 六、新增文档的落位规则(约定)
1. **功能类改造** → `04-调整方案/` 新建档案,**编号递增**(**复跑取号,勿写死**:`ls 04-调整方案/ | sort -n | tail -1`;**63 为空号,勿补占**);模板:目标 → 改动 → 验证 → 红线遵守 → 回滚。
2. **规范 / 基线类**(跨页面长期生效)→ 根级编号文档(`01`~`06`),不入 `04-调整方案/`;入库时登记 §一 场景表 + §二 清单。
3. **排障记录** → 追加 `02-运维手册.md` 排障小节。
4. **状态 / 待办变化** → 更新 `03-路线图与待办.md` 与本文件 §二。
5. **保留原章节编号**,便于与 `archive/` 完整版对查。
6. **同步**:见 §五.2(对账 → scp → chmod → 复跑)。
7. **UI 规范优先**:涉及前端改动**先读 `06-工作台UI规范.md`**;沉淀了新"为什么"要回写源侧并回拷 `06`。
8. **规划/执行分离的任务单** → `交接单/`(约定见其 `README.md`):规划会话产出单子,执行会话按单开工(**不读规划会话上下文**);完成后 `git mv` 入 `archive/交接单-已完成/` 并在 §四 加行。
| 04-90 | 🔄 进行中(阶段 1 通过 | > 目标版本 = **`0.1.5-rc.1`**(npm `latest`;用户材料里插件 peer 也是 `^0.1.5-rc.1`,三方自洽)。 |
| 04-91 | ✅ 已上线(`busines | **「模型设置」页复刻官方交互**:换行根因是 **4 列表格 auto 列宽** ⇒ 改官方**卡片行**(两侧 nowrap)+「新增」改**两步式**(两个虚线按钮 → 卡片主字段只剩「API 密钥」);顺修「由 |