build / build-and-scan (push) Waiting to run
文档库:目录改为编号制(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/;交接单不入库(政策)。
285 lines
44 KiB
Markdown
285 lines
44 KiB
Markdown
# dsh 平台文档导航(INDEX)
|
||
|
||
> **首读 `BRIEF.md`(现状卡)**:30 秒对齐现行事实;本文件只管"定位篇目 + 状态"。
|
||
> **双端模型**:本机 `D:\github\dsh_shenxian\dsh-server-docs\`(**工作树**,git 仓库 `dsh_shenxian_doc`)↔ 服务器 `/opt/dsh/docs`(**部署镜像**,root 600,**无 .git**,靠 scp)。
|
||
> **对账**:`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 过渡装置)。
|
||
|
||
---
|
||
|
||
## 一、按场景快速定位
|
||
|
||
| 我要做什么 | 先读 |
|
||
|---|---|
|
||
| **访问入口(当前域名)** | 门户 `https://ai1net.com`;用户实例 `https://<用户名>.ai1net.com` | `04-22`(迁移+回滚) |
|
||
| **重建 / 交接部署** | **`DEPLOY-本部署.md`**(拓扑·目录·env·依赖·脚本族·构建/部署/回滚) | 档案 19 §C9 |
|
||
| 理解架构 / 多租户隔离 | `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 + 三层防线)|**`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`(三把锁建立)**|`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)** |
|
||
| 安全 / 暴露面 | `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`(摘要)| `(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 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 机制级已验
|
||
|
||
| 号 | 状态 | 一句话 |
|
||
|---|---|---|
|
||
| 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-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),用 `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/`)|
|
||
|
||
> **待办与优先级不在本文件维护**(单一来源):**未规划**的见 `01-规范/03-路线图与待办.md` §二;**已规划待执行**的见 `05-交接单/README.md` §一。
|
||
|
||
---
|
||
|
||
## 三、变化与更新状态:怎么追
|
||
|
||
| 手段 | 怎么做 |
|
||
|---|---|
|
||
| **双端对账** | `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 列 + `09-archive/` 全文 |
|
||
|
||
---
|
||
|
||
## 四、归档与工作区残留
|
||
|
||
| 文件 | 位置 | 状态 |
|
||
|---|---|---|
|
||
| **已完成的交接单**(规划/执行分离的单子)| `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 落不了地)|
|
||
|
||
---
|
||
|
||
## 五、仓库与同步拓扑
|
||
|
||
| 资产 | 路径 | 仓库 / 状态 |
|
||
|---|---|---|
|
||
| **平台代码** | 服务器 `/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. **排障记录** → 追加 `01-规范/02-运维手册.md` 排障小节。
|
||
4. **状态 / 待办变化** → 更新 `01-规范/03-路线图与待办.md` 与本文件 §二。
|
||
5. **保留原章节编号**,便于与 `09-archive/` 完整版对查。
|
||
6. **同步**:见 §五.2(对账 → scp → chmod → 复跑)。
|
||
7. **UI 规范优先**:涉及前端改动**先读 `01-规范/06-工作台UI规范.md`**;沉淀了新"为什么"要回写源侧并回拷 `06`。
|
||
8. **规划/执行分离的任务单** → `05-交接单/`(约定见其 `README.md`):规划会话产出单子,执行会话按单开工(**不读规划会话上下文**);完成后 `git mv` 入 `05-交接单/` 并在 §四 加行。
|