Files
dsh_shenxian/dsh-server-docs/INDEX.md
T
admin 0cdbf52c4a chore(开源脱敏): find-ui 扫描器去掉硬编码服务器路径 + 登记档案 140
- scripts/find-ui-scan.py:PROFILE_GLOB 改由 DSHS_USERS_DIR 注入,缺失即显式失败(不再写死
  /var/lib/dshs)⇒ 补上上一轮涉密外置扫描的唯一漏项(大小写不敏感扫描 1 → 0)
- scripts/find-ui.mjs:用 config/index.cjs#usersDir() 取值并随 ssh 命令注入远端;
  解析不出 POSIX 绝对路径即报错退出(⛔ 不静默回落,避免假阴性)
- dsh-server-docs/INDEX.md:登记 04-140(涉密内容外置到配置目录)

验证:py 语法 OK / node --check OK / 缺 env 显式 exit=2 / 实跑命中 8-8 个 UI 分区(与原行为一致)
2026-09-19 15:42:56 +08:00

47 KiB
Raw Blame History

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)。域名 ai1net.com(旧域 alotbuy.com 自 2026-09-19 仅作 301 过渡装置)。


一、按场景快速定位

我要做什么 先读
访问入口(当前域名) 门户 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
红线与硬约束 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

二、全量清单

状态摘要(机器生成,勿手改):档案 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 即刷新。 图例:✅已落地 | 🔄维护中 | 🧪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 机制级已验

