chore(仓库对齐): 文档库结构治理 + IM/插件线落地
build / build-and-scan (push) Canceled after 0s

文档库:目录改为编号制(01-规范/02-架构设计/03-数据库/04-调整方案/
05-交接单/06-ops/07-scripts/08-skills/09-archive),顶层散文件归入 01-规范/;
INDEX.md 与 docs-manifest.json 重刷(档案 146 篇);旧目录名引用全量对齐。

IM 线:src/im/**(SDK / hub / store / presence / ws / gateway-token)、
src/web/routes/im.ts、src/db/plugin-data/**、src/supervisor/plugin-assembly.ts
及对应 test/**。

插件线:poc/{im-agent-bridge,im-connection-gateway,im-conversation-tabs,
business-plugins-im,carbon-mcp-probe}、src/web/routes/{sessions,overlay-device}.ts、
src/net/relay/{device-grant,instance-credential}.ts。

仓库卫生:清出 40 个历史误入库 / 已改名文件(34 个交接单归档 + 6 个旧结构,
本地均有副本);dsh-server-docs/.gitignore 补 tmp/;交接单不入库(政策)。
This commit is contained in:
admin committed 2026-09-24 07:25:16 +08:00
1 parent 3d8f50e366
commit e6207aa691
239 files changed
+34477 -14633

No files matched your search

+107 -89
View File
@@ -2,8 +2,8 @@
> **首读 `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`)。域名 `ai1net.com`(旧域 `alotbuy.com` 自 2026-09-19 仅作 301 过渡装置)。
> **对账**:`bash 07-scripts/docs-sync-check.sh`(退出码 0 = 全绿)。
> **最后核对**:2026-09-12 — **篇数与规模不在此写死**:本库由多会话并行改动,绝对值数十分钟即失效(同日实测 83 → 85 → 87,3 次作废);**一律以 `python3 07-scripts/docs-manifest.py` 复跑结果为准**。代码 HEAD 看服务器:`git -C /opt/dshs log -1`(最后核对值 `ebe8075`)。域名 `ai1net.com`(旧域 `alotbuy.com` 自 2026-09-19 仅作 301 过渡装置)。
---
@@ -13,22 +13,25 @@
|---|---|
| **访问入口(当前域名)** | 门户 `https://ai1net.com`;用户实例 `https://<用户名>.ai1net.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-O14(源仓库只读 / 探针 0 命中 / 去插件 / 不带文档与 skill / **双轨授权:AGPL-3.0 原样 + 商业轨独立文件**)+ 脱敏映射表 + **迭代 SOP** + 验证七件套 · 多远端推送(GitHub + CNB);工作根在本机 `E:\ProgramData\AI技能\dsh-ai1net-github\` |
| **排查业务插件故障(没 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 骨架 + 登记门禁 + 六条实测防护 + **排期两条铁律**(首个/唯一接续棒 = 收口 + 5~8 分钟 · 同一时刻只挂一个接续棒) + 复跑脚本 `scripts/chain_report.py` |
| **排查线上运行问题 / 事后溯源(跨机日志)** | `scripts/dshlog.mjs`(代码仓):`collect` 拉取归档 → `q` 查询 / `timeline` 时间线 / `watch` 巡检;用法与实测基线见 **`04-调整方案/129-日志采集与巡检-方案C实现.md`** |
| 看还有什么没做完 | `03-路线图与待办.md` §二 | **`交接单/README.md` §一**(已规划待执行) |
| **改前端页面(强制基线)** | **`06-工作台UI规范.md`** |
| **改实例 UI 分区(设置面板)** | **`07-实例UI分区登记表.md`**(哪个包提供 / 源码在哪 / 能不能改)+ `06-工作台UI规范.md` |
| 理解架构 / 多租户隔离 | `01-规范/01-规划与架构.md`(一~五、九、十三) | `09-archive/` 全文 |
| 日常运维(重启/备份/token/KEY/排障) | `01-规范/02-运维手册.md` | `01-规范/03-路线图与待办.md` |
| **做一次平台改造(完整流程)** | **`08-skills/dsh-change-workflow/SKILL.md`**:六阶段 + **红线 R1-R11** + 档案模板 + 并行调度协议 + **详情已拆到 `references/`(9 档)** |
| **开源导出 / 发新版本** | **`08-skills/dsh-opensource-release/SKILL.md`**:硬规则 R-O1–R-O14(源仓库只读 / 探针 0 命中 / 去插件 / 不带文档与 skill / **双轨授权:AGPL-3.0 原样 + 商业轨独立文件**)+ 脱敏映射表 + **迭代 SOP** + 验证七件套 · 多远端推送(GitHub + CNB)+ **详情已拆到 `references/`(5 档)**;工作根在本机 `E:\ProgramData\AI技能\dsh-ai1net-github\` |
| **排查业务插件故障(没 UI / 装不上 / 改了没生效)** | **`08-skills/dsh-plugin-diagnose/SKILL.md`**:三层归属 + 三把尺子(inject 差集 / glibc 直测 / 产物插探针)|
| **换电脑 / 改了工作区路径,规则会不会丢** | **`08-skills/dsh-env-bootstrap/SKILL.md`**:常驻规则快照 + `--check` 校验 / `--inject` 注入 / `--env-check` 环境自检(默认只报不改)|
| **跑跨会话长任务(自动接力)** | **`08-skills/dsh-auto-handoff-chain/SKILL.md`**:六件套 prompt 骨架 + 登记门禁 + 六条实测防护 + **排期两条铁律**(首个/唯一接续棒 = 收口 + 5~8 分钟 · 同一时刻只挂一个接续棒) + **§3.5 域锁四个「假绿」坑**(两侧域键须一致 · 非 ASCII 会话名须加 `cksum` · 二次抢锁须合并不重建 · `trap` 单槽位) + **§0.6 工作区归属五律**(含 🔴 `cwds` 只写反斜杠+大写盘符 ⇒ 否则同一工作区裂成两个同名分组) + **§0.7 活库改动铁律**(`workbuddy.db` 属 WAL 三件套,⛔ 禁文件级 `cp`/`mv`) + 复跑脚本 `07-scripts/chain_report.py` |
| **任何工作区开工的通用规矩(该不该问 / 怎么排版 / 归属 / 锁 / 接力 / 去 AI 味)** | **`08-skills/agent-operating-rules/SKILL.md`**:上抛唯一判据 + 排版十条 + **去 AI 味** + **工作区归属三律** + 一把锁 + 提交·批量边界 + 交付门禁 + 多棒接力(`references/` 4 篇细则)|
| **排查线上运行问题 / 事后溯源(跨机日志)** | `07-scripts/dshlog.mjs`(代码仓):`collect` 拉取归档 → `q` 查询 / `timeline` 时间线 / `watch` 巡检;用法与实测基线见 **`04-调整方案/129-日志采集与巡检-方案C实现.md`** |
| 看还有什么没做完 | `01-规范/03-路线图与待办.md` §二 | **`05-交接单/README.md` §一**(已规划待执行) |
| **改前端页面(强制基线)** | **`01-规范/06-工作台UI规范.md`** |
| **改实例 UI 分区(设置面板)** | **`01-规范/07-实例UI分区登记表.md`**(哪个包提供 / 源码在哪 / 能不能改)+ `01-规范/06-工作台UI规范.md` |
| **写一个业务插件(自研 / 第三方 / 交付前自检)** | **`01-规范/08-插件开发与对接规范.md`**:开工四问 + 包形态 + 数据面声明(唯一入口 `dsh.data.schema`;**零数据面⛔ 不要写空声明**)+ 文件落点 D4(⛔ 禁 `homedir()`)+ 投放链路 + **错误码表** + 提包前自测清单;数据面细节仍以 `03-数据库/DB-03` 为准 |
| **插件作者的 SDK / 扩展点契约(能力面)** | **`01-规范/09-IM插件SDK与扩展点契约.md`**:七点 / 三条保护 / 两档 / 数据面 / 示例 / 怎么验(原 `docs/` 单文件目录,2026-09-23 归并为根级编号件)|
| 红线与硬约束 | `README.md` §红线(含 **R7 禁批量全仓写入**、**R8 中断用户须先知会**)| `04-07` |
| **插件兼容性预检(导入/上传即判定)** | **`04-71`**(判据 + PoC + 三层防线)|**`交接单/T05`**(执行单)|`scripts/plugin-compat-check.mjs`(可在服务器直接跑) |
| **插件兼容性预检(导入/上传即判定)** | **`04-71`**(判据 + PoC + 三层防线)|**`05-交接单/T05`**(执行单)|`07-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-73`(强制钩子)|`04-69`(三把锁建立)**|`05-交接单/README.md` §一·§三·§六|`07-scripts/{handoff-guard.sh,op-lock.sh,lock-guard-hook.py}` |
| **多会话并行 / 冲突治理** | **`04-69`**(两级文档锁 + 服务器侧操作锁 + commit 常态化)|`05-交接单/README.md`(占用锁 / 写者归属 / §六 服务器侧锁)|`07-scripts/handoff-guard.sh`、`07-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)** |
@@ -37,15 +40,15 @@
| 会话/登录跳转 · 断连恢复 | `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` |
| VoxEMW | `04-12`(摘要)| `(2026-09-24 已清出项目:未采纳草案)` 两份全文 |
| 历史全量时间线 | `(2026-09-24 已清出项目:旧全量计划,结论已在 04-调整方案/)` |
---
## 二、全量清单
> **状态摘要**(**机器生成,勿手改**):档案 **123** 份(`04-*`),另含根级编号 5 条(01/02/03/06/07),另有非编号行 14 条(README / INDEX / 技能 / poc 等)—— ✅ 22 | 🔄 5 | 🔍 1 | 📋 23 | 🟡 1 | 未标记 76。复跑 `python3 scripts/docs-index-stats.py` 取数,`--write` 就地刷新本行。
> **分层与机读明细**(路径 / 日期 / 字符数 / 被引次数 / tier,可 `jq` 先筛后读):**`docs-manifest.json`**;复跑 `scripts/docs-manifest.py` 即刷新。
> **状态摘要**(**机器生成,勿手改**):档案 **123** 份(`04-*`),另含根级编号 5 条(01/02/03/06/07),另有非编号行 14 条(README / INDEX / 技能 / poc 等)—— ✅ 22 | 🔄 5 | 🔍 1 | 📋 23 | 🟡 1 | 未标记 76。复跑 `python3 07-scripts/docs-index-stats.py` 取数,`--write` 就地刷新本行。
> **分层与机读明细**(路径 / 日期 / 字符数 / 被引次数 / tier,可 `jq` 先筛后读):**`docs-manifest.json`**;复跑 `07-scripts/docs-manifest.py` 即刷新。
> 图例:✅已落地 | 🔄维护中 | 🧪PoC | 📝待开发 | 🔍核查完成 | 📋评估 | 🟡保留兜底 | 🗄归档|🔧修复|🔴|🚧|❓|PoC 实证完成(插件 v0|已上线|生效|已实施|已实施 + API 全链路验|已冻结|已落地 + 验证通过|审计已完成 → 加固项待用户|已上线,页面全部 200|已封板,实施中|核查完成 → 收敛项 H1-|✅ 已实施并在 admin/|🔄 批次 1 因改走 bun|方案 A + handoff|根因已定位并修复(nginx|修复已编译(CI ✅),待重|已实施并上线|已修复并上线(服务已重启|清单建立|✅ 已实施并端到端验证|✅ 已实施并 live 验证|✅ 已实施并视觉验证|🔍 核查完成,P0 待决策|✅ 已实施(commit 见|✅ 已实施(commit `|✅ 已修复(commit `|🔍 取证完成|🔍 核查完成|✅ 已实施(`99de8c5|✅ 已落地|✅ 已修复|已落地并实测验证|已落地并端到端验证|🔄 第一批已修复|✅ 已实施(两批):第一批|✅ 已实施并端到端验证(co|✅ 已实施并验证(服务器已生|admin 侧已实施|✅ 已部署并生效(服务器 `|✅ 已实现、已验证、已部署|✅ 已完成并部署|✅ 全部完成并验证|✅ 已完成(2026-09-|✅ 已止损|✅ 已落地并部署(2026-|✅ 已完成并部署(2026-|✅ 已实现并单点验证|✅ 已落地并实测验证(配置|📋 标准已立|✅ 代码改造 + 组件级验证|✅ 已落地并验证(服务器 `|✅ 已部署并验证(2026-|✅ 已修复并部署|📋 评估中|🚧 执行中(R0 已完成|🚧 代码完成、产物已出|✅ 已完成并上线验证|✅ 已上线并端到端验证(后端|✅ 已修复并验证(源仓 `c|🔄 进行中(L2 机制级已验
| 号 | 状态 | 一句话 |
@@ -150,51 +153,75 @@
| 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-112 | 📋 | **覆盖网络 · 九大瓶颈落地方案**(规划态 · 未实施):把 107 的九大瓶颈逐个给成**可执行做法 + 验收判据**(含 Slack / SCCM·BranchCache·Delivery Optimization 官方照抄点)。🎯 **只做三件 = presence 改造 + 游戏服放 L1 + 块级内容寻址分发**(覆盖最大三个瓶颈,且**都不需要改传输协议**)。🔑 分水岭:**必须做「块级」内容寻址,⛔ 别做「包级」**(包级 = 版本一发所有 peer 源失效 ⇒ 正是全量重拉风暴的成因) |
| 04-113 | 📋 | **覆盖网络 · 传输方案取舍(开放端口 vs 自研 relay)**(决策稿):逐条对比 5 种传输形态,定下**自研 relay + 回环监听 + 中继切流**路线;⛔ P4(SSH 版中继 / 32023)判**不做** |
| 04-114 | 📋 | **覆盖网络 · 应用场景推演完成度 & 方案待完善清单**(检查稿):逐场景打勾哪些已推演、哪些仍缺;作为后续补遗的取数底稿 |
| 04-115 | 📋 | **覆盖网络 · 「插件 vs 改内核」架构判断**:结论 = **走插件层**(不改官方 dsh 内核,红线 R2);给出插件化边界与代价清单 |
| 04-116 | 📋 | **覆盖网络方案 · 问题逐条推演与解决方案**:把散落疑问逐条编号推演并给解法,是 103–112 之前的**问题总账** |
| 04-117 | 🔄 | **覆盖网络 · 参数表与观测口径(唯一一张)**:所有可调参数的**单一来源**(含「⛔ 不改」清单:`RELAY_FAILOVER_DEADLINE_MS` / `HB_SEC` / `COOLDOWN_MS=0` 禁用)+ 指纹口径(`sed '/^## §10 指纹/,$d'` 后再 md5) |
| 04-118 | 🔄 | **会合 / 中继从 Manager 拆分 · 取证与改造方案**(**进行中**):S0–S4 分步 + 每步验收 / 回滚;起因 = 重启会收掉实例 scope 而无 reconciler |
| 04-119 | 📋 | **集群化改造方案 · Manager / Worker 模式**:D1–D5 已定(⏳ 仅 D6 未做)+ **数据分层判据**(归属/租约只 Manager 写 · 跟用户走放实例 home · 本机运维放 Worker 本地库) |
| 04-120 | 📋 | **跨节点迁移 & 节点自举 · 完整流程方案**:用户实例在节点间搬迁的完整流程与自举条件 |
| 04-121 | 📋 | **项目代码 · 分层范式与迭代风险评估**:代码分层 P0 已立;给出各层边界与「层层补丁叠加」的返工风险 |
| 04-122 | 📋 | **guest 迁移(w-47 → w-106)与共享重建方案**:存量 guest 落 106 的搬运步骤 + 共享面重建判据 |
| 04-123 | 📋 | **方案规划方法 —— 从覆盖网络线提炼**:把本线的规划手法沉淀成**可复用方法论**(判据优先 / 单一来源 / 假绿识别) |
| 04-124 | 🔍 | **文档无效信息审计报告**:对文档库做「无效信息」体检,输出应删/应改/应合并清单(**报告,未执行**) |
| 04-125 | 📋 | **会话接续机制 · 问题复盘与修复**:复盘「接续为何断链/为何空转」,产出修复项(**排期两条铁律** = ① 首个/唯一接续棒 = 收口 + **5~8 分钟**〔原记 2~5,2026-09-18 用户更正〕② **同一时刻只挂一个接续棒**;规则实体见技能 `dsh-auto-handoff-chain §3.1.1`) |
| 04-90 | 🔄 进行中(阶段 1 通过 | > 目标版本 = **`0.1.5-rc.1`**(npm `latest`;用户材料里插件 peer 也是 `^0.1.5-rc.1`,三方自洽)。 |
| 04-91 | ✅ 已上线(`busines | **「模型设置」页复刻官方交互**:换行根因是 **4 列表格 auto 列宽** ⇒ 改官方**卡片行**(两侧 nowrap)+「新增」改**两步式**(两个虚线按钮 → 卡片主字段只剩「API 密钥」);顺修「由 |
| 04-92 | ✅ 已上线 | **官方推荐插件列表按 dsh 版本过滤**:官方目录**不带** dsh 版本字段 ⇒ 平台侧逐包查 npm 声明与**平台真实版本**比;默认隐藏「仅兼容更旧版本」,「需更高版本」橙色标注。⚠️ 两处静默降级已钉住: |
| 04-93 | ✅ 已上线(平台后端已构建重 | **兼容判定收口**:① 「单测长期红」真相 = **服务器源码落后于 git**(本机 48/0 全绿)⇒ 同步即修;② 伞包 `@deepseek-ai/dsh` 收口到 `dsh-install.platformP |
| 04-94 | ✅ 已上线(平台后端已 `n | **实例内存口径定案**(用户裁定 base 448 / max 1024):两侧常量(编排器 `instanceMemMb()` ↔ 插件客户端 `MEM_*`)收成一份事实 = **BASE 448 / MIN 44 |
| 04-95 | ✅ 已上线 | **HTML 外壳缓存治理 —— 修「Failed to load plugins」根因 + 流程违规自审**:页面报 `client-modules: bundle script …&rev=… failed to l |
| 04-96 | ✅ 已上线(平台后端已重建重 | **实例内存与插件开关解耦 → 「基础 MIN、最多浮动到 MAX」**(用户两段原话:先「不要受插件开关影响,只受 min 和 max 值影响」,再「改成基础 min 最大可以浮动到 max」):平台侧 = cgrou |
| 04-97 | ✅ 已上线 | **`/plugins/` 合并脚本补 ETag + 304 短路**(承 96 之后查出的真缺陷,与当日故障无关):官方 `dsh-client-modules` 把全部客户端插件拼成**一条 11 MB 脚本**(` |
| 04-98 | ✅ 已上线 | **治本:陈旧 `dsh-auth-*` cookie 回写清理**:dsh 每次实例(重)启动都换 `dsh-auth-<随机>` 的 cookie 名,平台此前只在转发时丢弃旧的、**从不回写浏览器** ⇒ jar |
| 04-99 | 🔄 已落地待生效(钩子已装 | > 1. **根因 = 拦截点错位**(不是"AI 不听话"):既有「提问闸门」hook 的 matcher 是 `^AskUserQuestion$`,只能拦**工具调用**;实测本工作区宿主日志 `tool=AskU |
| 04-100 | ✅ 已实施并投放(`busi | **结论**:在**既有「功能管理」section 内新增「我的技能」分组**(**不新开 section**),用户在同一页看完并管理「功能插件 + 我的技能」两类功能;技能行支持 上传 / 启用 / 停用 / 删除, |
| 04-101 | ✅ 已实施并投放 | **结论**:分区改名「**能力管理**」(label 级),页内改为 **tab 分页**(功能插件 / 我的技能,各自独立操作),插件卡片的**中文用途描述从 1 行放宽到 3 行**(`.bp-plugDesc`) |
| 04-102 | ✅ 已实施并投放 | **结论**:语言切换搬进 **`@dsh-local/portal-entry` 的「用户设置」分区**(id `user-settings`,order 103), |
| 04-103 | 📋 规划态 / 未实施(本轮 | **客户端安装 + 覆盖网络互联 · 可行性评估**(规划态 · 未实施):判定 ✅ 可行,且现有架构已给出约 80% 形状(`soft` 档实例=裸子进程 ⇒ 无需 root;Worker 拨出式反向隧道 ⇒ **节点 |
| 04-104 | 📋 规划态 / 未实施(架构 | **覆盖网络 · 全球架构复盘**(规划态 · 未实施):五层架构(控制面 / 会合 / 骨干·中继 / 数据面 / 观测)+ 12 条必须内建特性 + **10 类风暴类型学** + 流量组织五原则 + 流量预算表 + |
| 04-105 | 📋 规划态 / 未实施(设计 | **覆盖网络 · 骨干层方案**(规划态 · 未实施):多中心骨干(≤10–20 成员、全互联;每节点只连 1–2 个骨干)+ 选择性加入。三条硬约束:**接入 / 成员 / 可见三分离** · **骨干资格只能控制面签 |
| 04-106 | 📋 规划态 | **覆盖网络 · 百台规模推演 v2**(规划态 · 纯文字推演):⚠️ 含**前提级纠错**(v1 作废)—— 用户纠正「**单机用也要互联**」;错因 = **把「租户维度收窄」误当成「网络维度收窄」**。100 台 |
| 04-107 | 📋 规划态(文字推演 | **覆盖网络 · 千台全场景推演**(规划态 · 纯文字推演):1000 台异构 × 11 场景 + **流量预算总表** + 瓶颈排序。🔥 **第一瓶颈 = presence**(1000 人大房 ≈ **16,700 |
| 04-108 | 📋 规划态 / 未实施 | **覆盖网络 · 游戏专项(MMORPG 2D/2.5D · MUD · 传奇类)**(规划态 · 未实施):⚠️ 判定**由「不合适」修正为「最匹配」**(该类游戏天生服务端权威 + tick 驱动 + **AOI 九 |
| 04-109 | 📋 规划态(全网调研稿 | **覆盖网络 · 调研:游戏网络特征与单房间群聊上限**(规划态 · 全网调研稿,数值均标来源):游戏侧每玩家 **2–20 KB/s**、同步 5–20 Hz、**jitter > 20 ms 即 desync**;群 |
| 04-110 | 📋 规划态(技术答疑稿 | **覆盖网络 · 答疑(群聊+agent / 备份 / 迁移提速 / 传输保密)**(规划态 · 未实施):① 群聊=**应用层**的事(覆盖网络只给「可达」);**agent 四条硬约束**(⛔ 禁止 agent 直接 |
| 04-111 | 📋 规划态(补遗复盘稿 | **覆盖网络 · 补遗与参考方案**(规划态 · 未实施):互联游戏 ✅ 但**由游戏形态决定**(锁步/回合/异步最友好;FPS/MOBA 64+ ❌ 不合适,P2P 无法反作弊);补遗 **24 条**(身份与账户 |
| 04-112 | 📋 规划态 / 未实施 | **覆盖网络 · 九大瓶颈落地方案**(规划态 · 未实施):把 107 的九大瓶颈逐个给成**可执行做法 + 验收判据**(含 Slack / SCCM·BranchCache·Delivery Optimizatio |
| 04-113 | ❓ | **覆盖网络 · 传输方案取舍(开放端口 vs 自研 relay)**(决策稿):逐条对比 5 种传输形态,定下**自研 relay + 回环监听 + 中继切流**路线;⛔ P4(SSH 版中继 / 32023)判**不 |
| 04-114 | ❓ | **覆盖网络 · 应用场景推演完成度 & 方案待完善清单**(检查稿):逐场景打勾哪些已推演、哪些仍缺;作为后续补遗的取数底稿 |
| 04-115 | ❓ | **覆盖网络 · 「插件 vs 改内核」架构判断**:结论 = **走插件层**(不改官方 dsh 内核,红线 R2);给出插件化边界与代价清单 |
| 04-116 | ❓ | **覆盖网络方案 · 问题逐条推演与解决方案**:把散落疑问逐条编号推演并给解法,是 103–112 之前的**问题总账** |
| 04-117 | 🔄 | **覆盖网络 · 参数表与观测口径(唯一一张)**:所有可调参数的**单一来源**(含「⛔ 不改」清单:`RELAY_FAILOVER_DEADLINE_MS` / `HB_SEC` / `COOLDOWN_MS=0` |
| 04-118 | 已完成使命 · 仅存档(20 | **会合 / 中继从 Manager 拆分 · 取证与改造方案**(**进行中**):S0–S4 分步 + 每步验收 / 回滚;起因 = 重启会收掉实例 scope 而无 reconciler |
| 04-119 | ❓ | **集群化改造方案 · Manager / Worker 模式**:D1–D5 已定(⏳ 仅 D6 未做)+ **数据分层判据**(归属/租约只 Manager 写 · 跟用户走放实例 home · 本机运维放 Work |
| 04-120 | ❓ | **跨节点迁移 & 节点自举 · 完整流程方案**:用户实例在节点间搬迁的完整流程与自举条件 |
| 04-121 | ❓ | **项目代码 · 分层范式与迭代风险评估**:代码分层 P0 已立;给出各层边界与「层层补丁叠加」的返工风险 |
| 04-122 | 规划稿 | **guest 迁移(w-47 → w-106)与共享重建方案**:存量 guest 落 106 的搬运步骤 + 共享面重建判据 |
| 04-123 | ❓ | **方案规划方法 —— 从覆盖网络线提炼**:把本线的规划手法沉淀成**可复用方法论**(判据优先 / 单一来源 / 假绿识别) |
| 04-124 | ❓ | **文档无效信息审计报告**:对文档库做「无效信息」体检,输出应删/应改/应合并清单(**报告,未执行**) |
| 04-125 | ❓ | **会话接续机制 · 问题复盘与修复**:复盘「接续为何断链/为何空转」,产出修复项(**排期两条铁律** = ① 首个/唯一接续棒 = 收口 + **5~8 分钟**〔原记 2~5,2026-09-18 用户更正〕② |
| 04-126 | 🔄 | **会话接续规范:token 超限后如何无损继续**:接续六件套 prompt 骨架与登记门禁的规范文本 |
| 04-127 | 📋 | **DSH 平台客户端化部署方案 —— 单机自用**:B 档(单机自用)形态下的客户端化部署路径;⚠️ 真正硬阻塞 = 平台调用层(Windows 裸名 `spawn` ENOENT) |
| 04-128 | 📋 | **DSH 桌面客户端开发方案 —— 基于官方 Electron 壳迭代**(待评审 · 只做规划不含代码):复用官方壳 vs 自建的取舍与分发/版本矩阵 |
| 04-129 | ✅ | **日志采集 · 实时巡检 · 事后溯源(方案 C 实现)**:不装新日志服务(否 Amber / 否 Loki+Alloy),用 `scripts/dshlog.mjs` 把 47/106 journald 拉回本机按天归档 + 跨机时间线 + 8 条巡检规则;**服务器侧零安装零端口**;⚠️ 最大剩余缺口 = 实例 `dsh --profile` 的 stdout 不进 journald |
| 04-133 | 🟡 | 🔴 **序㊺ 实测判「D 本轮不实现」**(真实首屏包 **23 块 0 个低熵块**、60 份真实独立内容 **0 份低熵** ⇒ `D-1` 无对象可稀释、`D-2` 前提不成立)⇒ 剩 **C 域分离 + 判据重裁**(序㊻ · automation `aab9e357-8101-4011-b829-bf9f4a459bf7`)|**覆盖网络 · 低熵块治理方案 —— C 域分离 + D 非确定性**:块 id / 内容 id 的收敛哈希改 **per-network keyed hash**(切断跨 network 相关性,代价≈0)+ 低熵块非确定性(首选 **D-1「稀释域」**);⛔ **B(OPRF / SA-MLE)不立项**(降级为可选加强);🔴 **第一个动作 = 补测「低熵块种类数 / 体积 / 占首屏包比例」**(从未测过;且切分是**定长 1 MiB** ⇒ 首屏包内几乎无纯低熵块,待测必须含**子窗口腿**防假绿)|交付 = `交接单/覆盖网络-序45-低熵块治理-测熵与实现.md` |
| 04-134 | ✅ | **注册页人机验证与邮箱验证码**(2026-09-19 落地 · 线上实测通过):注册 = 用户名 + 密码 + **邮箱验证码** + **Cloudflare Turnstile**(✅ **密钥已配、已启用**;服务端校 `success` + `action` + `hostname` **三项** —— 只校 `success` 时"拿公开 sitekey 在自己站点替真人取合法 token 再打我们接口"这条路是通的);DB **迁移 v10**(`users.email` + `email_codes` 事件表);邮件走**可插拔驱动**(`brevo` / `http` / `log`,换供应商只改 env),发件人 **`noreply@ai1net.com`**(Brevo 域名已认证 + DKIM + SPF);防爆破 = 三层配额 + **递增冷却阶梯**(60→60→180→300→900→1800s)+ 试错 5 次作废 + 码只存哈希 + 单次使用;实测 Brevo **delivered**、冷却 429、错码 `attemptsLeft` 递减、正确码 201、重放被挡、无 token/假 token **403**|档案 `04-调整方案/134-注册页人机验证与邮箱验证码.md` |
| 04-135 | ✅ | **旧域 `alotbuy.com` 从项目移除**(2026-09-19 落地):代码 / 服务端 / 文档技能三层收敛为 `ai1net.com` 单域;旧域站点**降级为 301 过渡装置**(保留 ACME + `/dshs-relay` + `/dshs-overlay/bootstrap`,**30 天零流量**后退役);relay 候选 **5 → 3**(删掉两条“摘名不同、同落 47”的伪多样性);修 `wake.html` 转义点残留 + 演练脚本硬编码域造成的**假红**;参数表 2 键与 §10 指纹同步 |
| 04-136 | 📋 | **控制面按两台中继取并集 —— 立项交接单**(2026-09-19 立项 · **未落地**):平台 web 层只取 47 中继 ⇒ 106 中继不被使用;根因链 7 行(取址路径 `src/web/server.ts` / `rendezvous.ts`)、**先红后绿**强制、候选 A/B 各带优缺点、验收 E1–E8 + 回滚 |
| 04-137 | ✅ | **品牌标识改造 —— 去 DeepSeek 图形 → 平台自有标识**(2026-09-19 上线):**四页 + favicon 一并替换** —— `login` / `register` / `admin` 页头删 **DeepSeek 鲸鱼图标 +「DeepSeek」文字图形** 改平台标识(中文「**能力枢纽**」/英语及其他语言「**CapabilityNet**」,走 i18n 词条 `brand.name`,`en` 一条即覆盖其他语言回退);`portal` 顶栏换图标(页面名「管理门户」保留);**新建 `web/favicon.svg`**(平台自有 hub 图标,避开 DeepSeek 蓝);🔴 **会话页面左上角那处不动**(用户明示「先不替换」+它属官方 dsh client bundle,受 R2 约束);🔴 踩坑:**SVG 的 XML 注释不得含 ASCII 双连字符 `--`**(写 CSS 变量名即踩)⇒ 整份 SVG 解析失败、图标**静默不显示**,已加进 `verify-static.mjs` 并做反向自证;新增 `test/i18n-brand.test.mjs`|档案 `04-调整方案/137-品牌标识改造-去DeepSeek图形.md` |
| 04-138 | ✅ | **平台共享模型 —— 管理员逐用户授权(默认关闭)**(2026-09-19 上线):新增列 `users.shared_model_granted`(v11,**默认 0**),**生效 = `granted ∧ enabled`** —— 前者 admin 在**用户列表**里逐个开(新增「共享模型」列),后者仍是用户自己的偏好(保留);未授权时设置页**连"平台共享模型"那一块都不渲染**(插件 0.3.24);🔴 **顺带修掉一个既有真缺陷**:落地层原先用**本机 fs** 写用户 home,而用户卷在 worker 上 ⇒ **模型落地对"实例不在本机"的用户一直是静默空操作**(托管清单被清空、目标文件一字节没动;档案 87 的模型设置页对 guest 这类用户从未生效)⇒ 改为走 `UserFs` + worker agent 新增**白名单**端点 `/fs/home-read|write`;两腿实测(未授权撤销 / 授权恢复)|档案 `04-调整方案/138-平台共享模型-管理员逐用户授权.md` |
| 04-139 | ✅ | **品牌中文名:能力枢纽 → 能力网络**(2026-09-19 上线):其他语言仍 `CapabilityNet`(en 词条即回退);落点四处 = i18n 中文词条 / `admin.html` 顶栏 / **`favicon.svg` 的 `<title>`+`aria-label`**(最易漏)/ `design.css` 注释;品牌回归测试期望值同步,`verify-static` + SVG 真解析全绿;🔴 行尾按**目标目录既有风格**逐文件对齐(服务器 `admin.html`=CRLF 而本机=LF,直传会翻掉整个文件)|档案 `04-调整方案/139-品牌中文名改为能力网络.md` |
| 04-140 | ✅ | **涉密内容外置到配置目录**(2026-09-19 落地):把散落在代码里的**真实部署值**(域名 / IP / 主机号 / 内网路径 / Worker 令牌 / PG 口令)统一收进 `config/`,代码改为**引用配置**—— TS 走 `src/platform-paths.ts`、shell 走 `config/load.sh`、node 走 `config/index.cjs`;🔴 **真实值只放 `config/platform.env`**(`.gitignore` 排除、服务器侧 **600**),仓库内只留 `platform.env.example`;🔴 优先级 = **系统 env > `config/platform.env` > 代码内中性默认值**(代码默认一律中性 ⇒ ⛔ 别把生产值写回默认);🔴 `platform-dirs.conf` **必须保留 `DSH_PLATFORM_DIR=/opt/dsh`**(删掉它 `platformDir` 退化成 `<dataRoot>/platform` ⇒ state/backups/artifacts **静默搬家**);🔴 `DEFAULT_OVERLAY_SEED` / `DEFAULT_OVERLAY_BOOTSTRAP_SEEDS` **刻意留空**(种子只由 env 给,已固化为回归断言);`src/platform-paths.ts` **必须零副作用**(不 mkdir / 不写文件);注释里的真标识无法引用配置 ⇒ **一律中性化**(`<server-public-ip>` / `<base-domain>` / `<host-a>`);`web/wake.html` 注册域白名单改为**运行时从 `location.hostname` 推导**(换域名零改动);改造后**完整检查两遍**(第 2 遍抓到第 1 遍的漏项);零回归 = `tsc` 0 错 · `npm test` **373/375**(唯一失败 `lease` 属既有)· `/opt/dsh/{state,backups}` 未搬家 · `/var/lib/dshs/platform` 未误建;**下线核实轮**(09-19 15:3x)复扫补修 `scripts/find-ui-scan.py` 里残留的 `/var/lib/dshs` 字面量(改为由 `find-ui.mjs` 注入 `DSHS_USERS_DIR`,缺失即显式失败、⛔ 不静默回落)|档案 `04-调整方案/140-涉密内容外置到配置目录.md` |
| — | 🗄 | `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-O14 · 脱敏映射表唯一口径 · 双轨授权与其 MIT 法律前提 · 迭代发布 SOP · 多远端推送 · 验证七件套 · 21 条实测坑 · v1.7.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 骨架 · 登记门禁 · **排期两条铁律 §3.1.1**〔首个/唯一接续棒 = 收口 + 5~8 分钟 · 同一时刻只挂一个接续棒〕· 六条实测防护 · 断链 / 双开 / once 不转完成态 / 预登记队列 等 · `scripts/chain_report.py` 复跑)(工作副本在本机 `.workbuddy/skills/`)|
| 04-127 | ❓ | **DSH 平台客户端化部署方案 —— 单机自用**:B 档(单机自用)形态下的客户端化部署路径;⚠️ 真正硬阻塞 = 平台调用层(Windows 裸名 `spawn` ENOENT) |
| 04-128 | ⏳ 待评审 | **DSH 桌面客户端开发方案 —— 基于官方 Electron 壳迭代**(待评审 · 只做规划不含代码):复用官方壳 vs 自建的取舍与分发/版本矩阵 |
| 04-129 | ✅ 已实现 · 本机实测通过 | **日志采集 · 实时巡检 · 事后溯源(方案 C 实现)**:不装新日志服务(否 Amber / 否 Loki+Alloy),用 `07-scripts/dshlog.mjs` 把 47/106 journald 拉回 |
| 04-133 | 📐 规划完成 · 待执行(第 | 🔴 **序㊺ 实测判「D 本轮不实现」**(真实首屏包 **23 块 0 个低熵块**、60 份真实独立内容 **0 份低熵** ⇒ `D-1` 无对象可稀释、`D-2` 前提不成立)⇒ 剩 **C 域分离 + 判据重裁 |
| 04-134 | ✅ | **注册页人机验证与邮箱验证码**(2026-09-19 落地 · 线上实测通过):注册 = 用户名 + 密码 + **邮箱验证码** + **Cloudflare Turnstile**(✅ **密钥已配、已启用**; |
| 04-135 | ✅ | **旧域 `alotbuy.com` 从项目移除**(2026-09-19 落地):代码 / 服务端 / 文档技能三层收敛为 `ai1net.com` 单域;旧域站点**降级为 301 过渡装置**(保留 ACME + |
| 04-136 | 🔄 待执行(已立项,未开工 | **控制面按两台中继取并集 —— 立项交接单**(2026-09-19 立项 · **未落地**):平台 web 层只取 47 中继 ⇒ 106 中继不被使用;根因链 7 行(取址路径 `src/web/server.t |
| 04-137 | ✅ | **品牌标识改造 —— 去 DeepSeek 图形 → 平台自有标识**(2026-09-19 上线):**四页 + favicon 一并替换** —— `login` / `register` / `admin` 页头 |
| 04-138 | ✅ 已上线并端到端验证(控制 | **平台共享模型 —— 管理员逐用户授权(默认关闭)**(2026-09-19 上线):新增列 `users.shared_model_granted`(v11,**默认 0**),**生效 = `granted ∧ e |
| 04-139 | ✅ 已上线(静态资源直覆,无 | **品牌中文名:能力枢纽 → 能力网络**(2026-09-19 上线):其他语言仍 `CapabilityNet`(en 词条即回退);落点四处 = i18n 中文词条 / `admin.html` 顶栏 / **`f |
| 04-140 | ✅ | **涉密内容外置到配置目录**(2026-09-19 落地):把散落在代码里的**真实部署值**(域名 / IP / 主机号 / 内网路径 / Worker 令牌 / PG 口令)统一收进 `config/`,代码改为* |
| 04-141 | ❓ | 实例子域冷启动窗口内代理裸断连接致 502(2026-09-19 修复) |
| 04-142 | 📋 规划态(需求已拍板 | **IM 群组对话(需求基线与方案)**(2026-09-20 规划态):用户拍板 **B 方案**(人 + Agent 一次做齐);两条决定形态的语义 = **群聊消息作为 agent 上下文** · **agent |
| 数据库专区 | ✅ | **数据库专区**(新目录 `03-数据库/`):DB-00 入口 / DB-01 接入指南(**七种情形**:内核表·**插件库(一插件一库)**·**用户数据入库**·Worker 本地库·大对象桶·**实例本地仅缓存/临时**·缓存队列)/ DB-02 表结构台账与迭代机制(v1–v13 + 评审门禁)/ DB-03 插件数据面规范(**一插件一库 · 归属列强制 · 按库备份迁移**)| 🔴 架构定稿 = `02-架构设计/数据-分库与权威存储架构.md` |
| 04-143 | ✅ 已落地,真机浏览器实测通 | **MCN工作台入口失效 + 用户设置语言切换「没反应」**(2026-09-20 落地 · 真机浏览器实测通过):两条同源 —— **dsh 0.1.5-rc.1 改了插件依赖的老契约**:① 对话区槽位名 `conv |
| 04-144 | 方案(待拍板选档)。本轮只落 | **插件规模化投放与版本一致性(几百~上千用户)**(2026-09-20 方案 · **待拍板选档**):今天这条 bug 的真实瓶颈**不是耗时**(单用户 `pnpm add` 秒级 ⇒ 1000 用户串行 1 小 |
| 04-145 | 🟡 部分执行 | **覆盖网络·序47 单账号多设备多会话并存(S0–S4 前半 · 2026-09-20 落地)**:`POST /api/auth/login` **取消无条件驱逐**(原 `deleteUserSessions(us |
| 04-146 | ✅ 已落地并验收(47 已加 | **实例子域 503:中继 per-port 额度被「客户端断开不中止上游」泄漏占满**(2026-09-21 落地 · 已验收):guest 实例被报「一直重启 + 全站 503」,实测**实例健康、连续运行 20.8 |
| 04-147 | 📋 方案(规划态 · 未实施 | **多节点形态下的插件投放与数据面(把「插件规模化」放回整张网里)**(2026-09-21 方案 · 规划态 · 零改动):用户指出 144 §八 的「2~3 天」口径**默认了"所有用户都在 47 本机"** ⇒ 整 |
| 04-148 | 📋 方案(规划态 · 未实施 | **多 Manager / 多区域联邦形态(把「一张网」改成「网的网」)**(2026-09-21 方案 · 规划态 · 零改动):用户指出 144/145/147 **共同默认了「一个控制面」**,实际形态是「**几百 |
| 04-149 | 📋 方案(规划态 · 未实施 | **覆盖网络顶层架构全貌(去中心化形态 · 信任图与数据图分离)**(2026-09-21 方案 · 规划态 · 零改动):用户两次纠正范式 —— 先指出图「**不是网状结构还是树形的**」,再追问「**是不是 没有RO |
| — | 🗄 | `(2026-09-24 已清出项目:旧全量计划,结论已在 04-调整方案/)`:拆分前 19 章 |
| — | ✅ | `08-skills/dsh-change-workflow/SKILL.md`:六阶段 + **红线 R1-R11** + **详情已拆到 `references/`(9 档)**(工作副本在本机 `.workbuddy/08-skills/`)|
| — | ✅ | `08-skills/dsh-decision-method/SKILL.md`:**改造决策方法论**(用户有效决策 U1-U12 / AI 有效决策 A1-A13 / 反例 X1-X8 + 确认最优解十问 + 交互 UI 专项清单)(工作副本在本机 `.workbuddy/08-skills/`)|
| — | ✅ | `08-skills/dsh-feature-first/SKILL.md`:**功能优先协作协议**(用户只提功能卡 4 问 · AI 自主决策 9 类白名单 · 只上抛功能语义分叉与红线门禁 · 报障闭环前置 · 交付回执格式)(工作副本在本机 `.workbuddy/08-skills/`)|
| — | ✅ | `08-skills/dsh-opensource-release/SKILL.md`:**开源导出与版本迭代**(硬规则 R-O1–R-O14 · 脱敏映射表唯一口径 · 双轨授权与其 MIT 法律前提 · 迭代发布 SOP · 多远端推送 · 验证七件套 · 21 条实测坑(已拆到 `references/`)· v1.7.8)(工作副本在本机 `.workbuddy/08-skills/`)|
| — | ✅ | `08-skills/dsh-plugin-diagnose/SKILL.md`:**业务插件故障诊断**(三层归属 host / client / 网关·原生绑定 · 三把尺子 inject 差集 / glibc 直测 / 产物插探针 · 8 条实测坑)(工作副本在本机 `.workbuddy/08-skills/`)|
| — | ✅ | `08-skills/dsh-env-bootstrap/SKILL.md`:**环境引导 / 迁移**(常驻规则快照 `references/常驻规则-快照.md` + `07-scripts/resident-rules.py` 的 `--check / --inject / --env-check / --snapshot`;**权威方向单向**:CODEBUDDY.md 为权威、快照为副本)(工作副本在本机 `.workbuddy/08-skills/`)|
| — | ✅ | `08-skills/dsh-auto-handoff-chain/SKILL.md`:**多棒自动接力编排法**(规划棒 ↔ 执行棒交替 · 一次性 automation 链条 · 六件套 prompt 骨架 · 登记门禁 · **排期两条铁律 §3.1.1**〔首个/唯一接续棒 = 收口 + 5~8 分钟 · 同一时刻只挂一个接续棒〕· 六条实测防护 · 断链 / 双开 / once 不转完成态 / 预登记队列 等 · `07-scripts/chain_report.py` 复跑)(工作副本在本机 `.workbuddy/08-skills/`)|
| — | ✅ | `08-skills/agent-operating-rules/SKILL.md`:**AI 会话作业总规矩(通用 · 跨工作区)**(上抛唯一判据 + 自决白名单 + 取舍筛〔只有优点/缺点 ⇒ 自决〕+ 结论骨架 + 可扫读排版十条 + **去 AI 味 24 类模式** + **工作区归属三律**〔治会话落错家〕+ 抢锁校验退出码 + 提交·批量边界 + 多棒接力 + 4 篇 `references/` 细则)(工作副本在本机 `.workbuddy/08-skills/`)|
> **待办与优先级不在本文件维护**(单一来源):**未规划**的见 `03-路线图与待办.md` §二;**已规划待执行**的见 `交接单/README.md` §一。
> **待办与优先级不在本文件维护**(单一来源):**未规划**的见 `01-规范/03-路线图与待办.md` §二;**已规划待执行**的见 `05-交接单/README.md` §一。
---
@@ -202,12 +229,12 @@
| 手段 | 怎么做 |
|---|---|
| **双端对账** | `bash scripts/docs-sync-check.sh`(一致/不一致/仅本地/仅服务器 + 退出码 0=全绿)|
| **机读清单** | `python3 scripts/docs-manifest.py` → `docs-manifest.json`(状态/日期/tier/引用数)|
| **质量审计** | `python3 scripts/docs-audit.py`(9 类判定;编号冲突与悬空引用会返回非 0)|
| **双端对账** | `bash 07-scripts/docs-sync-check.sh`(一致/不一致/仅本地/仅服务器 + 退出码 0=全绿)|
| **机读清单** | `python3 07-scripts/docs-manifest.py` → `docs-manifest.json`(状态/日期/tier/引用数)|
| **质量审计** | `python3 07-scripts/docs-audit.py`(9 类判定;编号冲突与悬空引用会返回非 0)|
| **代码侧变更** | `git -C /opt/dshs log --oneline`(平台代码是 git 仓库,比文档更细)|
| **文档侧变更** | 本目录是 git 仓库:`git log --oneline`;服务器镜像无 .git,靠 scp 单向推送 |
| 时间线溯源 | `03-路线图 §已完成` + 各档案 commit 列 + `archive/` 全文 |
| 时间线溯源 | `03-路线图 §已完成` + 各档案 commit 列 + `09-archive/` 全文 |
---
@@ -215,9 +242,14 @@
| 文件 | 位置 | 状态 |
|---|---|---|
| **已完成的交接单**(规划/执行分离的单子)| `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/` | 随库分发,**在用** |
| **已完成的交接单**(规划/执行分离的单子)| `05-交接单/` | **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 / 最小形态真机批次 / 观测口径与在册缺陷 / 在册收尾」;⚠️ 均为**已完成单的归档副本**,若其中仍有未完成项需在 `05-交接单/` 另开新单)
| 三份工作区草案(插件管理面 / VoxEMW×2)| `(2026-09-24 已清出项目:未采纳草案)` | 已归档防丢;插件草案 v5 被档案 16 取代 |
| `07-scripts/docs-{sync-check.sh,audit.py,manifest.py}` | 本库 `07-scripts/` | 随库分发,**在用** |
| `.workbuddy/memory/YYYY-MM-DD.md` | 工作区 `.workbuddy/` | 过程日志,不入库 |
| `*.bak*` | 各处 | 已纳入 `.gitignore`;**服务器侧勿生成结尾带点号的备份名**(Windows 落不了地)|
@@ -244,23 +276,9 @@
1. **功能类改造** → `04-调整方案/` 新建档案,**编号递增**(**复跑取号,勿写死**:`ls 04-调整方案/ | sort -n | tail -1`;**63 为空号,勿补占**);模板:目标 → 改动 → 验证 → 红线遵守 → 回滚。
2. **规范 / 基线类**(跨页面长期生效)→ 根级编号文档(`01`~`06`),不入 `04-调整方案/`;入库时登记 §一 场景表 + §二 清单。
3. **排障记录** → 追加 `02-运维手册.md` 排障小节。
4. **状态 / 待办变化** → 更新 `03-路线图与待办.md` 与本文件 §二。
5. **保留原章节编号**,便于与 `archive/` 完整版对查。
3. **排障记录** → 追加 `01-规范/02-运维手册.md` 排障小节。
4. **状态 / 待办变化** → 更新 `01-规范/03-路线图与待办.md` 与本文件 §二。
5. **保留原章节编号**,便于与 `09-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 密钥」);顺修「由 |
| 04-92 | ✅ 已上线 | **官方推荐插件列表按 dsh 版本过滤**:官方目录**不带** dsh 版本字段 ⇒ 平台侧逐包查 npm 声明与**平台真实版本**比;默认隐藏「仅兼容更旧版本」,「需更高版本」橙色标注。⚠️ 两处静默降级已钉住: |
| 04-93 | ✅ 已上线(平台后端已构建重 | **兼容判定收口**:① 「单测长期红」真相 = **服务器源码落后于 git**(本机 48/0 全绿)⇒ 同步即修;② 伞包 `@deepseek-ai/dsh` 收口到 `dsh-install.platformP |
| 04-94 | ✅ 已上线(平台后端已 `n | **实例内存口径定案**(用户裁定 base 448 / max 1024):两侧常量(编排器 `instanceMemMb()` ↔ 插件客户端 `MEM_*`)收成一份事实 = **BASE 448 / MIN 44 |
| 04-95 | ✅ 已上线 | **HTML 外壳缓存治理 —— 修「Failed to load plugins」根因 + 流程违规自审**:页面报 `client-modules: bundle script …&rev=… failed to l |
| 04-96 | ✅ 已上线(平台后端已重建重 | **实例内存与插件开关解耦 → 「基础 MIN、最多浮动到 MAX」**(用户两段原话:先「不要受插件开关影响,只受 min 和 max 值影响」,再「改成基础 min 最大可以浮动到 max」):平台侧 = cgrou |
| 04-97 | ✅ 已上线 | **`/plugins/` 合并脚本补 ETag + 304 短路**(承 96 之后查出的真缺陷,与当日故障无关):官方 `dsh-client-modules` 把全部客户端插件拼成**一条 11 MB 脚本**(` |
| 04-98 | ✅ 已上线 | **治本:陈旧 `dsh-auth-*` cookie 回写清理**:dsh 每次实例(重)启动都换 `dsh-auth-<随机>` 的 cookie 名,平台此前只在转发时丢弃旧的、**从不回写浏览器** ⇒ jar |
| 04-99 | 🔄 已落地待生效(钩子已装 | > 1. **根因 = 拦截点错位**(不是"AI 不听话"):既有「提问闸门」hook 的 matcher 是 `^AskUserQuestion$`,只能拦**工具调用**;实测本工作区宿主日志 `tool=AskU |
| 04-100 | ✅ 已实施并投放(`busi | **结论**:在**既有「功能管理」section 内新增「我的技能」分组**(**不新开 section**),用户在同一页看完并管理「功能插件 + 我的技能」两类功能;技能行支持 上传 / 启用 / 停用 / 删除, |
| 04-101 | ✅ 已实施并投放 | **结论**:分区改名「**能力管理**」(label 级),页内改为 **tab 分页**(功能插件 / 我的技能,各自独立操作),插件卡片的**中文用途描述从 1 行放宽到 3 行**(`.bp-plugDesc`) |
| 04-102 | ✅ 已实施并投放 | **结论**:语言切换搬进 **`@dsh-local/portal-entry` 的「用户设置」分区**(id `user-settings`,order 103), |
7. **UI 规范优先**:涉及前端改动**先读 `01-规范/06-工作台UI规范.md`**;沉淀了新"为什么"要回写源侧并回拷 `06`。
8. **规划/执行分离的任务单** → `05-交接单/`(约定见其 `README.md`):规划会话产出单子,执行会话按单开工(**不读规划会话上下文**);完成后 `git mv` 入 `05-交接单/` 并在 §四 加行。