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:
1 parent
c70d5d860e
commit
5ad755116e
173 files changed
+27632
No files matched your search
@@ -0,0 +1,62 @@
|
||||
# 37b · 功能插件分区 v0.2.0:官方 token 化 + i18n + 交互升级(批次 3)
|
||||
|
||||
- 日期:2026-09-11
|
||||
- 触发:用户三问 —— ① 确认样式交互是否符合规范、是否比 dsh-market 好(整合优秀交互)② 按项目**亮色调** ③ 亮/暗切换与多语言的实现复杂度
|
||||
- 状态:**✅ 已实施(commit `5f42fb7`)并验证**
|
||||
|
||||
> **TL;DR**|**结论**:「功能插件」section 升级 v0.2:**官方 `--dsw-*` design token**(自动跟随亮/暗/第三方主题)+ 官方 locale 中英双语。
|
||||
> **关键**:交互补齐:搜索 / 状态徽章 / 全选清空 / 被自动禁用插件的行内提示与重试 / 重启后探活再刷新。
|
||||
> **状态**:✅ 已实施并验证
|
||||
|
||||
## 一、调研结论(决定了做法)
|
||||
|
||||
| 事实 | 影响 |
|
||||
|---|---|
|
||||
| dsh 官方客户端(含设置面板)使用 **`--dsw-*` design token(CSS 变量)**:`--dsw-alias-label-primary/-secondary/-tertiary`、`--dsw-alias-bg-layer-{1,2,3}`、`--dsw-alias-border-l{1,2,3}`、`--dsw-alias-brand-primary`、`--dsw-alias-state-{error,success}-primary`、`--dsw-elevation-prominent` 等 | **正解不是"改成亮色十六进制",而是改用官方 token** → 自动跟随主题 |
|
||||
| 官方主题插件 = `@deepseek-ai/dsh-client-ui-theme` | **亮/暗切换由官方提供,我们零成本跟随**,不需要自己实现 |
|
||||
| dsh-market(567KB client)**全量使用 `--dsw-*`**;交互词表含 更新/失败/确认/重启/卸载/已安装/停用/重试/重新安装/搜索插件/分类/暂无 | 我们 v0.1.0 的差距:硬编码深色、无搜索、无状态词、失败只有一行文字 |
|
||||
| 官方 i18n:`ctx.effect(() => ctx.locale.register(NS, {zh, en}))` + `ctx.locale.bind(NS)`,`inject` 需含 `"locale"` | 多语言**复杂度低**,直接复用 |
|
||||
|
||||
## 二、v0.2.0 改动(`@dsh-local/business-plugins` client half)
|
||||
|
||||
1. **配色全部改官方 token**(原硬编码 `#f9fafb/#c9cdd4/#4f6ef7` 等)→ 与官方深色面板和谐,且**亮/暗/第三方主题自动适配**。
|
||||
2. **文案走官方 locale**(zh/en 双语);section label 改为 `t("section.label")`。
|
||||
3. **交互升级**(对齐 dsh-market 的优秀做法):
|
||||
- 搜索过滤(名称/描述)
|
||||
- 每行**状态徽章**:`已启用` / `未启用`
|
||||
- 全选 / 清空 + 「已选 N / M」计数
|
||||
- 加载态、空态
|
||||
- **被门户自动禁用的不兼容插件:行内 `⚠` 标记(悬浮显示真实 reason)+「重试」按钮** —— 与档案 34 的隔离机制闭环
|
||||
4. **重启后自动刷新页面**:应用成功且实例重启时,先探活(最多 3 次 × 1.5s)再 `location.reload()`,避免实例重启窗口白屏。
|
||||
|
||||
## 三、验证
|
||||
|
||||
| 检查项 | 结果 |
|
||||
|---|---|
|
||||
| 已装版本 | ✅ guest `node_modules/@dsh-local/business-plugins/package.json` = **0.2.0** |
|
||||
| token 化 | ✅ 已装 `lib/client.js` 含 `dsw-alias-label-primary` |
|
||||
| i18n | ✅ 含 `locale.register` |
|
||||
| bundle 被加载 | ✅ `.dsh-biz-plugins.log` 新增 `apply pid=2` 标记 |
|
||||
| **UI 实拍** | ✅ headless Chrome 打开 guest 实例 → 设置面板 → **「功能插件」分区已出现**(与「通用设置 / Agent 预设」平级),显示 v0.2.0 locale 空态「**暂无功能插件(需管理员在门户投放)**」,配色融入官方面板 |
|
||||
|
||||
## 四、顺带修掉一个真实风险:bundle 源码从未进版本控制
|
||||
|
||||
`.gitignore` 的 `lib/`(本意忽略 TS 构建产物)**连 `poc/<plugin>/lib/` 一起忽略了** →
|
||||
**平台两个自建 client bundle 的源码(`client.js` / `index.js`)从来没有进 git**:
|
||||
`@dsh-local/business-plugins` 与 `@dsh-local/workspace-scoped-picker` 都中招。
|
||||
→ 一旦 `/opt/dsh/docs/04-调整方案/poc/` 那份丢失,这两个插件**无法重建**。
|
||||
|
||||
**修法**(commit `04a2496`):加反忽略 `!poc/*/lib/` + `!poc/*/lib/**`,并把两个 bundle 的 `lib/` 一并入库。
|
||||
|
||||
## 五、回答用户第 ③ 问(复杂度)
|
||||
|
||||
| 需求 | 做法 | 复杂度 | 本次是否已做 |
|
||||
|---|---|---|---|
|
||||
| 按项目亮色调 | 改用 `--dsw-*` token;主题由 dsh 决定 | 低 | ✅ |
|
||||
| 亮/暗切换 | **不需要我们实现** —— 跟随官方 `dsh-client-ui-theme` | ≈ 零 | ✅(自动) |
|
||||
| 多语言 | 官方 locale 机制,注册 zh/en | 低(~30 行) | ✅ |
|
||||
|
||||
## 六、后续
|
||||
|
||||
- 若要"平台统一指定亮色":可在 profile 层设 dsh 主题默认值(未做,等需求)。
|
||||
- 小尾巴仍在:admin 侧事故可见性(`audit` 只有写没有读 → 需加读取方法才能在门户显示「N 个用户启用失败」)、重启前 `dump-config` 预检、批量上限保护(N>5 只回滚)。
|
||||
Reference in new issue
Block a user