chore(docs): 文档库并入代码仓(R4 选 a)+ 索引/台账跟进

1) dsh-server-docs/ 从工作区(原 E:\...\aliyun-dsh-server\dsh-server-docs)**整体并入本仓**,
   保留目录名 ⇒ 仓库内 dsh-server-docs/... 的相对引用天然继续有效;旧目录(含其 .git)已归档到
   工作区 _中间产物_待清理/,未随本提交带入。
2) .gitattributes:新增 `dsh-server-docs/** -text` —— 原文档库是 `* -text` + autocrlf=false,
   必须保持纯 LF,否则会被本仓的 CRLF 规则翻掉。
3) 活引用里的绝对路径已全部改到新位置(docs 的 INDEX / README / scripts / skills + 用户级 skills
   + ~/.workbuddy/settings.json 的 hooks);历史档案(04-调整方案/、archive/)按「只增不改」未动。
   ⚠️ hooks 路径改动需「完全重启会话」才生效(配置是会话启动快照)。
4) 交接单/T08:新增 §16「生产整体切换执行记录」(形态 / 落地动作 / **4 个只有真上线才暴露的真 bug** /
   验收证据 / 回滚命令 / 残留项);台账 T08 行 → 已完成并归档;03-路线图 §二 登记 T08 收尾项。
5) 统一称谓:**「本机」只指跑 WorkBuddy 的开发机**,47 / 106 一律写「远程服务器」。
This commit is contained in:
admin committed 2026-09-15 18:47:13 +08:00
1 parent c70d5d860e
commit 5ad755116e
173 files changed
+27632

No files matched your search

@@ -0,0 +1,7 @@
# @dsh-local/business-plugins — bundle patch (host row only)
# 功能插件启停:功能全在 client 面(settings.section),host 面仅加载标记。
# 无 inject(defensive)——index.js 的 apply 不使用任何 ctx 服务。
- insert:
- id: business-plugins
name: '@dsh-local/business-plugins'
@@ -0,0 +1,24 @@
{
"name": "@dsh-local/business-plugins",
"version": "0.2.1",
"description": "功能插件启停 section for dsh web profile — 候选池列表 + 搜索/状态徽章 + 批量启用/禁用 + 确认弹窗 + 重启后自动刷新。v0.2.0:配色改用官方 --dsw-* design token(自动跟随 dsh 主题,亮/暗皆宜);文案走官方 locale(zh/en);被门户自动禁用的不兼容插件在列表内行内标记 + 重试。",
"type": "module",
"main": "lib/index.js",
"exports": {
".": "./lib/index.js",
"./client": "./lib/client.js"
},
"dsh": {
"bundle": {
"patch": "./cordis.patch.yml"
},
"client": {
"platform": "web",
"inject": [
"@deepseek-ai/dsh-client-ui-settings-general"
]
}
},
"dependencies": {},
"license": "MIT"
}
@@ -0,0 +1,14 @@
# @dsh-local/portal-entry — PoC bundle patch (host row only, v1)
#
# A bundle patch is a YAML list of patch operations. This layer inserts a
# single host row into the profile cordis tree. Row shape mirrors official
# rows (see dsh-web-app/cordis.patch.yml): id + name (package module) + config.
#
# v1: no inject (defensive). v0.1.1: row declares `inject: [tools]` — cordis
# then starts this row only after the `tools` service exists, so apply() may
# use ctx.tools directly (mirrors official rows like webserver -> webStartup).
- insert:
- id: portal-entry
name: '@dsh-local/portal-entry'
inject: [tools]
@@ -0,0 +1,26 @@
{
"name": "@dsh-local/portal-entry",
"version": "0.5.1",
"description": "portal-entry plugin for dsh web profile (0.1.2-rc.1) — host boot marker + portal_ping tool + settings 「用户管理」section (role-aware: admins see portal origin + 「打开管理台」, everyone sees 「退出登录」). v0.5.0: section renamed from 平台管理, id platform→user-management, order 100→102 (below 功能插件=101), installed for ALL users (scripts/ensure-portal-entry.cjs), role probed via portal GET /api/auth/me with fail-closed fallback to the non-admin view. v0.5.1: repack ONLY — v0.5.0's tarball was built without lib/index.js (host half), which made every instance fail with ERR_MODULE_NOT_FOUND on @dsh-local/portal-entry/lib/index.js; version bumped because pnpm reuses a same-name/same-version tarball from its cache. v0.4.3 HARDCODES colors (text #f9fafb, btn border #43464d) because both --dsw-alias-label-primary and --dsw-alias-button-elevated-fill are defined as #f9fafb in the dark theme, so var() fallbacks never engaged.",
"type": "module",
"main": "lib/index.js",
"exports": {
".": "./lib/index.js",
"./client": "./lib/client.js"
},
"dsh": {
"bundle": {
"patch": "./cordis.patch.yml"
},
"client": {
"platform": "web",
"inject": [
"@deepseek-ai/dsh-client-ui-settings-general"
]
}
},
"dependencies": {
"@deepseek-ai/dsh-tools": "0.1.2-rc.1"
},
"license": "MIT"
}
@@ -0,0 +1,11 @@
# dshs 平台补丁段 —— 会话内目录选择器收敛(档案 18 v2 · 2026-09-11)
# 所有用户(含 admin)一视同仁;由平台安装脚本统一写入 <profile>/cordis.patch.yml,勿手改。
#
# 机制说明(实证):本 dsh 构建下「同 id 换 name」的覆盖行不生效;改用
# ① insert 自建行(新 id) ② 对官方组合行 disabled: true(档案 09 已验证的机制)
- insert:
- id: workspace-scoped-picker
name: "@dsh-local/workspace-scoped-picker"
- id: directory-picker
name: "@deepseek-ai/dsh-host-directory-picker-auto"
disabled: true