@chatcode/cco-better-sidebar 0.18.0-rc.2 → 0.18.0-rc.4
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 +7 -2
- package/README_EN.md +7 -2
- package/lib/client-editor.js +319 -262
- package/lib/client-mermaid.js +300 -258
- package/lib/client-registry.js +1104 -467
- package/lib/client-terminal.js +315 -258
- package/lib/client.js +1107 -470
- package/lib/index.js +49 -3
- package/lib/types/client/PluginMarketSettingsSection.d.ts +7 -0
- package/lib/types/client/PluginMarketView.d.ts +7 -0
- package/lib/types/client/api.d.ts +15 -0
- package/lib/types/client/builtins/tabs.d.ts +6 -3
- package/lib/types/client/locales.d.ts +21 -0
- package/lib/types/client/plugin-market-catalog.d.ts +25 -0
- package/lib/types/client/ui-tweaks/index.d.ts +1 -1
- package/lib/types/client/ui-tweaks/typography.d.ts +9 -0
- package/lib/types/plugin-market-api.d.ts +5 -0
- package/lib/types/plugin-market-shared.d.ts +37 -0
- package/lib/types/pty-deps.d.ts +1 -1
- package/lib/types/ui-tweaks/config.d.ts +5 -6
- package/package.json +2 -2
- package/src/client/PluginMarketSettingsSection.tsx +55 -0
- package/src/client/PluginMarketView.module.css +35 -0
- package/src/client/PluginMarketView.tsx +154 -0
- package/src/client/api.ts +7 -0
- package/src/client/builtins/tabs.tsx +16 -3
- package/src/client/index.tsx +10 -1
- package/src/client/locales-ja.ts +21 -0
- package/src/client/locales.ts +42 -0
- package/src/client/plugin-market-catalog.ts +90 -0
- package/src/client/ui-tweaks/branding.tsx +15 -7
- package/src/client/ui-tweaks/index.tsx +36 -99
- package/src/client/ui-tweaks/typography.ts +38 -0
- package/src/index.ts +2 -0
- package/src/plugin-market-api.ts +42 -0
- package/src/plugin-market-shared.ts +21 -0
- package/src/pty-deps.ts +2 -2
- package/src/ui-tweaks/config.ts +10 -10
package/README.md
CHANGED
|
@@ -25,6 +25,8 @@
|
|
|
25
25
|
<video src="https://github.com/user-attachments/assets/23187822-047e-45cc-b480-fe997bd55b86" muted autoplay loop playsinline controls width="100%"></video>
|
|
26
26
|
</div>
|
|
27
27
|
|
|
28
|
+
品牌适配仅作用于产品标识与版本声明;输入框草稿、粘贴内容、会话正文和代码保留原文。
|
|
29
|
+
|
|
28
30
|
## 📑 目录
|
|
29
31
|
|
|
30
32
|
- [✨ 功能一览](#-功能一览)
|
|
@@ -50,7 +52,7 @@
|
|
|
50
52
|
- **📌 固定终端**:右键终端 Tab 可「固定到工作区 / 固定到全局」——固定后切换会话不消失,在 TabBar 内联呈现(跨会话虚拟 Tab,点击就地激活,PTY 按 home 会话 id+tab 直连宿主 PTY,无需切回宿主会话);Agent 终端被 reconcile 移除时豁免保留
|
|
51
53
|
- **🔁 会话隔离**:布局 / Tab / 面板按会话持久化,陈旧状态自动净化
|
|
52
54
|
- **⚙️ 声明式设置**:设置页「侧边卡片」逐项独立开关,二级设置经齿轮弹窗
|
|
53
|
-
- **🎛️ 界面调整(已合并 dsh-ui-tweaks)**:消息/代码字号与行距、Claude 风格表格、GitBar、归档与 MCP 管理、`/init`、鲸鱼工作指示、任务通知和精确缓存命中率均由本插件直接提供;在 DSH 0.1.7 中与侧边卡片设置一起由 `better-sidebar`
|
|
55
|
+
- **🎛️ 界面调整(已合并 dsh-ui-tweaks)**:消息/代码字号与行距、Claude 风格表格、GitBar、归档与 MCP 管理、`/init`、鲸鱼工作指示、任务通知和精确缓存命中率均由本插件直接提供;在 DSH 0.1.7 中与侧边卡片设置一起由 `better-sidebar` 配置表单实时管理。默认正文 14px、代码 13px,与主界面一致;消息与表格共用字号和行高,标题只增加少量字号;字体设置保留粗体、斜体及主题字体,并同步输入框的文字尺寸
|
|
54
56
|
- **⚡ 按需加载**:启动只拉 ~325KB 核心,终端 / 编辑器 / Mermaid 图表等重依赖用到才按需拉取([设计文档](docs/plans/2026-08-12-lazy-chunks-design.md))
|
|
55
57
|
- **🌏 多语言**:界面文案跟随 ChatCode CLI 语言(zh / en)实时切换;安装 `@huanlin/dsh-plugin-better-locale` 后支持日语(ja)等第三语言覆盖(见下方「🌏 第三语言覆盖」)
|
|
56
58
|
- **🆕 版本更新日志**:升级后首次打开 Web 端时展示后台配置的当前版本 Markdown 更新内容;跨多个版本升级也只展示当前版本的一条日志
|
|
@@ -108,8 +110,9 @@ chatcode-cli plugin --profile web add @chatcode/cco-better-sidebar@latest
|
|
|
108
110
|
| 报「找不到 profile 目录」 | 先跑一次 `chatcode-cli web`,让它初始化 `~/.chatcode-cli/profiles/web`。 |
|
|
109
111
|
| 页面出现**两个侧边栏** | 双挂载。旧的手动挂载行:`~/.chatcode-cli/profiles/web/cordis.patch.yml` 还留着 `- insert: ... better-sidebar ...`,删掉那段(同 id 重复挂载 loader 会直接报 `duplicate loader entry id`)。聚合包(如 `@linxin666/dsh-web-ui-all`)以**不同 id** 挂载本包时,0.13.x 起插件自身 bundle patch 会自动退让(检测到已有启用中的同包名挂载就不挂自己),无需手动处理;若仍双挂载,先确认聚合包的 bundle 顺序在 `dsh-better-sidebar` 之前。 |
|
|
110
112
|
| 启动时报 `/_dsh/ui-tweaks` 路由重复 | profile 中仍挂载着独立的 `dsh-ui-tweaks`。移除该旧插件行/旧 bundle,只保留 `dsh-better-sidebar`;升级 DSH 0.1.7 时旧设置会导入 `better-sidebar` 配置条目。 |
|
|
113
|
+
| macOS 报 `posix_spawnp failed` / Windows 打开终端卡住 | `0.18.0-rc.3` 起与主程序固定使用 `node-pty@1.2.0-beta.15`:Mac 安装包携带可执行的 `spawn-helper`,普通用户无需修改 root 安装文件;Windows 在 ConPTY 输出线程就绪后再连接。更新侧边栏依赖并重启 Web 服务。 |
|
|
111
114
|
| Windows 下终端无法使用 | `node-pty` 依赖预编译二进制;若当前 Node 版本没有对应产物,需装编译工具链(VS Build Tools)。主流 Node 版本一般已有预编译。 |
|
|
112
|
-
| 终端提示「node-pty 加载失败」 | `node-pty` 安装缺失/损坏(如 pnpm 拦截了构建脚本)。终端横幅会给出修复命令:复制到 ChatCode CLI 所在环境的终端/cmd 执行(在 `~/.chatcode-cli/profiles/web` 下 `pnpm approve-builds --all && pnpm rebuild node-pty`),完成后重启 ChatCode CLI 并点重试。插件与 ChatCode CLI 核心使用同一 `node-pty
|
|
115
|
+
| 终端提示「node-pty 加载失败」 | `node-pty` 安装缺失/损坏(如 pnpm 拦截了构建脚本)。终端横幅会给出修复命令:复制到 ChatCode CLI 所在环境的终端/cmd 执行(在 `~/.chatcode-cli/profiles/web` 下 `pnpm approve-builds --all && pnpm rebuild node-pty`),完成后重启 ChatCode CLI 并点重试。插件与 ChatCode CLI 核心使用同一 `node-pty@1.2.0-beta.15`,修复后两者同步恢复。 |
|
|
113
116
|
| 提示 `chatcode-cli: command not found` | 先安装 ChatCode CLI;或直接用 `npx -y --package @chatcode/chatcode-cli chatcode-cli plugin --profile web add @chatcode/cco-better-sidebar@latest`。旧 `dsh` 命令仅作为隐藏兼容别名。 |
|
|
114
117
|
|
|
115
118
|
</details>
|
|
@@ -551,4 +554,6 @@ Windows / Linux / macOS 三平台适配(macOS 日常验证;其余经单元
|
|
|
551
554
|
|
|
552
555
|
## ChatCode 账号入口
|
|
553
556
|
|
|
557
|
+
设置 →「插件市场」已替换为内部市场,也可从侧栏「+」菜单进入。先展示内部市场及默认 ChatCode 官方市场,点击市场后以「技能市场」同款卡片展示插件;项目级、用户级安装或卸载按钮直接位于卡片内。市场列表在 Web 启动时加载一次,插件目录首次进入时加载并缓存;返回、切换标签或重开设置不会重复请求,有更新时点击「刷新」。页面显示实际项目目录,本机安装记录与 CLI `/plugins` 共用并自动同步。需要启用新版 config 插件,配置及加载能力见 [插件市场说明](../dsh-llm-chatcode-config/docs/plugin-market.zh.md)。
|
|
558
|
+
|
|
554
559
|
从当前主库源码执行 `pnpm cco web` 时,启动包装器会自动叠加本侧栏和 `dsh-llm-chatcode-config`,无需向 `web` profile 安装。未登录时显示全屏门禁;登录后左下角账号菜单提供状态与退出。令牌由配置插件通过兼容凭据服务管理,Web 只展示账号和操作结果。浏览器未自动打开时可使用备用链接。两端共享条件及操作步骤见相邻配置插件仓库的 [使用手册](../dsh-llm-chatcode-config/docs/chatcode-login.zh.md)。
|
package/README_EN.md
CHANGED
|
@@ -25,6 +25,8 @@
|
|
|
25
25
|
<img alt="dsh-better-sidebar workbench" src="https://github.com/user-attachments/assets/dfdb875e-a1a8-4d4b-8340-353736b1708f" />
|
|
26
26
|
</div>
|
|
27
27
|
|
|
28
|
+
Brand adaptation applies to product identity and version notices; composer drafts, pasted content, conversation text, and code retain their original text.
|
|
29
|
+
|
|
28
30
|
## 📑 Contents
|
|
29
31
|
|
|
30
32
|
- [✨ Features](#-features)
|
|
@@ -50,7 +52,7 @@
|
|
|
50
52
|
- **📌 Pinned Terminals**: right-click a terminal tab to "Pin to Workspace / Pin Globally" — pinned terminals survive session switches and surface inline in the TabBar as virtual tabs (click activates in-place, PTY connects directly to the home session's PTY via WS, no session jump needed); agent terminals exempted from reconcile removal
|
|
51
53
|
- **🔁 Session Isolation**: layout / tabs / panels persisted per session, stale state auto-purged
|
|
52
54
|
- **⚙️ Declarative Settings**: per-item toggles in the "Side Cards" settings section, secondary settings via the gear dialog
|
|
53
|
-
- **🎛️ UI Tweaks (dsh-ui-tweaks merged)**: message/code sizing and spacing, Claude-style tables, GitBar, archive and MCP managers, `/init`, whale activity indicator, task notifications, and precise cache-hit percentages now ship in this plugin; on DSH 0.1.7 they are live fields in the shared `better-sidebar` entry form
|
|
55
|
+
- **🎛️ UI Tweaks (dsh-ui-tweaks merged)**: message/code sizing and spacing, Claude-style tables, GitBar, archive and MCP managers, `/init`, whale activity indicator, task notifications, and precise cache-hit percentages now ship in this plugin; on DSH 0.1.7 they are live fields in the shared `better-sidebar` entry form. Defaults match the host: 14px prose and 13px code. Messages and tables share size and leading, headings add only a small size increment, and font settings retain emphasis, italics and live theme families while keeping the composer in step
|
|
54
56
|
- **⚡ On-demand Loading**: only ~325KB core at startup; heavy deps (terminal / editor / mermaid diagrams) load on demand ([design](docs/plans/2026-08-12-lazy-chunks-design.md))
|
|
55
57
|
- **🌏 i18n**: UI text follows ChatCode CLI's language (zh / en) with live switching; with the optional `@huanlin/dsh-plugin-better-locale` peer, 19 third-language overlays (ja / de / fr / …) are available
|
|
56
58
|
- **🆕 Release notes**: on the first Web launch after an upgrade, shows the backend-configured Markdown note for the current version only; skipped versions are never merged
|
|
@@ -108,8 +110,9 @@ or bump the version in `~/.chatcode-cli/profiles/web/package.json` (e.g. `"^0.16
|
|
|
108
110
|
| "profile directory not found" | Run `chatcode-cli web` once so it initializes `~/.chatcode-cli/profiles/web`. |
|
|
109
111
|
| Two sidebars on the page | Double-mount. Old hand-written line: `~/.chatcode-cli/profiles/web/cordis.patch.yml` still has `- insert: ... better-sidebar ...` — delete it (a same-id duplicate mount makes the loader fail loudly with `duplicate loader entry id`). When an aggregate bundle (e.g. `@linxin666/dsh-web-ui-all`) mounts this package under a **different** id, the plugin's own bundle patch backs off automatically since 0.13.x (it detects an already-enabled mount of the same package name and does not mount itself) — no manual fix needed; if it still double-mounts, make sure the aggregate bundle precedes `dsh-better-sidebar` in `dsh.profile.bundles`. |
|
|
110
112
|
| Duplicate `/_dsh/ui-tweaks` route at startup | The profile still mounts the standalone `dsh-ui-tweaks`. Remove that old plugin row/bundle and keep `dsh-better-sidebar`; on a DSH 0.1.7 upgrade the legacy settings are imported into the `better-sidebar` entry. |
|
|
113
|
+
| macOS reports `posix_spawnp failed` / Windows terminal hangs on opening | From `0.18.0-rc.3`, the sidebar pins the core's `node-pty@1.2.0-beta.15`: the Mac package ships an executable `spawn-helper`, so normal users need not modify root-owned installation files; Windows waits for the ConPTY output worker before connecting. Update the sidebar dependency and restart the Web server. |
|
|
111
114
|
| Terminal fails on Windows | `node-pty` relies on prebuilt binaries; if none match your Node version, install a build toolchain (VS Build Tools). Mainstream Node versions are usually covered. |
|
|
112
|
-
| Terminal shows "node-pty failed to load" | The `node-pty` install is missing or broken (e.g. pnpm skipped its build script). The terminal banner shows a repair command — copy it into a terminal/cmd on the ChatCode CLI machine and run it (in `~/.chatcode-cli/profiles/web`: `pnpm approve-builds --all && pnpm rebuild node-pty`), then restart ChatCode CLI and click Retry. The plugin and ChatCode CLI core share the same `node-pty
|
|
115
|
+
| Terminal shows "node-pty failed to load" | The `node-pty` install is missing or broken (e.g. pnpm skipped its build script). The terminal banner shows a repair command — copy it into a terminal/cmd on the ChatCode CLI machine and run it (in `~/.chatcode-cli/profiles/web`: `pnpm approve-builds --all && pnpm rebuild node-pty`), then restart ChatCode CLI and click Retry. The plugin and ChatCode CLI core share the same `node-pty@1.2.0-beta.15`, so the repair restores both. |
|
|
113
116
|
| `chatcode-cli: command not found` | Install ChatCode CLI first, or run `npx -y --package @chatcode/chatcode-cli chatcode-cli plugin --profile web add @chatcode/cco-better-sidebar@latest`. The old `dsh` command remains a hidden compatibility alias. |
|
|
114
117
|
|
|
115
118
|
</details>
|
|
@@ -560,4 +563,6 @@ Thanks to everyone who contributed:
|
|
|
560
563
|
|
|
561
564
|
## ChatCode account menu
|
|
562
565
|
|
|
566
|
+
**Settings → Plugin marketplace** opens the internal catalog, also available from the sidebar's **+** menu. Browse internal marketplaces and the default official ChatCode marketplace first, then open one to see plugin cards styled like the Skill marketplace. Each card has project/user install and uninstall buttons. The marketplace list loads once at Web startup; plugin catalogs load on first access and remain cached across navigation, tab switches and reopening Settings. Click **Refresh** to fetch updates. The actual project directory is shown and local installed records sync automatically with CLI `/plugins`. See the [marketplace guide](../dsh-llm-chatcode-config/docs/plugin-market.md) for configuration and supported assets.
|
|
567
|
+
|
|
563
568
|
When `pnpm cco web` runs from the current ChatCode CLI checkout, its source wrapper applies this sidebar and `dsh-llm-chatcode-config` automatically, with no Web-profile installation. Signed-out users see a full-page gate; after sign-in, the bottom-left menu shows status and sign-out. The configuration plugin manages tokens through the compatible credential service, and Web displays only account metadata and outcomes. A fallback link is provided if the browser blocks the popup. See the sibling configuration repository’s [guide](../dsh-llm-chatcode-config/docs/chatcode-login.md).
|