dsh-better-sidebar 0.10.3 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -16,22 +16,29 @@ https://github.com/user-attachments/assets/23187822-047e-45cc-b480-fe997bd55b86
16
16
 
17
17
  <img width="2630" height="1794" alt="6c4293e1bec2e935031bf0e986d6ec65" src="https://github.com/user-attachments/assets/dfdb875e-a1a8-4d4b-8340-353736b1708f" />
18
18
 
19
+ ## 🆕 最近更新
20
+
21
+ - **终端自定义字体**:设置页终端卡片新增字体族 + 9–32px 字号设置,实时生效
22
+ - **侧边卡片设置页重构**:分组容器卡片、计数徽标、自定义开关、加宽设置弹窗
23
+ - **修复**:WKWebView 下底部面板展开后终端空白(xterm 零尺寸容器初始化崩溃,[#25](https://github.com/omdsh-dev/DSH-better-sidebar/issues/25))
24
+ - **文档**:client 改动硬刷新即可生效,无需重启 DSH
25
+
19
26
  ## ✨ 功能一览
20
27
 
21
- - **🗂️ 资源管理器**:懒加载目录树(根 = 会话 cwd)、点击在侧边栏打开、行尾 `@文件` 引用到输入框、右键复制路径
22
- - **📝 编辑与预览**:CodeMirror 6 多语言高亮 + Ctrl/Cmd+S 原子保存;图片 / Markdown(预览/编辑切换)/ HTML(沙箱 iframe 预览,相对资源可加载)/ PDF / Word / Excel / PPT 内联预览,切换 Tab 不丢草稿
23
- - **⚡ 客户端懒加载**:Office / 终端 / 代码编辑器等重依赖按需分块加载——启动只拉 ~325KB 核心,打开 .xlsx 才拉 Univer(~20MB)、打开 .docx 只拉 docx 预览器、打开终端才拉 xterm;首次打开短暂 loading 后即用(详见 `docs/plans/2026-08-12-lazy-chunks-design.md`)
24
- - **🌐 浏览器**:内嵌网页浏览 tab(多开),后退/前进/刷新 +「在浏览器中打开」;页面在**沙箱 iframe** 中运行(不透明源:无法访问界面数据与本地文件,拒绝 localhost 等本机地址),界面实时显示沙箱状态、可临时解锁(关闭时红色警示);被站点拒绝嵌入(X-Frame-Options)时显示原因面板;聊天/界面里的 http(s) 外链默认在侧边栏打开(侧边栏折叠时自动展开面板)
25
- - **💻 终端**:xterm.js + node-pty 真实 shell(每会话 3 UI 上限)、Tab 保活重连回放;可选为模型注入 8 个 `terminal_*` 工具
26
- - **🌿 Git 面板**:真 diff + VSCode 式 diff tab、懒加载历史、右键暂存/放弃/提交/还原/捡取
27
- - **🧩 后台任务页**:主会话完整 agent 拓扑、点击直达执行记录、实时工具调用轮询、新子代理自动展开;**同页显示后台任务**(当前树全部后台任务,bash/pwsh 类型徽标 + 退出码,点击查看实时输出——自动跟随底部、非消费 peek,不干扰模型的 `job_output`;两击确认可强制终止)
28
- - **🪟 底部面板**:独立的第二个工作台(与右侧栏同类的标签页),只挤占中间 Agent 输出区、不覆盖左右侧边栏;**首次展开自动开一个新终端**(终端卡片二级设置可关);右上角 x 一键折叠
29
- - **📱 移动端**:视口 < 768px(真正的移动端宽度,不对齐宿主 1024 断点)时只显示右侧栏——进入窄屏时底部面板的标签页**直接并入右侧栏标签条**,右上角只剩一枚开关,面板为全宽抽屉;新会话默认收起,聊天里点文件/外链自动展开,不挤压对话区
30
- - **🔧 分栏工作台**:拖 Tab 拆分/合并分栏(可**跨面板拖 Tab**)、分隔线调比例;右上角持久按钮簇(底栏 + 侧拉 glyph)折叠/展开两个面板;两面板共享拐角双向拖动调节尺寸,拖动 rAF 直写 DOM 保持流畅
31
- - **🔁 会话隔离**:布局/分栏/Tab/两面板状态按会话持久化(localStorage),陈旧状态自动净化;聊天「产出文件」改在侧边栏打开(面板折叠时自动展开)
32
- - **⚙️ 声明式设置**:设置页「侧边卡片」分区按注册表渲染功能清单(小卡片网格,高亮 = 启用),每项可独立开/关;二级设置(子代理自动展开、终端工具、底部面板首展自动开终端、沙箱开关等)经齿轮按钮在原生弹窗中编辑
33
- - **🔌 服务化**:暴露 `ctx.betterSidebar` 服务,其他插件可注册侧边栏 tab 与文件预览器(内置 7 tab + 9 viewer 也走同一服务,详见 [AGENTS.md](./AGENTS.md))
34
- - **🌏 多语言**:界面文案跟随 DSH 的语言设置(zh/en)实时切换——Host 偏好优先于浏览器语言,词典注册进 DSH 的 i18n 命名空间;切换语言无需刷新
28
+ - **🗂️ 资源管理器**:懒加载目录树(根 = 会话 cwd),点击打开、`@文件` 引用、右键复制路径
29
+ - **📝 编辑与预览**:CodeMirror 6 编辑(Ctrl/Cmd+S 原子保存,切 Tab 不丢草稿);图片 / Markdown / HTML / PDF / Word / Excel / PPT 内联预览(HTML 走沙箱 iframe)
30
+ - **⚡ 客户端懒加载**:启动只拉 ~325KB 核心,Office / 终端 / 编辑器等重依赖用到才按需拉取(详见 `docs/plans/2026-08-12-lazy-chunks-design.md`)
31
+ - **🌐 浏览器**:多开内嵌网页 tab,后退/前进/刷新;内容运行在沙箱 iframe(无法访问界面数据与本地文件,拒绝本机地址),可临时解锁(红色警示);被站点拒绝嵌入时显示原因;外链默认在侧边栏打开
32
+ - **💻 终端**:xterm.js + node-pty 真实 shell、断线重连回放;可选为模型注入 `terminal_*` 工具;支持自定义字体(字体族 + 9–32px 字号,实时生效)
33
+ - **🌿 Git 面板**:真 diff + VSCode 式 diff tab、历史、右键暂存/提交/还原等
34
+ - **🧩 后台任务页**:主会话 agent 拓扑、点击直达执行记录;同页显示后台任务(类型徽标 + 退出码、实时输出 peek、可强制终止)
35
+ - **🪟 底部面板**:第二个独立工作台,只挤占中间输出区;首次展开自动开终端(可关)
36
+ - **📱 移动端**:窄屏(<768px)自动合并为全宽抽屉,底部面板标签页并入右侧栏;点文件/外链自动展开
37
+ - **🔧 分栏工作台**:拖 Tab 拆分/合并(可跨面板)、分隔线调比例;右上角按钮一键折叠/展开面板
38
+ - **🔁 会话隔离**:布局 / Tab / 面板状态按会话持久化,陈旧状态自动净化;「产出文件」在侧边栏打开
39
+ - **⚙️ 声明式设置**:设置页「侧边卡片」按注册表渲染开关网格,逐项独立开/关;二级设置(自动展开、终端工具、沙箱等)经齿轮弹窗编辑
40
+ - **🔌 服务化**:暴露 `ctx.betterSidebar`,其他插件可注册 tab 与文件预览器(内置 7 tab + 9 viewer 同走一服务,见 [AGENTS.md](./AGENTS.md))
41
+ - **🌏 多语言**:界面文案跟随 DSH 语言(zh/en)实时切换,无需刷新
35
42
 
36
43
  ## 🚀 安装
37
44
 
@@ -49,17 +56,17 @@ curl -fsSL https://raw.githubusercontent.com/omdsh-dev/DSH-better-sidebar/main/s
49
56
  irm https://raw.githubusercontent.com/omdsh-dev/DSH-better-sidebar/main/scripts/install.ps1 | iex
50
57
  ```
51
58
 
52
- 装完**重启 DSH 并硬刷新**(Cmd/Ctrl+Shift+R)即可看到侧边栏。
59
+ 装完**硬刷新浏览器**(Cmd/Ctrl+Shift+R)即可看到侧边栏(DSH 对 client 改动热加载,无需重启;仅 host 半更新时需要重启)。
53
60
 
54
61
  <details>
55
62
  <summary><b>指定版本 / 装完自动重启(可选)</b></summary>
56
63
 
57
64
  ```sh
58
65
  # macOS / Linux
59
- curl -fsSL https://raw.githubusercontent.com/omdsh-dev/DSH-better-sidebar/main/scripts/install.sh | bash -s 0.10.3 --restart
66
+ curl -fsSL https://raw.githubusercontent.com/omdsh-dev/DSH-better-sidebar/main/scripts/install.sh | bash -s 0.11.0 --restart
60
67
 
61
68
  # Windows PowerShell
62
- & ([scriptblock]::Create((irm 'https://raw.githubusercontent.com/omdsh-dev/DSH-better-sidebar/main/scripts/install.ps1'))) -Version 0.10.3 -Restart
69
+ & ([scriptblock]::Create((irm 'https://raw.githubusercontent.com/omdsh-dev/DSH-better-sidebar/main/scripts/install.ps1'))) -Version 0.11.0 -Restart
63
70
  ```
64
71
 
65
72
  不确定的话,可先加 `--dry-run`(PowerShell 用 `-DryRun`)预览步骤再执行。
@@ -85,7 +92,7 @@ minimumReleaseAgeExclude:
85
92
  - dsh-better-sidebar
86
93
  EOF
87
94
 
88
- # ③ 安装并自动挂载(不带 @版本 = npm 的 latest;固定版本写 dsh-better-sidebar@0.10.3
95
+ # ③ 安装并自动挂载(不带 @版本 = npm 的 latest;固定版本写 dsh-better-sidebar@0.11.0
89
96
  npx -y --package @deepseek-ai/dsh dsh plugin --profile web add dsh-better-sidebar
90
97
  ```
91
98
 
@@ -116,7 +123,7 @@ npx -y --package @deepseek-ai/dsh dsh plugin --profile web add dsh-better-sideba
116
123
  3. 执行 `dsh plugin --profile web add dsh-better-sidebar`:登记依赖 → 识别包内 `dsh.bundle.patch` → 自动注册进 `dsh.profile.bundles` 挂载;
117
124
  4. 清理旧版残留的手动挂载行,避免「双挂载」(页面出现两个侧边栏)。
118
125
 
119
- `curl | bash` / `irm | iex` 会执行远程代码——脚本已随仓库开源(`scripts/install.sh` / `scripts/install.ps1`),可先下载审阅。插件以 npm 包 `dsh-better-sidebar@0.10.3` 发布,通过 `dsh.bundle.patch`(随包的 `cordis.patch.yml`)由官方 CLI 自动挂载,**不修改 DSH 源码**。
126
+ `curl | bash` / `irm | iex` 会执行远程代码——脚本已随仓库开源(`scripts/install.sh` / `scripts/install.ps1`),可先下载审阅。插件以 npm 包 `dsh-better-sidebar@0.11.0` 发布,通过 `dsh.bundle.patch`(随包的 `cordis.patch.yml`)由官方 CLI 自动挂载,**不修改 DSH 源码**。
120
127
 
121
128
  </details>
122
129
 
@@ -127,7 +134,7 @@ npx -y --package @deepseek-ai/dsh dsh plugin --profile web add dsh-better-sideba
127
134
  dsh plugin --profile web add dsh-better-sidebar
128
135
  ```
129
136
 
130
- 或重跑一次一键脚本;也可把 `~/.dsh/profiles/web/package.json` 里的版本号改高后 `pnpm install`。改完**重启 DSH 并硬刷新**(Cmd/Ctrl+Shift+R)。
137
+ 或重跑一次一键脚本;也可把 `~/.dsh/profiles/web/package.json` 里的版本号改高后 `pnpm install`。改完**硬刷新浏览器**(Cmd/Ctrl+Shift+R)即可(client 改动无需重启 DSH)。
131
138
 
132
139
  </details>
133
140
 
@@ -159,10 +166,10 @@ dsh plugin --profile web add dsh-better-sidebar
159
166
  - id: better-sidebar
160
167
  name: 'dsh-better-sidebar'
161
168
  4. 在 ~/.dsh/profiles/web 执行 pnpm install
162
- 5. 重启 DSH 并硬刷新
169
+ 5. 硬刷新浏览器(Cmd/Ctrl+Shift+R)即可看到效果(client 改动无需重启 DSH;host 半改动才需重启)
163
170
  ```
164
171
 
165
- 更新:`git pull && pnpm install && pnpm build` → 重启 DSH(仅 client 改动可硬刷新)。切回 npm 通道时,把依赖改回 `"dsh-better-sidebar": "^0.10.3"` 再 `pnpm install`。
172
+ 更新:`git pull && pnpm install && pnpm build` → 硬刷新浏览器即可(client 改动热加载生效,无需重启 DSH;host 半改动才需重启)。切回 npm 通道时,把依赖改回 `"dsh-better-sidebar": "^0.11.0"` 再 `pnpm install`。
166
173
 
167
174
  </details>
168
175
 
@@ -240,3 +247,7 @@ pnpm watch # tsdown --watch
240
247
  ## 🖥️ 平台支持
241
248
 
242
249
  Windows / Linux / macOS 三平台适配(macOS 日常验证;其余经单元测试覆盖);`node-pty` 优先预编译二进制,失败需编译工具链(Windows VS Build Tools / Linux make+g+++python3 / macOS Xcode CLT)。
250
+
251
+ ## 🔗 友情链接
252
+
253
+ - [dsh-tianshu-tui](https://github.com/huiliyi37/dsh-tianshu-tui):DeepSeek Harness 交互式终端 UI 插件(渲染核心由自研 harness agent Tianshu-Tui 演进而来),在官方基础上增加 TDD 与证据门等工作流
package/README_EN.md CHANGED
@@ -16,22 +16,29 @@ https://github.com/user-attachments/assets/23187822-047e-45cc-b480-fe997bd55b86
16
16
 
17
17
  <img width="2630" height="1794" alt="6c4293e1bec2e935031bf0e986d6ec65" src="https://github.com/user-attachments/assets/dfdb875e-a1a8-4d4b-8340-353736b1708f" />
18
18
 
19
+ ## 🆕 Recent Updates
20
+
21
+ - **Custom terminal fonts**: font-family + 9–32px size settings on the terminal card, applied live
22
+ - **Side card settings redesign**: grouped container cards, count badges, custom toggles, wider settings dialog
23
+ - **Fix**: blank terminal after expanding the bottom panel on WKWebView (xterm initialized in a zero-size container, [#25](https://github.com/omdsh-dev/DSH-better-sidebar/issues/25))
24
+ - **Docs**: client changes take effect on a hard refresh — no DSH restart needed
25
+
19
26
  ## ✨ Features
20
27
 
21
- - **🗂️ File Explorer**: lazy-loading directory tree (root = session cwd), click to open in the sidebar, `@file` reference at end of line into the input box, right-click to copy path
22
- - **📝 Edit & Preview**: CodeMirror 6 multi-language highlighting + Ctrl/Cmd+S atomic save; inline preview for images / Markdown (preview/edit toggle) / HTML (sandboxed iframe preview, relative resources loadable) / PDF / Word / Excel / PPT; drafts survive tab switches
23
- - **⚡ Client-side Lazy Loading**: heavy dependencies (Office / terminal / code editor) are chunked and loaded on demand — only ~325KB core is fetched at startup; Univer (~20MB) is fetched only when opening .xlsx, the docx viewer only when opening .docx, xterm only when opening a terminal; brief loading on first open, then instant (see `docs/plans/2026-08-12-lazy-chunks-design.md`)
24
- - **🌐 Browser**: embedded web browsing tabs (multiple), back/forward/refresh + "Open in browser"; pages run in a **sandboxed iframe** (opaque origin: cannot access UI data or local files, rejects localhost and other local addresses); the UI shows sandbox status live and can be temporarily unlocked (red warning when off); sites that refuse embedding (X-Frame-Options) show a reason panel; http(s) links in chat/UI open in the sidebar by default (panel auto-expands when collapsed)
25
- - **💻 Terminal**: xterm.js + node-pty real shell (max 3 UI instances per session), tab keep-alive with reconnect/replay; optionally injects 8 `terminal_*` tools for the model
26
- - **🌿 Git Panel**: real diff + VSCode-style diff tabs, lazy-loaded history, right-click to stage/discard/commit/revert/pick
27
- - **🧩 Background Tasks**: full agent topology of the main session, click-through to execution records, live tool-call polling, auto-expand for new subagents; background tasks shown on the same page (all background tasks in the current tree, bash/pwsh type badges + exit codes, click to view live output — auto-follows the bottom, non-consuming peek that doesn't disturb the model's `job_output`; double-click confirm to force-kill)
28
- - **🪟 Bottom Panel**: an independent second workbench (same kind of tabs as the right sidebar) that only squeezes the middle Agent output area without covering the left/right sidebars; auto-opens a new terminal on first expand (can be disabled in the terminal card's secondary settings); one-click collapse via the top-right x
29
- - **📱 Mobile**: at viewport < 768px (true mobile width, not the host's 1024 breakpoint) only the right sidebar shows — when entering narrow screens, bottom-panel tabs merge directly into the right sidebar's tab bar, leaving a single toggle at top-right and a full-width drawer panel; new sessions start collapsed; files/external links in chat auto-expand without squeezing the conversation area
30
- - **🔧 Split-pane Workbench**: drag tabs to split/merge panes (cross-panel dragging supported), divider to adjust ratios; persistent button cluster at top-right (bottom bar + side pull glyph) to collapse/expand both panels; the two panels share a corner double-direction drag to resize, rAF direct-DOM writes keep it smooth
31
- - **🔁 Session Isolation**: layout/panes/tabs/panel states persisted per session (localStorage), stale state auto-purged; chat "produced files" open in the sidebar (auto-expands panels when collapsed)
32
- - **⚙️ Declarative Settings**: the "Side Cards" section of the settings page renders a registry-driven feature list (small card grid, highlighted = enabled), each toggleable independently; secondary settings (auto-expand subagents, terminal tools, auto-open terminal on first bottom-panel expand, sandbox switches, etc.) are edited in a native dialog via the gear button
33
- - **🔌 Service API**: exposes the `ctx.betterSidebar` service — other plugins can register sidebar tabs and file viewers (the 7 built-in tabs + 9 viewers go through the same service, see [AGENTS.md](./AGENTS.md))
34
- - **🌏 i18n**: UI text follows DSH's language setting (zh/en) with live switching — Host preference takes priority over browser language, dictionaries registered into DSH's i18n namespace; no refresh needed
28
+ - **🗂️ File Explorer**: lazy-loading directory tree (root = session cwd), click to open, `@file` reference, right-click to copy path
29
+ - **📝 Edit & Preview**: CodeMirror 6 editing (Ctrl/Cmd+S atomic save, drafts survive tab switches); inline preview for images / Markdown / HTML / PDF / Word / Excel / PPT (HTML in a sandboxed iframe)
30
+ - **⚡ Client-side Lazy Loading**: only ~325KB core at startup; heavy deps (Office / terminal / editor) load on demand (see `docs/plans/2026-08-12-lazy-chunks-design.md`)
31
+ - **🌐 Browser**: multiple embedded web tabs, back/forward/refresh; pages run in a sandboxed iframe (no access to UI data or local files, rejects local addresses), temporarily unlockable (red warning); sites refusing embedding show a reason panel; external links open in the sidebar by default
32
+ - **💻 Terminal**: xterm.js + node-pty real shell, reconnect with transcript replay; optionally injects `terminal_*` tools for the model; custom font (family + 9–32px size, applied live)
33
+ - **🌿 Git Panel**: real diff + VSCode-style diff tabs, history, right-click to stage/commit/revert etc.
34
+ - **🧩 Background Tasks**: main-session agent topology with click-through to execution records; background tasks on the same page (type badges + exit codes, live-output peek, force-kill)
35
+ - **🪟 Bottom Panel**: an independent second workbench that only squeezes the center output area; auto-opens a terminal on first expand (toggleable)
36
+ - **📱 Mobile**: narrow viewports (<768px) merge into a full-width drawer with the bottom panel's tabs folded into the sidebar; files/links auto-expand the panel
37
+ - **🔧 Split-pane Workbench**: drag tabs to split/merge panes (cross-panel supported), divider to adjust ratios; one-click collapse/expand both panels from the top-right buttons
38
+ - **🔁 Session Isolation**: layout / tabs / panel states persisted per session, stale state auto-purged; "produced files" open in the sidebar
39
+ - **⚙️ Declarative Settings**: the "Side Cards" settings section renders a registry-driven toggle grid, each item independently switchable; secondary settings (auto-expand, terminal tools, sandbox, etc.) edited in a native dialog via the gear button
40
+ - **🔌 Service API**: exposes `ctx.betterSidebar` — other plugins can register tabs and file viewers (the 7 built-in tabs + 9 viewers share the same service, see [AGENTS.md](./AGENTS.md))
41
+ - **🌏 i18n**: UI text follows DSH's language setting (zh/en) with live switching, no refresh needed
35
42
 
36
43
  ## 🚀 Installation
37
44
 
@@ -49,17 +56,17 @@ curl -fsSL https://raw.githubusercontent.com/omdsh-dev/DSH-better-sidebar/main/s
49
56
  irm https://raw.githubusercontent.com/omdsh-dev/DSH-better-sidebar/main/scripts/install.ps1 | iex
50
57
  ```
51
58
 
52
- Then **restart DSH and hard-refresh** (Cmd/Ctrl+Shift+R) to see the sidebar.
59
+ Then **hard-refresh the browser** (Cmd/Ctrl+Shift+R) to see the sidebar (DSH hot-reloads client changes; only host-half updates need a restart).
53
60
 
54
61
  <details>
55
62
  <summary><b>Pin a version / auto-restart (optional)</b></summary>
56
63
 
57
64
  ```sh
58
65
  # macOS / Linux
59
- curl -fsSL https://raw.githubusercontent.com/omdsh-dev/DSH-better-sidebar/main/scripts/install.sh | bash -s 0.10.3 --restart
66
+ curl -fsSL https://raw.githubusercontent.com/omdsh-dev/DSH-better-sidebar/main/scripts/install.sh | bash -s 0.11.0 --restart
60
67
 
61
68
  # Windows PowerShell
62
- & ([scriptblock]::Create((irm 'https://raw.githubusercontent.com/omdsh-dev/DSH-better-sidebar/main/scripts/install.ps1'))) -Version 0.10.3 -Restart
69
+ & ([scriptblock]::Create((irm 'https://raw.githubusercontent.com/omdsh-dev/DSH-better-sidebar/main/scripts/install.ps1'))) -Version 0.11.0 -Restart
63
70
  ```
64
71
 
65
72
  Not sure? Add `--dry-run` (`-DryRun` in PowerShell) to preview before running.
@@ -85,7 +92,7 @@ minimumReleaseAgeExclude:
85
92
  - dsh-better-sidebar
86
93
  EOF
87
94
 
88
- # ③ Install and auto-mount (no @version = npm's latest; pin with dsh-better-sidebar@0.10.3)
95
+ # ③ Install and auto-mount (no @version = npm's latest; pin with dsh-better-sidebar@0.11.0)
89
96
  npx -y --package @deepseek-ai/dsh dsh plugin --profile web add dsh-better-sidebar
90
97
  ```
91
98
 
@@ -116,7 +123,7 @@ The one-click script does four things, all idempotent (safe to re-run):
116
123
  3. Runs `dsh plugin --profile web add dsh-better-sidebar`: registers the dependency → detects `dsh.bundle.patch` → auto-appends the plugin to `dsh.profile.bundles`;
117
124
  4. Removes any leftover hand-written mount line to avoid double-mounting (two sidebars on the page).
118
125
 
119
- `curl | bash` / `irm | iex` executes remote code — the scripts are open source in the repo (`scripts/install.sh` / `scripts/install.ps1`); download and review them first if you prefer. The plugin ships as npm package `dsh-better-sidebar@0.10.3` and mounts via `dsh.bundle.patch` (the shipped `cordis.patch.yml`), so the DSH source is never modified.
126
+ `curl | bash` / `irm | iex` executes remote code — the scripts are open source in the repo (`scripts/install.sh` / `scripts/install.ps1`); download and review them first if you prefer. The plugin ships as npm package `dsh-better-sidebar@0.11.0` and mounts via `dsh.bundle.patch` (the shipped `cordis.patch.yml`), so the DSH source is never modified.
120
127
 
121
128
  </details>
122
129
 
@@ -127,7 +134,7 @@ The one-click script does four things, all idempotent (safe to re-run):
127
134
  dsh plugin --profile web add dsh-better-sidebar
128
135
  ```
129
136
 
130
- or re-run the one-click script; or bump the version in `~/.dsh/profiles/web/package.json` (e.g. `"^0.10.3"`) and run `pnpm install`. Then restart DSH and hard-refresh (Cmd/Ctrl+Shift+R).
137
+ or re-run the one-click script; or bump the version in `~/.dsh/profiles/web/package.json` (e.g. `"^0.11.0"`) and run `pnpm install`. Then hard-refresh the browser (Cmd/Ctrl+Shift+R) — client changes do not need a DSH restart.
131
138
 
132
139
  </details>
133
140
 
@@ -162,7 +169,7 @@ To debug local changes or track the dev branch, point the dependency at a local
162
169
  5. Restart DSH and hard-refresh
163
170
  ```
164
171
 
165
- Update: `git pull && pnpm install && pnpm build` → restart DSH (client-only changes can just hard-refresh). To switch back to the npm channel, restore `"dsh-better-sidebar": "^0.10.3"` and re-run `pnpm install`.
172
+ Update: `git pull && pnpm install && pnpm build` → just hard-refresh the browser (client changes hot-reload; only host-half changes need a DSH restart). To switch back to the npm channel, restore `"dsh-better-sidebar": "^0.11.0"` and re-run `pnpm install`.
166
173
 
167
174
  </details>
168
175
 
@@ -240,3 +247,7 @@ pnpm watch # tsdown --watch
240
247
  ## 🖥️ Platform Support
241
248
 
242
249
  Windows / Linux / macOS (macOS validated daily; the rest covered by unit tests); `node-pty` prefers prebuilt binaries, otherwise a build toolchain is required (Windows VS Build Tools / Linux make+g+++python3 / macOS Xcode CLT).
250
+
251
+ ## 🔗 Friends
252
+
253
+ - [dsh-tianshu-tui](https://github.com/huiliyi37/dsh-tianshu-tui): an interactive terminal UI plugin for DeepSeek Harness (its rendering core evolved from the self-developed harness agent Tianshu-Tui), adding TDD and evidence-gate workflows on top of the official harness
@@ -174,6 +174,9 @@ globalThis.__dshChunks__["docx"] = (require) => {
174
174
  copyAbsolute: "复制绝对地址",
175
175
  download: "下载",
176
176
  settingsNav: "侧边卡片",
177
+ settingsIntro: "管理侧边卡片的显示内容与默认行为",
178
+ settingsPopupDesc: "为「{feature}」配置相关选项",
179
+ settingsDone: "完成",
177
180
  settingsOpenTitle: "新会话默认打开",
178
181
  settingsOpenDesc: "新建会话时自动展开侧边卡片;已存在的会话保持各自布局",
179
182
  settingsWidthTitle: "默认宽度占比",
@@ -201,6 +204,12 @@ globalThis.__dshChunks__["docx"] = (require) => {
201
204
  settingsToolsDesc: "开启后,模型可通过 terminal_create 等 8 个工具创建并操作侧边栏终端(默认关闭)",
202
205
  settingsBottomTerminalTitle: "底部面板首次展开自动开终端",
203
206
  settingsBottomTerminalDesc: "每次会话中第一次展开底部面板时,尝试在底部面板自动打开一个新终端标签(终端数量上限仍会限制;默认开启)",
207
+ settingsFontFamilyTitle: "终端字体",
208
+ settingsFontFamilyDesc: "自定义终端字体族(CSS font-family,如 \"JetBrains Mono\", monospace;留空跟随主题等宽字体)",
209
+ settingsFontFamilyPlaceholder: "\"JetBrains Mono\", monospace",
210
+ settingsFontSizeTitle: "终端字号",
211
+ settingsFontSizeDesc: "终端字号(9–32,默认 13)",
212
+ settingsFontSizeSuffix: "px",
204
213
  settingsTabsTitle: "侧边栏内容",
205
214
  settingsViewersTitle: "文件预览",
206
215
  settingsGeneralTitle: "常规",
@@ -374,6 +383,9 @@ globalThis.__dshChunks__["docx"] = (require) => {
374
383
  copyAbsolute: "Copy absolute path",
375
384
  download: "Download",
376
385
  settingsNav: "Side card",
386
+ settingsIntro: "Manage what the side card shows and how it behaves",
387
+ settingsPopupDesc: "Configure related options for {feature}",
388
+ settingsDone: "Done",
377
389
  settingsOpenTitle: "Open by default for new conversations",
378
390
  settingsOpenDesc: "Expand the side card automatically for brand-new conversations; existing conversations keep their own layouts",
379
391
  settingsWidthTitle: "Default width share",
@@ -401,6 +413,12 @@ globalThis.__dshChunks__["docx"] = (require) => {
401
413
  settingsToolsDesc: "When enabled, the model can create and drive sidebar terminals through the 8 terminal_* tools (off by default)",
402
414
  settingsBottomTerminalTitle: "Auto-open a terminal on the bottom panel's first expansion",
403
415
  settingsBottomTerminalDesc: "When the bottom panel is expanded for the first time in a session, try to open a fresh terminal tab there (the terminal quota still applies; on by default)",
416
+ settingsFontFamilyTitle: "Terminal font family",
417
+ settingsFontFamilyDesc: "Custom terminal font family (a CSS font-family stack like \"JetBrains Mono\", monospace; leave empty to follow the theme's monospace font)",
418
+ settingsFontFamilyPlaceholder: "\"JetBrains Mono\", monospace",
419
+ settingsFontSizeTitle: "Terminal font size",
420
+ settingsFontSizeDesc: "Terminal font size in px (9–32, default 13)",
421
+ settingsFontSizeSuffix: "px",
404
422
  settingsTabsTitle: "Sidebar content",
405
423
  settingsViewersTitle: "File viewers",
406
424
  settingsGeneralTitle: "General",
@@ -502,182 +520,182 @@ globalThis.__dshChunks__["docx"] = (require) => {
502
520
  document.head.appendChild(tag);
503
521
  }
504
522
  var sidebar_module_css_default = {
505
- "splitChild": "W-zNGW_splitChild",
506
- "editorModeToggle": "W-zNGW_editorModeToggle",
507
- "tabBarPlus": "W-zNGW_tabBarPlus",
508
- "terminalRetry": "W-zNGW_terminalRetry",
509
- "sandboxStatusOff": "W-zNGW_sandboxStatusOff",
510
- "editorDocx": "W-zNGW_editorDocx",
511
- "editorMd": "W-zNGW_editorMd",
512
- "browserBlocked": "W-zNGW_browserBlocked",
513
- "gitDiffFileOld": "W-zNGW_gitDiffFileOld",
514
- "dropOverlay": "W-zNGW_dropOverlay",
515
- "tabList": "W-zNGW_tabList",
516
- "explorerCopied": "W-zNGW_explorerCopied",
523
+ "bottomPanel": "W-zNGW_bottomPanel",
517
524
  "editorStatus": "W-zNGW_editorStatus",
518
- "browserMessage": "W-zNGW_browserMessage",
519
- "editorPdfDragShieldActive": "W-zNGW_editorPdfDragShieldActive",
520
- "splitRow": "W-zNGW_splitRow",
521
- "terminalBanner": "W-zNGW_terminalBanner",
522
- "gitDiffFile": "W-zNGW_gitDiffFile",
523
- "explorerRef": "W-zNGW_explorerRef",
524
- "editorDocxZoomRange": "W-zNGW_editorDocxZoomRange",
525
- "dirtyDot": "W-zNGW_dirtyDot",
526
- "gitRow": "W-zNGW_gitRow",
527
- "terminalWrap": "W-zNGW_terminalWrap",
528
- "gitName": "W-zNGW_gitName",
525
+ "editorXlsx": "W-zNGW_editorXlsx",
526
+ "boundaryError": "W-zNGW_boundaryError",
527
+ "explorerError": "W-zNGW_explorerError",
528
+ "gitBranchSelect": "W-zNGW_gitBranchSelect",
529
+ "terminalRetry": "W-zNGW_terminalRetry",
530
+ "gitDiffNum": "W-zNGW_gitDiffNum",
531
+ "orphanedType": "W-zNGW_orphanedType",
532
+ "editorDownloadLink": "W-zNGW_editorDownloadLink",
533
+ "browserStart": "W-zNGW_browserStart",
534
+ "browserBlockedButton": "W-zNGW_browserBlockedButton",
535
+ "panelResize": "W-zNGW_panelResize",
536
+ "explorerHidden": "W-zNGW_explorerHidden",
537
+ "explorerRoot": "W-zNGW_explorerRoot",
538
+ "editorPdfStage": "W-zNGW_editorPdfStage",
539
+ "browserBar": "W-zNGW_browserBar",
540
+ "gitDiffTab": "W-zNGW_gitDiffTab",
541
+ "dividerCol": "W-zNGW_dividerCol",
529
542
  "explorerEmpty": "W-zNGW_explorerEmpty",
530
- "git": "W-zNGW_git",
531
- "toggleButton": "W-zNGW_toggleButton",
532
- "editorPptxButton": "W-zNGW_editorPptxButton",
533
- "gitDiffFileTag": "W-zNGW_gitDiffFileTag",
534
- "gitLogRow": "W-zNGW_gitLogRow",
535
- "gitRowMain": "W-zNGW_gitRowMain",
536
- "tabTitle": "W-zNGW_tabTitle",
537
- "editorBinaryNotice": "W-zNGW_editorBinaryNotice",
538
- "editorImage": "W-zNGW_editorImage",
539
- "editorDocxWrap": "W-zNGW_editorDocxWrap",
540
- "editorDocxZoomValue": "W-zNGW_editorDocxZoomValue",
543
+ "gitBadge": "W-zNGW_gitBadge",
541
544
  "editorHtml": "W-zNGW_editorHtml",
542
- "editorPdfFrame": "W-zNGW_editorPdfFrame",
543
- "producedLabel": "W-zNGW_producedLabel",
544
- "editorError": "W-zNGW_editorError",
545
- "bottomPanelHidden": "W-zNGW_bottomPanelHidden",
546
- "editorPptx": "W-zNGW_editorPptx",
547
- "sandboxStatusOn": "W-zNGW_sandboxStatusOn",
548
- "gitLogLine2": "W-zNGW_gitLogLine2",
549
- "gitLogSubject": "W-zNGW_gitLogSubject",
545
+ "gitEmpty": "W-zNGW_gitEmpty",
546
+ "gitDiffLine": "W-zNGW_gitDiffLine",
547
+ "dropRight": "W-zNGW_dropRight",
550
548
  "gitDiffHunk": "W-zNGW_gitDiffHunk",
549
+ "paneCard": "W-zNGW_paneCard",
550
+ "gitRowMain": "W-zNGW_gitRowMain",
551
+ "editorHeader": "W-zNGW_editorHeader",
552
+ "gitDiffMetaText": "W-zNGW_gitDiffMetaText",
553
+ "producedRow": "W-zNGW_producedRow",
554
+ "tab": "W-zNGW_tab",
555
+ "editorModeActive": "W-zNGW_editorModeActive",
556
+ "editorDocxWrap": "W-zNGW_editorDocxWrap",
557
+ "editorPdfDragShieldActive": "W-zNGW_editorPdfDragShieldActive",
558
+ "gitSectionHeader": "W-zNGW_gitSectionHeader",
559
+ "cornerHandle": "W-zNGW_cornerHandle",
560
+ "gitDiffHunkHeader": "W-zNGW_gitDiffHunkHeader",
561
+ "gitLogRow": "W-zNGW_gitLogRow",
562
+ "explorerName": "W-zNGW_explorerName",
563
+ "gitDiffTabHeader": "W-zNGW_gitDiffTabHeader",
551
564
  "gitCommitInput": "W-zNGW_gitCommitInput",
552
- "editorDocxViewport": "W-zNGW_editorDocxViewport",
553
- "producedMore": "W-zNGW_producedMore",
554
- "toggleCluster": "W-zNGW_toggleCluster",
555
- "editorPdfStage": "W-zNGW_editorPdfStage",
556
- "dividerActive": "W-zNGW_dividerActive",
565
+ "gitLogRef": "W-zNGW_gitLogRef",
566
+ "bottomClose": "W-zNGW_bottomClose",
567
+ "explorerDir": "W-zNGW_explorerDir",
568
+ "editorDocxZoom": "W-zNGW_editorDocxZoom",
557
569
  "gitDiffDel": "W-zNGW_gitDiffDel",
558
- "iconButton": "W-zNGW_iconButton",
559
- "gitCommit": "W-zNGW_gitCommit",
560
- "gitLogMeta": "W-zNGW_gitLogMeta",
561
- "producedChip": "W-zNGW_producedChip",
562
- "panelResize": "W-zNGW_panelResize",
563
- "gitDiffHunkHeader": "W-zNGW_gitDiffHunkHeader",
564
- "explorerBody": "W-zNGW_explorerBody",
565
- "editorDocxZoomHint": "W-zNGW_editorDocxZoomHint",
566
- "gitEmpty": "W-zNGW_gitEmpty",
567
- "tabBarDrop": "W-zNGW_tabBarDrop",
568
- "editorPdf": "W-zNGW_editorPdf",
569
- "bottomResizeActive": "W-zNGW_bottomResizeActive",
570
- "browserBlockedDesc": "W-zNGW_browserBlockedDesc",
571
- "editorOfficeOverlay": "W-zNGW_editorOfficeOverlay",
570
+ "splitChild": "W-zNGW_splitChild",
571
+ "terminalBannerUrl": "W-zNGW_terminalBannerUrl",
572
572
  "tabBar": "W-zNGW_tabBar",
573
- "panelHidden": "W-zNGW_panelHidden",
574
- "boundaryError": "W-zNGW_boundaryError",
575
- "gitSectionHeader": "W-zNGW_gitSectionHeader",
576
- "browserInput": "W-zNGW_browserInput",
573
+ "paneTab": "W-zNGW_paneTab",
574
+ "splitCol": "W-zNGW_splitCol",
575
+ "sandboxStatusText": "W-zNGW_sandboxStatusText",
576
+ "git": "W-zNGW_git",
577
577
  "gitDiffHunkSection": "W-zNGW_gitDiffHunkSection",
578
- "divider": "W-zNGW_divider",
578
+ "gitDiffCtx": "W-zNGW_gitDiffCtx",
579
+ "editorBanner": "W-zNGW_editorBanner",
580
+ "gitRowSelected": "W-zNGW_gitRowSelected",
581
+ "paneEmptyCards": "W-zNGW_paneEmptyCards",
582
+ "terminalBanner": "W-zNGW_terminalBanner",
583
+ "explorerBody": "W-zNGW_explorerBody",
584
+ "gitLink": "W-zNGW_gitLink",
585
+ "gitLogLine2": "W-zNGW_gitLogLine2",
586
+ "editorPdfToolbar": "W-zNGW_editorPdfToolbar",
587
+ "dropDown": "W-zNGW_dropDown",
588
+ "editorUniverHost": "W-zNGW_editorUniverHost",
589
+ "sandboxStatusOn": "W-zNGW_sandboxStatusOn",
579
590
  "sandboxStatus": "W-zNGW_sandboxStatus",
591
+ "tabTitle": "W-zNGW_tabTitle",
592
+ "sandboxStatusOff": "W-zNGW_sandboxStatusOff",
593
+ "editorDocxZoomRange": "W-zNGW_editorDocxZoomRange",
594
+ "bottomPanelHidden": "W-zNGW_bottomPanelHidden",
595
+ "pane": "W-zNGW_pane",
596
+ "editorPptxButton": "W-zNGW_editorPptxButton",
597
+ "paneTabHidden": "W-zNGW_paneTabHidden",
598
+ "gitDiffFileTag": "W-zNGW_gitDiffFileTag",
599
+ "gitLogSubject": "W-zNGW_gitLogSubject",
600
+ "gitHeader": "W-zNGW_gitHeader",
601
+ "editorOfficeOverlay": "W-zNGW_editorOfficeOverlay",
602
+ "gitCommitButton": "W-zNGW_gitCommitButton",
603
+ "editorPptxToolbar": "W-zNGW_editorPptxToolbar",
604
+ "gitLogMeta": "W-zNGW_gitLogMeta",
605
+ "gitDiffCode": "W-zNGW_gitDiffCode",
606
+ "browserBlockedDesc": "W-zNGW_browserBlockedDesc",
607
+ "tabActive": "W-zNGW_tabActive",
608
+ "editorImage": "W-zNGW_editorImage",
609
+ "explorerRow": "W-zNGW_explorerRow",
610
+ "gitDiffTabTitle": "W-zNGW_gitDiffTabTitle",
611
+ "dividerActive": "W-zNGW_dividerActive",
612
+ "dirtyDot": "W-zNGW_dirtyDot",
613
+ "editorPptx": "W-zNGW_editorPptx",
580
614
  "editorPptxHost": "W-zNGW_editorPptxHost",
615
+ "panelBody": "W-zNGW_panelBody",
616
+ "gitRow": "W-zNGW_gitRow",
617
+ "split": "W-zNGW_split",
618
+ "gitDiffFile": "W-zNGW_gitDiffFile",
619
+ "gitDiffFilePath": "W-zNGW_gitDiffFilePath",
620
+ "gitDiffFileOld": "W-zNGW_gitDiffFileOld",
581
621
  "gitDiffAdd": "W-zNGW_gitDiffAdd",
582
- "editorPdfDragShield": "W-zNGW_editorPdfDragShield",
583
- "gitDiffTabHeader": "W-zNGW_gitDiffTabHeader",
584
- "gitLink": "W-zNGW_gitLink",
585
- "paneCard": "W-zNGW_paneCard",
586
- "workbench": "W-zNGW_workbench",
587
- "gitDiffMeta": "W-zNGW_gitDiffMeta",
622
+ "editorBinary": "W-zNGW_editorBinary",
623
+ "editor": "W-zNGW_editor",
624
+ "gitLogLine1": "W-zNGW_gitLogLine1",
625
+ "sandboxDot": "W-zNGW_sandboxDot",
626
+ "panelResizeActive": "W-zNGW_panelResizeActive",
588
627
  "gitLogMore": "W-zNGW_gitLogMore",
589
- "dropLeft": "W-zNGW_dropLeft",
590
- "producedRow": "W-zNGW_producedRow",
591
- "explorerError": "W-zNGW_explorerError",
592
- "gitDiffMetaText": "W-zNGW_gitDiffMetaText",
628
+ "panel": "W-zNGW_panel",
629
+ "paneContent": "W-zNGW_paneContent",
630
+ "toggleCluster": "W-zNGW_toggleCluster",
631
+ "editorDocxViewport": "W-zNGW_editorDocxViewport",
593
632
  "gitConfirmDesc": "W-zNGW_gitConfirmDesc",
594
- "editorPlaceholder": "W-zNGW_editorPlaceholder",
595
- "editorPptxToolbar": "W-zNGW_editorPptxToolbar",
596
- "terminal": "W-zNGW_terminal",
597
- "editorBanner": "W-zNGW_editorBanner",
598
- "panelBody": "W-zNGW_panelBody",
599
- "explorerHeader": "W-zNGW_explorerHeader",
600
- "dsh-row-in": "W-zNGW_dsh-row-in",
601
- "browserBlockedActions": "W-zNGW_browserBlockedActions",
602
- "panelResizeActive": "W-zNGW_panelResizeActive",
603
- "explorerDir": "W-zNGW_explorerDir",
604
- "orphanedType": "W-zNGW_orphanedType",
605
- "gitSection": "W-zNGW_gitSection",
606
- "gitLogRef": "W-zNGW_gitLogRef",
607
- "dropUp": "W-zNGW_dropUp",
608
- "cornerHandle": "W-zNGW_cornerHandle",
609
- "explorerRoot": "W-zNGW_explorerRoot",
610
- "split": "W-zNGW_split",
611
- "pane": "W-zNGW_pane",
612
- "bottomClose": "W-zNGW_bottomClose",
613
- "bottomResize": "W-zNGW_bottomResize",
614
- "splitCol": "W-zNGW_splitCol",
615
- "dropRight": "W-zNGW_dropRight",
616
- "sandboxStatusText": "W-zNGW_sandboxStatusText",
633
+ "tabClose": "W-zNGW_tabClose",
634
+ "editorBinaryNotice": "W-zNGW_editorBinaryNotice",
617
635
  "editorCm": "W-zNGW_editorCm",
618
- "paneEmptyCards": "W-zNGW_paneEmptyCards",
619
- "editorXlsx": "W-zNGW_editorXlsx",
620
- "editorPdfFrameBlocked": "W-zNGW_editorPdfFrameBlocked",
636
+ "editorModeToggle": "W-zNGW_editorModeToggle",
637
+ "terminal": "W-zNGW_terminal",
621
638
  "editorPptxPosition": "W-zNGW_editorPptxPosition",
622
- "paneTab": "W-zNGW_paneTab",
623
- "paneDrop": "W-zNGW_paneDrop",
639
+ "producedMore": "W-zNGW_producedMore",
640
+ "gitDiffMeta": "W-zNGW_gitDiffMeta",
641
+ "editorError": "W-zNGW_editorError",
642
+ "selectionPopup": "W-zNGW_selectionPopup",
643
+ "iconButton": "W-zNGW_iconButton",
644
+ "editorPlaceholder": "W-zNGW_editorPlaceholder",
645
+ "editorMd": "W-zNGW_editorMd",
646
+ "editorStatusError": "W-zNGW_editorStatusError",
647
+ "editorPdfDragShield": "W-zNGW_editorPdfDragShield",
648
+ "bottomResizeActive": "W-zNGW_bottomResizeActive",
624
649
  "dropCenter": "W-zNGW_dropCenter",
625
- "editor": "W-zNGW_editor",
650
+ "terminalWrap": "W-zNGW_terminalWrap",
651
+ "splitRow": "W-zNGW_splitRow",
652
+ "producedChip": "W-zNGW_producedChip",
653
+ "explorerCopied": "W-zNGW_explorerCopied",
654
+ "gitSection": "W-zNGW_gitSection",
655
+ "editorDocx": "W-zNGW_editorDocx",
656
+ "gitDiff": "W-zNGW_gitDiff",
657
+ "gitError": "W-zNGW_gitError",
658
+ "paneDrop": "W-zNGW_paneDrop",
659
+ "gitCommit": "W-zNGW_gitCommit",
660
+ "producedLabel": "W-zNGW_producedLabel",
626
661
  "sandboxAction": "W-zNGW_sandboxAction",
627
- "browserBlockedButton": "W-zNGW_browserBlockedButton",
628
- "terminalBannerUrl": "W-zNGW_terminalBannerUrl",
629
- "gitRowSelected": "W-zNGW_gitRowSelected",
630
- "gitLogLine1": "W-zNGW_gitLogLine1",
631
- "dividerRow": "W-zNGW_dividerRow",
632
- "browserBar": "W-zNGW_browserBar",
633
- "panel": "W-zNGW_panel",
634
- "browserBlockedTitle": "W-zNGW_browserBlockedTitle",
635
- "tabActive": "W-zNGW_tabActive",
636
- "selectionPopup": "W-zNGW_selectionPopup",
637
- "browserStart": "W-zNGW_browserStart",
638
- "gitDiffTab": "W-zNGW_gitDiffTab",
662
+ "tabBarDrop": "W-zNGW_tabBarDrop",
663
+ "explorerRef": "W-zNGW_explorerRef",
664
+ "editorImageWrap": "W-zNGW_editorImageWrap",
665
+ "gitPlaceholder": "W-zNGW_gitPlaceholder",
666
+ "bottomResize": "W-zNGW_bottomResize",
667
+ "divider": "W-zNGW_divider",
668
+ "editorPdfFrame": "W-zNGW_editorPdfFrame",
669
+ "editorPdfFrameBlocked": "W-zNGW_editorPdfFrameBlocked",
670
+ "dropUp": "W-zNGW_dropUp",
671
+ "dsh-row-in": "W-zNGW_dsh-row-in",
672
+ "tabBarPlus": "W-zNGW_tabBarPlus",
673
+ "editorTitle": "W-zNGW_editorTitle",
674
+ "explorerHeader": "W-zNGW_explorerHeader",
639
675
  "browser": "W-zNGW_browser",
640
- "dividerCol": "W-zNGW_dividerCol",
641
- "tabClose": "W-zNGW_tabClose",
676
+ "browserFrame": "W-zNGW_browserFrame",
677
+ "browserBlockedActions": "W-zNGW_browserBlockedActions",
678
+ "browserInput": "W-zNGW_browserInput",
642
679
  "editorCmHidden": "W-zNGW_editorCmHidden",
643
- "gitBranchSelect": "W-zNGW_gitBranchSelect",
680
+ "editorDocxZoomHint": "W-zNGW_editorDocxZoomHint",
681
+ "editorModeButton": "W-zNGW_editorModeButton",
644
682
  "gitDiffExpand": "W-zNGW_gitDiffExpand",
645
- "editorModeActive": "W-zNGW_editorModeActive",
646
- "gitHeader": "W-zNGW_gitHeader",
647
- "gitCommitButton": "W-zNGW_gitCommitButton",
683
+ "browserBlockedTitle": "W-zNGW_browserBlockedTitle",
684
+ "toggleButton": "W-zNGW_toggleButton",
685
+ "workbench": "W-zNGW_workbench",
686
+ "dropLeft": "W-zNGW_dropLeft",
687
+ "tabList": "W-zNGW_tabList",
688
+ "gitName": "W-zNGW_gitName",
648
689
  "gitLogHash": "W-zNGW_gitLogHash",
649
- "gitDiffCtx": "W-zNGW_gitDiffCtx",
650
- "editorDownloadLink": "W-zNGW_editorDownloadLink",
651
- "browserFrame": "W-zNGW_browserFrame",
652
- "editorDocxZoom": "W-zNGW_editorDocxZoom",
653
- "gitDiffCode": "W-zNGW_gitDiffCode",
654
- "bottomPanel": "W-zNGW_bottomPanel",
655
- "gitDiffLine": "W-zNGW_gitDiffLine",
656
- "editorBinary": "W-zNGW_editorBinary",
657
- "editorPdfToolbar": "W-zNGW_editorPdfToolbar",
658
- "editorUniverHost": "W-zNGW_editorUniverHost",
659
- "editorTitle": "W-zNGW_editorTitle",
660
- "tab": "W-zNGW_tab",
661
- "paneContent": "W-zNGW_paneContent",
662
- "editorImageWrap": "W-zNGW_editorImageWrap",
663
- "explorerName": "W-zNGW_explorerName",
664
- "explorerRow": "W-zNGW_explorerRow",
665
- "editorHeader": "W-zNGW_editorHeader",
666
- "sandboxDot": "W-zNGW_sandboxDot",
667
- "gitBadge": "W-zNGW_gitBadge",
668
- "gitDiffTabTitle": "W-zNGW_gitDiffTabTitle",
669
- "editorStatusError": "W-zNGW_editorStatusError",
690
+ "panelHidden": "W-zNGW_panelHidden",
691
+ "dividerRow": "W-zNGW_dividerRow",
692
+ "explorer": "W-zNGW_explorer",
693
+ "editorPdf": "W-zNGW_editorPdf",
670
694
  "editorPptxStage": "W-zNGW_editorPptxStage",
671
- "gitPlaceholder": "W-zNGW_gitPlaceholder",
672
- "gitDiffFilePath": "W-zNGW_gitDiffFilePath",
673
- "gitDiff": "W-zNGW_gitDiff",
674
- "paneTabHidden": "W-zNGW_paneTabHidden",
675
- "explorerHidden": "W-zNGW_explorerHidden",
676
- "dropDown": "W-zNGW_dropDown",
677
- "editorModeButton": "W-zNGW_editorModeButton",
678
- "gitError": "W-zNGW_gitError",
679
- "gitDiffNum": "W-zNGW_gitDiffNum",
680
- "explorer": "W-zNGW_explorer"
695
+ "browserBlocked": "W-zNGW_browserBlocked",
696
+ "editorDocxZoomValue": "W-zNGW_editorDocxZoomValue",
697
+ "dropOverlay": "W-zNGW_dropOverlay",
698
+ "browserMessage": "W-zNGW_browserMessage"
681
699
  };
682
700
  //#endregion
683
701
  //#region src/client/office-shared.tsx