号 状态 一句话
README 🔄 文档库总说明、模块一览、红线、使用约定(档案清单唯一来源)
INDEX 🔄 本文件:场景速查 + 状态总览
01 ✅ 背景/架构/目录布局/dsh 分层/归属矩阵/安全边界
02 ✅ 迁移、备份恢复、域名接入、uid 排障、命令速查(正文为历史,现行以附录 C 为准)
03 🔄 OQ 结论、已完成清单、进行中/待办、历史决策
04-01 ✅ 登录直达 URL 自动带 launch token
04-02 ✅ 权限边界收紧 + DB 加固
04-03 ✅ API KEY 收归管理员统一管控
04-04 ✅ 注册/审核/删除用户闭环
04-05 PoC 实证完成(插件 v0 插件化可行性 + PoC(PoC-2 三项已复核:①不做 ②已实现 ③作废)
04-06 已上线 登录直达会话窗口 v1+v2
04-07 生效 升级红线(禁自动取最新版)与独立升级流程
04-08 ✅ last-wins 单活跃会话 + idle-reap 常驻上限
04-09 已落地 角色化 profile patch 裁剪 client 插件
04-10 已实施 共享只读技能目录(bundledSkillDir)env 注入
04-11 已实施 + API 全链路验 技能管理面 API + 页面(zip-only 两阶段替换)
04-12 已冻结 VoxEMW 全云 API 化调研 + M1 落地
04-13 已落地 + 验证通过 登录直达冷启动竞态 404 修复
04-14 审计已完成 → 加固项待用户 会话敏感信息暴露面审计 + nftables 出网护栏
04-15 已上线,页面全部 200 三页 401 守卫跳登录 + 核心插件开关收归 admin
04-16 已封板,实施中 页面导航定稿 + 插件三层归属模型(folder_plugins 废弃)
04-17 核查完成 → 收敛项 H1- 工作区选择器暴露面核查(P1/P2 边界判定)
04-18 ✅ 已实施并在 admin/ 目录选择器收敛为仅见自有目录(v3 定稿实测,含 admin)
04-19 🔄 批次 1 因改走 bun 方案与代码全面审查(代码 10 项 + 文档 8 项)
04-20 方案 A + handoff 崩溃自愈:指数退避 + 熔断 + 观测(含 live 实测)
04-21 根因已定位并修复(nginx guest「卡顿」排查(根因=nginx proxy_buffering 已修)
04-22 已上线 域名迁移到 alotbuy.com(含 4 个踩坑与回滚)
04-23 修复已编译(CI ✅),待重 实例内 AI 能力与权限限制核查(合成根补 /bin 修复)
04-24 已实施并上线 实例侧 401 自动恢复(freshAuthUrl 302 带新 token)
04-25 已修复并上线(服务已重启 实例崩溃循环修复 + not_running 兜底
04-26 清单建立 dsh 升级耦合点与回归清单(官方包零改动)
04-27 ❓ MCN 工作台插件平台化评估(3 处 P0 必改)
04-28 ✅ 用户数据清理三件套(ws-cleanup / session-gc / purge-trash)
04-29 ✅ 已实施并端到端验证 官方白名单插件来源(awesome-dsh-plugin,仅预构建可导入)
04-30 ✅ 已实施并 live 验证 编排器孤儿实例清理(spawn 前清 stale scope)
04-31 ✅ 已实施并视觉验证 插件管理页双 Tab + 说明为主视觉
04-32 🔍 核查完成,P0 待决策 mcntimo 会话取证与沙箱 P0 核查
04-33 ✅ 已实施(commit 见 实例权限默认档位改为完全权限(env 开关)
04-34 ✅ 已实施(commit ` 功能插件启用探活 + 逐插件隔离
04-35 ✅ 已修复(commit ` ws-cleanup 误删平台 bundle 包修复
04-36 ✅ 已实施(commit ` 「功能插件」分区铺给普通用户 + 新用户自动铺
04-37a 🔍 取证完成 guest 会话取证与平台缺陷清单(P0-1 档位/P0-2 零技能)
04-37b ✅ 已实施(commit ` 功能插件分区 v0.2:官方 token + i18n + 交互升级
04-38a 🔍 核查完成 实例软件安装共享 / 网络与安全边界核查(S1-S3 缺口)
04-38b ✅ 已实施(`99de8c5 术语统一「业务插件」→「功能插件」
04-39 ✅ 已落地 实例可见面收窄(/etc 白名单)+ 封宿主访问(H5)
04-40 ✅ 共享技能层挂载修复(补 bwrap --ro-bind)
04-41 ✅ 技能上传安全加固(symlink/zip bomb)+ 用户技能启停
04-42 ✅ 已修复 实例共享 Python 运行时 + 会话取证复核(修 /etc/alternatives)
04-43 ✅ root 污染用户工作区 → 属主自愈
04-44 ✅ 基础运行时版本冻结(PYTHONNOUSERSITE + USERBASE)
04-45 ✅ 存量会话「新开会话」提示(选提示不选迁移)
04-46 ✅ 实例共享工具 jq / ripgrep / ffmpeg
04-47 ✅ admin「运行环境」管理页(含版本漂移告警)
— ⚠️ 编号 48 未使用(跳号;不影响检索,勿补占)
04-49 ✅ 已落地 实例回收后首次访问的反馈与自愈(wake.html 过渡页)
04-50 ❓ 会话过期自愈注入脚本(已被 04-51 在传输层取代,保留兜底)
04-51 已落地并实测验证 实例侧 401 透明重放(含 SSE 自动重连)
04-52 已落地并端到端验证 新用户实例无法启动(picker 三处连锁缺陷)
04-53 🔄 第一批已修复 文档质量审查与精简(含 37/38 编号冲突立项)
04-54 ✅ 已实施(两批):第一批 文档信息架构优化(BRIEF 现状卡 + 机读清单)
04-55 🔍 取证完成 guest 最新会话取证与优化项(档位会话级播种)
04-56 ✅ 已实施并端到端验证(co 实例助手:我的文件 / 能力清单 / 档位提示 + 文件下载端点
04-57 ✅ 已实施并验证(服务器已生 设置面板「用户管理」入口 + 全员安装
04-58 ✅ 已实施并验证(服务器已生 实例内存优化与配额下调(512M→384M + 编译缓存)
04-59 ✅ 已实施并验证(服务器已生 重连反馈:实例启动中的加载动画
04-60 ✅ 已实施并验证(服务器已生 设置面板分区改名:功能插件 → 功能管理
04-61 ✅ 已实施并验证(服务器已生 插件管理页:官方插件列表加高 + 页面底部留白 200px
04-62 ✅ 已实施并验证(服务器已生 插件目录:缓存状态可见化 + 「重新拉取目录」按钮
— ⚠️ 编号 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 + 逐条回显 + 留痕)
04-67 ✅ 已完成并部署 「功能管理」section 按 UI 规范重做 v0.2.4
04-68 ✅ 全部完成并验证 候选池启停的 root 属主污染根治(setpriv 降权 + 属主自愈 + 清存量)
04-69 ✅ 已完成(2026-09- 并发治理落地(文档库 commit 常态化 + 服务器侧操作锁 + 权限统一 + 代码库留路标)
04-70 ✅ 已止损 anysearch 插件与 dsh 0.1.2-rc.1 不兼容 → 实例崩溃循环(已止损;待决:能力保留/下架)
04-71 ✅ 已落地并部署(2026- 插件兼容性预检:导入/上传即判定(判据 A semver 依赖范围 + 判据 B 运行时导出符号;已部署 8d19e89)
04-72 ✅ 已完成并部署(2026- 实例被回收/关闭后,回到页面自动唤醒并重建连接(不再需要手动刷新;b23e386)
04-73 ✅ 已实现并单点验证 让锁真正拦得住人:措辞修正(guard/交接单)+ PreToolUse 强制钩子(无锁拒写;⚠️ 待 /hooks 审核启用)
04-74 ✅ 已落地并实测验证(配置 实例内存治理:V8 老生代上限 256→160 MiB(走平台预留的 DSH_INSTANCE_NODE_OPTIONS,零代码改动)+ 采样脚本加阈值告警(85% × 连续 3 次
04-75 📋 标准已立 插件评估新增两维度(接档案 71):托管友好性 H1–H4(向浏览器交付绝对 URL = 阻断;硬编码 loopback / 自建监听 = 警告)+ 资源成本(加载 rss 增量,>3
04-76 ✅ 代码改造 + 组件级验证 dsh-univer-office 平台适配改造(档案 75 首个落地样本):gateway 加 unix socket 传输(UNIVER_DSH_GATEWAY_SOCKET,**不设则完
04-77 ✅ 已落地并验证(服务器 ` 回到页面自检 + 就地恢复(恢复过程可见化):判据从「进程在不在跑」改为「页面能不能连上实例」(新增实例侧探针 GET /,2.5 秒超时;404/405 → 降级回旧判据,绝不误报)+
04-78 ✅ 已部署并验证(2026- 崩溃熔断:冷却期 + 告警(修档案 77 §八 遗留 1):熔断态改为跨轮存活(不再被 resetCrashState() 清空)+指数冷却(10 min × 2^(n-1),封顶 6 h),
04-79 ✅ 已修复并部署 插件启停的两处平台缺陷(2026-09-13 发现,P0 未修):① 隔离定位循环 uninstall 缺 await → unhandled rejection **把整个 orches
04-80 📋 评估中 架构与功能优化评估(保留功能前提下的重构方向)+ 去平台痕迹:不推倒重来 —— 平台本体就是要保留的功能;今天几次事故根因全是「层层补丁叠加」(模板转义把注入脚本写崩 ×2、配额与插件集合脱钩致
04-81 🚧 执行中(R0 已完成 ① 定下一套命名:对外叫「工作台」、内部统一前缀 dshs(替换 dshs);
04-82 🚧 代码完成、产物已出 ① R2 的 R5 权限影响评估已在档案 81 §9.2 出齐并获批(扩大点=实例内出现可操作的管理入口 ⇒ 仅 admin 可见 + 只读 + 写操作回跳)。⚠️ **本档内部 16 份重复(1
04-83 ✅ 已完成并上线验证 ① 查实:登录页用的是 design.css —— 一套深色 OS-desktop 体系,与 06-工作台UI规范(强制基线、冲突时以它为准)全面冲突;
04-84 ❓ 实例内存配额口径统一(消灭「388 MiB」误报)
04-85 ✅ 已上线并端到端验证(后端 ① 原先平台是「统一 KEY」——resolveApiKey() 显式忽略入参 userId,不管谁 spawn 都注入 admin 那一把;② 本轮改为两层:**用户自己的 key 优先,没
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")
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-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),发件人 [email protected](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
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/)

待办与优先级不在本文件维护(单一来源):未规划的见 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,浅克隆) [email protected]:maogeigei/dsh_shenxian.git — master @ ebe8075 ✅ 已推送
改造文档 本机 dsh-server-docs/(本目录即工作树)↔ 服务器 /opt/dsh/docs(镜像,root 600) [email protected]: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 密钥」);顺修「由 | | 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的「用户设置」分区**(iduser-settings`,order 103), |