@michengai/dsh-codex-ui 0.2.111 → 0.2.113

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/CHANGELOG.md CHANGED
@@ -4,6 +4,72 @@
4
4
 
5
5
  This changelog records recent releases of DSH Codex UI and its one-click installer. Earlier changes remain available in the [Git history](https://github.com/MichengAI/dsh-codex-ui/commits/main).
6
6
 
7
+ ## Unreleased
8
+
9
+ ## 0.2.113 - 2026-09-08
10
+
11
+ ### Fixed
12
+
13
+ - Fixed Chinese text wrapping into vertical columns and misaligned menu and footer text while collapsing the sidebar.
14
+ - Restored sidebar expand and collapse transitions when used alongside `dsh-better-sidebar`, while preserving right-panel animations.
15
+ - Synchronized sidebar width and content fades, removed redundant width updates, and kept rapid toggling and dragging responsive.
16
+
17
+ ## suite-installer-v0.1.30 - 2026-09-08
18
+
19
+ Resolved and pinned the following member versions from the official npm registry:
20
+
21
+ - `@michengai/dsh-archive-manager@0.1.32`
22
+ - `@michengai/dsh-codex-ui@0.2.112`
23
+ - `@michengai/dsh-skills-manager@0.1.43`
24
+ - `@michengai/dsh-agency-agents@0.1.34`
25
+ - `@michengai/dsh-im-connect@0.1.38`
26
+ - `@michengai/dsh-automation@0.1.34`
27
+ - `@michengai/dsh-btw@0.1.4`
28
+ - `@michengai/dsh-simplify@0.1.2`
29
+
30
+ The installer uses these exact versions for reproducible installation.
31
+
32
+ ## 0.2.112 - 2026-09-08
33
+
34
+ ### Release automation
35
+
36
+ - Fixed Chromium installation steps in release workflows and added YAML structure and prerequisite validation.
37
+ - Installer releases now generate and commit bilingual CHANGELOG entries before extracting release notes; missing either language blocks publication.
38
+
39
+ ### Breaking changes
40
+
41
+ - Removed the public `crossSiteRequest` export. Consumers must use the host connection’s `requestRejection()` contract. Business GET routes now require authentication, including loopback requests (401 when signed out); missing authentication services return 503. The old REST paths have no compatibility aliases. Requires `@deepseek-ai/dsh-client-connection >=0.1.2-rc.1` and Cordis `>=4.0.2`.
42
+
43
+ ### Fixed
44
+
45
+ - Added localized 401/403/503 feedback for business requests and an explicit local-cache notice when workspace preferences cannot sync.
46
+ - Consolidated empty-chat padding and ignored stale invisible drop markers; conflicting distinct drop positions now emit a deduplicated diagnostic.
47
+
48
+ - Stopped applying custom-group spacing between projects in an ungrouped project list, keeping the empty-conversation label vertically centered between project rows.
49
+ - Centered empty-group text between adjacent group headers, accounting for the external group gap, and unified both empty-state labels at 13px/18px with the same muted color.
50
+ - Standardized the Chinese empty-conversation label to "暂无聊天".
51
+ - Aligned empty-group text with the group title without changing project or conversation indentation.
52
+ - Matched the Codex sidebar reorder marker's 8px hollow ring and 2px rounded stroke, extending the line toward its start and removing the ring-to-line gap.
53
+ - Unified group, project, and conversation reorder indicators around the midpoint between visible rows, including scrolling and collapsed content, instead of fixed offsets from wrapper elements.
54
+ - Added 4px below each project's conversation list, matching its top gap so the last conversation no longer touches the next project row; the spacing collapses with the list.
55
+ - Prevented the group reorder indicator above the first sidebar group from being clipped by the expanded Projects section.
56
+
57
+ ### Changed
58
+
59
+ - Increased group labels to 14px/600 with 32px rows and 12px spacing; project folders now switch between equally sized open and closed icons according to expansion state.
60
+ - Strengthened sidebar groups with persistent disclosure indicators, medium-weight labels, subtle backgrounds, and spacing while preserving existing project and conversation indentation and row widths. Expansion uses the arrow state without resembling a selected conversation; improved group touch targets and keyboard focus styling.
61
+ - Moved Codex UI's business REST routes from `/api/michengai/codex-ui/*` to `/api/dsh-codex-ui/*`, aligning their naming with the Skills Manager and IM Connect business endpoints; the old routes are no longer registered. The host baseline now requires `@deepseek-ai/dsh-client-connection >=0.1.2-rc.1` and Cordis `>=4.0.2`.
62
+
63
+ ### Security
64
+
65
+ - Delegated all five business REST routes to the DSH host's `requestRejection()` checks for trusted hosts, origins, and login cookies. Requests now fail closed when authentication is unavailable without blocking legitimate reverse-proxy origins through a loopback-only check.
66
+
67
+ ### Tests
68
+
69
+ - Run Chromium layout checks in `pnpm test` and CI without screenshots, including exact tertiary colors and empty-state padding. Added cross-section drag cleanup and pinned-host-package trust-boundary regression coverage with login stubbed as authenticated.
70
+
71
+ - Added business-route registration and authentication regression coverage for the new and removed paths, 401, 403, unavailable authentication, unchanged request-header forwarding, and an external-origin write authorized by the host boundary.
72
+
7
73
  ## suite-installer-v0.1.29 - 2026-09-08
8
74
 
9
75
  - Updated the suite to Codex UI `0.2.111` and IM Connect `0.1.38`, keeping the channel sidebar compatible with the authenticated `/api/dsh-im-connect/channels` endpoint.
@@ -4,6 +4,72 @@
4
4
 
5
5
  本日志记录 DSH Codex UI 及其一键安装器的最近发布;更早的变更可查看 [Git 提交历史](https://github.com/MichengAI/dsh-codex-ui/commits/main)。
6
6
 
7
+ ## 未发布
8
+
9
+ ## 0.2.113 - 2026-09-08
10
+
11
+ ### 修复
12
+
13
+ - 修复侧栏收缩时中文被挤成竖排、菜单与页脚文字错位的问题。
14
+ - 修复与 `dsh-better-sidebar` 同时使用时,侧栏展开和收起缺少过渡动画的问题,并保留右侧面板动画。
15
+ - 同步侧栏宽度与内容淡入淡出的节奏,消除重复宽度更新造成的额外开销;快速切换和拖拽保持正常响应。
16
+
17
+ ## suite-installer-v0.1.30 - 2026-09-08
18
+
19
+ 从官方 npm 解析并锁定以下成员版本:
20
+
21
+ - `@michengai/dsh-archive-manager@0.1.32`
22
+ - `@michengai/dsh-codex-ui@0.2.112`
23
+ - `@michengai/dsh-skills-manager@0.1.43`
24
+ - `@michengai/dsh-agency-agents@0.1.34`
25
+ - `@michengai/dsh-im-connect@0.1.38`
26
+ - `@michengai/dsh-automation@0.1.34`
27
+ - `@michengai/dsh-btw@0.1.4`
28
+ - `@michengai/dsh-simplify@0.1.2`
29
+
30
+ 安装器使用这些精确版本执行安装,确保可复现。
31
+
32
+ ## 0.2.112 - 2026-09-08
33
+
34
+ ### 发布流程
35
+
36
+ - 修复发布工作流的 Chromium 安装步骤位置,增加 YAML 结构及测试前置条件校验。
37
+ - 安装器自动发布先生成并提交双语 CHANGELOG,再提取 Release 说明;缺少任一语言时阻止发布。
38
+
39
+ ### 不兼容变更
40
+
41
+ - 移除公共导出 `crossSiteRequest`,调用方应改用宿主 connection 的 `requestRejection()` 契约。业务 GET 现在必须认证,包括回环请求(未登录返回 401);缺少认证服务返回 503。旧 REST 地址没有兼容入口。要求 `@deepseek-ai/dsh-client-connection >=0.1.2-rc.1` 与 Cordis `>=4.0.2`。
42
+
43
+ ### 修复
44
+
45
+ - 业务请求增加 401/403/503 专属本地化提示;项目偏好无法同步时明确提示正在使用本地缓存。
46
+ - 合并空聊天四边间距声明,跳过不可见的陈旧拖拽标记;多个不同落点冲突时输出去重诊断。
47
+
48
+ - 普通项目列表不再误用自定义分组的组间距,使“暂无聊天”在上下项目胶囊之间保持居中。
49
+ - 将外部组间距纳入空分组文案的垂直居中计算;“暂无项目”和“暂无聊天”统一为 13px 字号、18px 行高及相同灰色。
50
+ - 空项目文案由“没有聊天”统一为“暂无聊天”。
51
+ - 分组内“暂无项目”与分组标题文字左对齐,不改变项目和会话胶囊的缩进。
52
+ - 参考 Codex 侧栏插入线,采用 8px 空心圆环与 2px 圆头线,向起点延长直线并消除圆环与线段的断口。
53
+ - 分组、项目与会话排序蓝线统一按相邻可见行的边界中点定位,适配滚动与折叠内容,不再依赖外层容器的固定偏移。
54
+ - 项目内会话列表底部补齐与顶部一致的 4px 留白,避免最后一条会话贴住下一个项目胶囊;留白随列表一起折叠。
55
+ - 修复分组拖到侧栏第一组之前时,顶部蓝色插入线被项目分区容器裁剪的问题。
56
+
57
+ ### 变更
58
+
59
+ - 分组标题增强至 14px/600、32px 行高和 12px 组间距;项目文件夹随展开、收起切换等尺寸图标。
60
+ - 强化侧栏分组的常驻箭头、标题字重、轻底色与组间留白;保留项目和会话原有缩进及胶囊宽度,展开状态仅由箭头表达,避免与会话选中混淆;补充分组触摸目标与键盘焦点样式。
61
+ - 将 Codex UI 自有业务 REST 从 `/api/michengai/codex-ui/*` 统一迁移到 `/api/dsh-codex-ui/*`,与 Skills Manager 和 IM Connect 的业务 endpoint 命名保持一致;旧地址不再注册。宿主依赖基线相应要求 `@deepseek-ai/dsh-client-connection >=0.1.2-rc.1` 与 Cordis `>=4.0.2`。
62
+
63
+ ### 安全
64
+
65
+ - 五个业务 REST 全部委托 DSH 宿主 `requestRejection()` 校验可信 Host、Origin 和登录 Cookie;认证服务不可用时关闭失败,不再用仅限回环地址的判断阻断合法反向代理访问。
66
+
67
+ ### 测试
68
+
69
+ - 将无截图的 Chromium 布局检查纳入 `pnpm test` 和 CI,精确检查三级灰与空状态间距;补齐跨区拖拽清理及锁定宿主发布包的信任边界回归,登录层固定为已登录。
70
+
71
+ - 新增业务路由注册和认证回归测试,覆盖新旧路径、401、403、认证不可用、请求头原样转交及宿主认证放行的外部 Origin 写请求。
72
+
7
73
  ## suite-installer-v0.1.29 - 2026-09-08
8
74
 
9
75
  - 将套件更新至 Codex UI `0.2.111` 和 IM Connect `0.1.38`,保证频道侧栏兼容已认证的 `/api/dsh-im-connect/channels` 接口。
package/README.md CHANGED
@@ -6,9 +6,9 @@
6
6
 
7
7
  # DSH Codex UI
8
8
 
9
- **Rebuild the DeepSeek Harness Web sidebar, workspace tree, search, and turn navigation in a Codex-style layout**
9
+ **Organize projects, find conversations, and revisit long chats more easily in DSH Web**
10
10
 
11
- [简体中文](README.zh-CN.md) · [项目交接](docs/00-交接入口/00-阅读导航.md) · [Changelog](CHANGELOG.md) · [Apache-2.0](LICENSE)
11
+ [简体中文](README.zh-CN.md) · [Changelog](CHANGELOG.md) · [Apache-2.0](LICENSE)
12
12
 
13
13
  [![License: Apache-2.0](https://img.shields.io/badge/License-Apache--2.0-blue.svg)](LICENSE)
14
14
  [![npm package](https://img.shields.io/npm/v/%40michengai%2Fdsh-codex-ui.svg?label=npm%20package)](https://www.npmjs.com/package/@michengai/dsh-codex-ui)
@@ -18,18 +18,18 @@
18
18
 
19
19
  </div>
20
20
 
21
- > DSH Codex UI is a community-maintained DeepSeek Harness (DSH) plugin, not an official DeepSeek AI product. It uses public DSH slots only and does not modify host source code or conversation data.
21
+ > DSH Codex UI is a community-maintained interface plugin for DeepSeek Harness (DSH), not an official DeepSeek AI product.
22
22
 
23
- ## Features
23
+ Working across several projects and conversations in DSH Web? DSH Codex UI helps you organize the sidebar, find tasks quickly, and jump back to earlier questions in long chats. It offers a Codex-style interface with light and dark themes.
24
24
 
25
- - Replace the default sidebar through the official `sidebar` slot and keep `sidebar.workspaces`, `sidebar.settings`, and `sidebar.footer.action`.
26
- - Provide a Codex-style header with brand wordmark, sidebar collapse, and global search.
27
- - List workspaces and conversations with expand/collapse, drag reorder, project pinning, unread dots, and running-state indicators.
28
- - Add project and conversation menus for rename, pin, unread, archive, fork, open folder, copy, and delete.
29
- - Restyle the conversation column and composer card, and add a compact turn navigator on the current session.
30
- - Recall submitted text with Up/Down from an empty composer, with workspace isolation and guards for drafts, IME, and candidate menus. BTW is not required.
31
- - Capture ordinary messages only from live events while the input extension is mounted. Opening or reloading conversations and loading older messages do not backfill history; input sent while the extension is unmounted is not imported.
32
- - Show companion-plugin status in **Settings → About**, and install the missing pieces from npm.
25
+ ## What you can do
26
+
27
+ - **Organize projects and conversations**: expand or collapse projects, drag to reorder, pin frequently used projects, and see unread and running indicators.
28
+ - **Find things quickly**: search for conversations, settings, and quick actions from the header.
29
+ - **Manage everyday tasks**: rename, archive, or fork conversations, and open project folders from their menus.
30
+ - **Revisit long chats**: select a turn marker to jump directly to the corresponding question.
31
+ - **Reuse earlier input**: press Up/Down in an empty composer to recall text submitted in the current workspace.
32
+ - **Add features as needed**: check companion plugins in **Settings → About** and install or update the ones you need.
33
33
 
34
34
  ## Screenshots
35
35
 
@@ -37,7 +37,7 @@ Light theme: Codex-style sidebar, workspace tree, and conversation column.
37
37
 
38
38
  ![Light theme conversation](assets/screenshots/conversation-light.png)
39
39
 
40
- Dark theme: the same layout with Codex dark tokens.
40
+ Dark theme: for users who prefer a darker interface.
41
41
 
42
42
  ![Dark theme conversation](assets/screenshots/conversation.png)
43
43
 
@@ -53,37 +53,36 @@ Conversation menu: rename, pin, unread, archive, fork, copy, and delete.
53
53
 
54
54
  - A working DeepSeek Harness Web installation with `dsh` available in PowerShell.
55
55
  - Examples use the `web` profile; replace it with the target profile.
56
- - Source installation and development require Node.js 22+ and pnpm. Installing from npm does not require running `pnpm install` in an arbitrary directory.
56
+ - Node.js must satisfy `^22.19.0 || >=24.0.0`. Installing from source also requires pnpm.
57
57
 
58
58
  ## DSH product ecosystem
59
59
 
60
- Codex UI can be installed independently or used through the desktop app. They share the same DSH core but serve different ways of working:
60
+ For a ready-to-use workbench, download [DSH Codex Desktop](https://github.com/MichengAI/dsh-codex-desktop/releases). If you already use [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness), install any of these eight plugins individually. The desktop app includes all eight.
61
61
 
62
- | Product | Relationship to Codex UI |
62
+ | Plugin | What you can do |
63
63
  | --- | --- |
64
- | [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) | The host runtime that provides models, sessions, tools, and the plugin system |
65
- | [DSH Codex Desktop](https://github.com/MichengAI/dsh-codex-desktop) | A ready-to-install desktop product with Codex UI and the other five feature products built in |
66
- | Six feature products | [Codex UI](https://github.com/MichengAI/dsh-codex-ui) · [IM Connect](https://github.com/MichengAI/dsh-im-connect) · [Automation](https://github.com/MichengAI/dsh-automation) · [Skills Manager](https://github.com/MichengAI/dsh-skills-manager) · [Archive Manager](https://github.com/MichengAI/dsh-archive-manager) · [Agency Agents](https://github.com/MichengAI/dsh-agency-agents) |
64
+ | [Codex UI](https://github.com/MichengAI/dsh-codex-ui) | Organize projects and conversations, search tasks, and navigate chat turns |
65
+ | [IM Connect](https://github.com/MichengAI/dsh-im-connect) | Send tasks and receive replies through your usual messenger |
66
+ | [Automation](https://github.com/MichengAI/dsh-automation) | Schedule tasks and review each run |
67
+ | [Skills Manager](https://github.com/MichengAI/dsh-skills-manager) | Find, enable, create, and import local skills |
68
+ | [Archive Manager](https://github.com/MichengAI/dsh-archive-manager) | Search, restore, or clean up archived conversations |
69
+ | [Agency Agents](https://github.com/MichengAI/dsh-agency-agents) | Choose and summon specialists for your task |
70
+ | [BTW](https://github.com/MichengAI/dsh-btw) | Ask side questions without interrupting the main task |
71
+ | [Simplify](https://github.com/MichengAI/dsh-simplify) | Use /simplify to improve code within your Git changes |
67
72
 
68
73
  ## Installation
69
74
 
70
- `dsh plugin add` forwards to `pnpm add` in the profile directory. Without a version and official registry, a local mirror or minimum-release-age policy can leave you on an older build.
75
+ Choose agent-assisted or manual installation below. Both use the same command, requesting the latest version from the official npm registry.
71
76
 
72
- ### Ask another agent to install Codex UI
77
+ ### Ask an agent to install it (recommended)
73
78
 
74
- Copy the sentence below into DSH, Codex, or WorkBuddy and let that agent install Codex UI into your local `web` profile.
79
+ Send the prompt below to any agent that can run terminal commands on your computer. Replace `web` with your actual profile. Once installed, use the plugin in DSH.
75
80
 
76
81
  ```text
77
- Install the latest DSH plugin @michengai/dsh-codex-ui into my local web profile using the official npm registry: dsh plugin --profile web add @michengai/dsh-codex-ui@latest --registry=https://registry.npmjs.org/. Then run dsh --profile web --dump-config, confirm codex-ui is mounted, and remind me to restart DSH Web and hard-refresh the browser.
82
+ Install the DSH plugin @michengai/dsh-codex-ui into my local web profile by running: dsh plugin --profile web add @michengai/dsh-codex-ui@latest --registry=https://registry.npmjs.org/. Then run dsh --profile web --dump-config, confirm the configuration includes codex-ui, and explain how to reload DSH and start using the plugin.
78
83
  ```
79
84
 
80
- | Product | How to use it |
81
- | --- | --- |
82
- | DSH | Send the sentence above to the current session. |
83
- | Codex | Send the sentence above to Codex and let it install locally. |
84
- | WorkBuddy | Send the sentence above to WorkBuddy. |
85
-
86
- ### Install Codex UI only
85
+ ### Install manually
87
86
 
88
87
  ```powershell
89
88
  [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
@@ -92,25 +91,7 @@ dsh plugin --profile web add @michengai/dsh-codex-ui@latest --registry=https://r
92
91
  dsh --profile web --dump-config
93
92
  ```
94
93
 
95
- The plugin takes over the default sidebar through `cordis.patch.yml`. Uninstalling restores the default sidebar.
96
-
97
- ### Install from source
98
-
99
- Use this for debugging or unpublished changes. The cloned directory becomes the plugin source path:
100
-
101
- ```powershell
102
- [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
103
- $OutputEncoding = [System.Text.Encoding]::UTF8
104
- Set-Location D:\Repository\deepseek-harness-plugin
105
- git clone https://github.com/MichengAI/dsh-codex-ui.git
106
- Set-Location .\dsh-codex-ui
107
- pnpm install --frozen-lockfile
108
- pnpm build
109
- dsh plugin --profile web add .
110
- dsh --profile web --dump-config
111
- ```
112
-
113
- Restart DSH Web and hard-refresh the browser. Do not copy `lib` manually; local installation reads both package metadata and `cordis.patch.yml`.
94
+ Restart DSH Web and hard-refresh the browser (usually `Ctrl+Shift+R`). Once the new sidebar appears, you are ready to use it. Uninstalling the plugin restores the default sidebar.
114
95
 
115
96
  ## Usage
116
97
 
@@ -123,54 +104,67 @@ Open DSH Web. The left navigation is rendered by this plugin.
123
104
  | Collapse the sidebar | Use the header panel button. The expand control stays on the collapsed rail. |
124
105
  | Pin a workspace | Drag it into **Pinned**, or use **Pin project** in the project menu. |
125
106
  | Manage a conversation | Open the conversation menu to rename, pin, mark unread, archive, fork, copy, or delete. |
107
+ | Reuse input | Press Up/Down in an empty composer to recall text submitted in the current workspace. |
126
108
  | Jump between turns | Use the turn marks on the left of the current conversation. |
127
109
  | Inspect connectors | Open **Settings → Connectors**. Addresses, commands, and credentials are never shown. |
128
110
  | Check companion plugins | Open **Settings → About** to install or update individual companion plugins. |
129
111
 
130
- Deleting a workspace registration does not delete its folder or conversation records. Pinned and unread state is stored only in the current browser.
112
+ ## FAQ
131
113
 
132
- ## Persistence and safety limits
114
+ ### Do pinned projects and unread markers persist?
133
115
 
134
- | Data | Storage | Scope |
135
- | --- | --- | --- |
136
- | Pinned workspaces | Host profile file with a `localStorage` cache | Survives DSH restarts and Desktop tray reloads |
137
- | Unread conversations | `localStorage` key `dsh.session-unread.v1` | Current browser only |
138
- | Conversation records | DSH host services | Unchanged by this plugin |
116
+ Pinned projects are saved in your DSH configuration and survive restarts. Unread markers are stored only in the current browser and do not sync across browsers.
139
117
 
140
- - The plugin uses only public DSH slots and services.
141
- - It does not modify host source code or the conversation data model.
142
- - Permanent deletion of archived conversations is provided by `@michengai/dsh-archive-manager`.
143
- - The Connectors directory never exposes addresses, commands, or credentials.
118
+ ### Why is my earlier input missing?
144
119
 
145
- ## Secondary development
120
+ Input history is stored in the current browser, separately for each workspace, with up to 200 entries per workspace. It records new input while the feature is active and does not import existing conversations. When browser storage is unavailable, history is kept temporarily in memory. The BTW plugin is not required.
146
121
 
147
- - [src\index.ts](src/index.ts): host entry and the non-sensitive Connectors directory endpoint.
148
- - [src\client\index.ts](src/client/index.ts): client entry for sidebar, workspace tree, turn navigation, and Settings sections.
149
- - [src\client\CodexSidebar.tsx](src/client/CodexSidebar.tsx): sidebar shell, search panel, and visual styles.
150
- - [src\client\CodexWorkspaceBrowser.tsx](src/client/CodexWorkspaceBrowser.tsx): workspace and conversation interactions.
151
- - `tests\*.assert.ts` and `tests\*.spec.ts`: interaction, visual, and runtime integration checks.
122
+ ### Does removing a project delete local files?
152
123
 
153
- After changing `src`, rebuild, test, and install from the local directory:
124
+ Removing a workspace registration does not delete its folder or conversation records. Permanent deletion of archived conversations is provided by the companion Archive Manager plugin.
125
+
126
+ ### What if nothing changes after installation?
127
+
128
+ Check that the installation profile matches the one running DSH Web, then restart DSH Web and hard-refresh the browser. Run `dsh --profile web --dump-config` to check that `codex-ui` is mounted.
129
+
130
+ ## Development and contributing
131
+
132
+ ### Install from source
133
+
134
+ Use this for debugging or unpublished changes. The cloned directory becomes the plugin source path:
154
135
 
155
136
  ```powershell
156
137
  [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
157
138
  $OutputEncoding = [System.Text.Encoding]::UTF8
139
+ Set-Location D:\Repository\deepseek-harness-plugin
140
+ git clone https://github.com/MichengAI/dsh-codex-ui.git
141
+ Set-Location .\dsh-codex-ui
142
+ pnpm install --frozen-lockfile
158
143
  pnpm build
159
- pnpm test
160
144
  dsh plugin --profile web add .
145
+ dsh --profile web --dump-config
161
146
  ```
162
147
 
163
- New features should reuse existing DSH slots and public services. Do not depend on private host DOM or write conversation records.
148
+ Restart DSH Web and hard-refresh the browser. Do not copy `lib` manually; local installation reads both package metadata and `cordis.patch.yml`.
164
149
 
165
- ## Verification
150
+ - [src\index.ts](src/index.ts): host entry and the non-sensitive Connectors directory endpoint.
151
+ - [src\client\index.ts](src/client/index.ts): client entry for sidebar, workspace tree, turn navigation, and Settings sections.
152
+ - [src\client\CodexSidebar.tsx](src/client/CodexSidebar.tsx): sidebar shell, search panel, and visual styles.
153
+ - [src\client\CodexWorkspaceBrowser.tsx](src/client/CodexWorkspaceBrowser.tsx): workspace and conversation interactions.
154
+ - `tests\*.assert.ts` and `tests\*.spec.ts`: interaction, visual, and runtime integration checks.
155
+
156
+ After changing `src`, rebuild, test, and install from the local directory:
166
157
 
167
158
  ```powershell
168
159
  [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
169
160
  $OutputEncoding = [System.Text.Encoding]::UTF8
170
161
  pnpm build
171
162
  pnpm test
163
+ dsh plugin --profile web add .
172
164
  ```
173
165
 
166
+ New features should reuse existing DSH slots and public services. Do not depend on private host DOM or write conversation records.
167
+
174
168
  ## License
175
169
 
176
- This project is licensed under [Apache License 2.0](LICENSE). Conversation-management workflow is informed by [Semidia/dsh-session-manager](https://github.com/Semidia/dsh-session-manager), but this plugin is implemented independently through public DSH slots and services.
170
+ This project is licensed under [Apache License 2.0](LICENSE).
package/README.zh-CN.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  # DSH Codex UI
8
8
 
9
- **为 DeepSeek Harness Web 重构 Codex 风格侧栏、工作区会话树、全局搜索和轮次导航**
9
+ **让 DSH Web 中的项目更好整理、会话更快找到、长对话更易回看**
10
10
 
11
11
  [English](README.md) · [更新日志](CHANGELOG.zh-CN.md) · [Apache-2.0](LICENSE)
12
12
 
@@ -18,29 +18,26 @@
18
18
 
19
19
  </div>
20
20
 
21
- > DSH Codex UI 是社区维护的 DeepSeek Harness(DSH)插件,并非 DeepSeek AI 官方产品。它只使用 DSH 公开插槽,不修改宿主源码或会话数据。
21
+ > DSH Codex UI 是社区维护的 DeepSeek Harness(DSH)界面增强插件,并非 DeepSeek AI 官方产品。
22
22
 
23
- ## 功能概览
23
+ 在 DSH Web 中同时处理多个项目和会话时,DSH Codex UI 帮你整理左侧导航、快速找到任务,并在长对话中跳回之前的提问。它提供 Codex 风格的界面,支持浅色和深色主题。
24
24
 
25
- - 通过官方 `sidebar` 插槽替换默认侧栏,并保留 `sidebar.workspaces`、`sidebar.settings` 和 `sidebar.footer.action`。
26
- - 提供 Codex 风格顶栏:品牌标识、侧栏折叠和全局搜索。
27
- - 工作区与会话支持展开折叠、拖拽排序、项目置顶、未读圆点和运行状态。
28
- - 项目和会话菜单支持重命名、置顶、未读、归档、派生、打开目录、复制和删除。
29
- - 调整会话列与输入卡片视觉,并为当前会话提供紧凑轮次导航。
30
- - 空输入框按上下键召回已提交文本,按工作区隔离并保护草稿、输入法和候选菜单;无需安装 BTW。
31
- - 在「设置 → 关于」展示配套插件状态,并可从 npm 安装缺失项。
25
+ ## 你可以用它做什么
32
26
 
33
- ## 界面预览
34
-
35
- 输入历史保存在浏览器 `michengai.codex-ui.input-history.v1`,每工作区最多 200 条、最多 20 个工作区,总序列化长度最多 100 万字符。首次使用可导入旧 BTW 历史,保留旧键用于回退;关闭浏览器存储时使用内存。BTW 插件现在只负责旁问气泡。
27
+ - **整理项目与会话**:展开或折叠项目、拖拽调整顺序、置顶常用项目,查看未读提醒和运行状态。
28
+ - **快速找到内容**:通过顶部搜索查找会话、设置和快捷操作。
29
+ - **管理日常任务**:在项目或会话菜单中重命名、归档、派生会话,或打开项目目录。
30
+ - **回看长对话**:点击轮次导航,直接跳到对应提问。
31
+ - **复用之前的输入**:输入框为空时,按上下方向键找回当前工作区中已提交的文本。
32
+ - **按需扩展功能**:在「设置 → 关于」查看配套插件,安装或更新需要的功能。
36
33
 
37
- 普通消息仅从输入扩展挂载后的实时追加事件采集;打开、重载会话和加载旧消息不会回填历史,扩展未挂载期间的输入也不补录。
34
+ ## 界面预览
38
35
 
39
36
  浅色主题:Codex 风格侧栏、工作区会话树和会话列。
40
37
 
41
38
  ![浅色主题会话页](assets/screenshots/conversation-light.png)
42
39
 
43
- 深色主题:同一布局,使用 Codex 暗色令牌。
40
+ 深色主题:适合偏好暗色界面的用户。
44
41
 
45
42
  ![深色主题会话页](assets/screenshots/conversation.png)
46
43
 
@@ -56,37 +53,36 @@
56
53
 
57
54
  - 已可正常运行 DeepSeek Harness Web,且可在 PowerShell 中使用 `dsh`。
58
55
  - 以下示例使用 `web` profile;请替换为实际目标 profile。
59
- - 从源码安装或二次开发需要 Node.js 22+ 与 pnpm;仅从 npm 安装无需在任意目录执行 `pnpm install`。
56
+ - 运行环境需满足 Node.js `^22.19.0 || >=24.0.0`;从源码安装还需要 pnpm。
60
57
 
61
58
  ## DSH 产品生态
62
59
 
63
- Codex UI 既可以独立安装,也可以随桌面端一起使用。它们共享同一个 DSH 核心,但面向不同的使用方式:
60
+ 想直接使用完整工作台,可下载 [DSH Codex Desktop](https://github.com/MichengAI/dsh-codex-desktop/releases);已有 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 环境,可按需独立安装以下 8 个自研插件。桌面端已随附这些插件。
64
61
 
65
- | 产品 | 与 Codex UI 的关系 |
62
+ | 插件 | 你可以用它做什么 |
66
63
  | --- | --- |
67
- | [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) | Codex UI 的运行宿主,提供模型、会话、工具和插件系统 |
68
- | [DSH Codex Desktop](https://github.com/MichengAI/dsh-codex-desktop) | 下载安装即用的桌面产品,已内置 Codex UI 和其他 5 个功能产品 |
69
- | 6 个功能产品 | [Codex UI](https://github.com/MichengAI/dsh-codex-ui) · [IM Connect](https://github.com/MichengAI/dsh-im-connect) · [Automation](https://github.com/MichengAI/dsh-automation) · [Skills Manager](https://github.com/MichengAI/dsh-skills-manager) · [Archive Manager](https://github.com/MichengAI/dsh-archive-manager) · [Agency Agents](https://github.com/MichengAI/dsh-agency-agents) |
64
+ | [Codex UI](https://github.com/MichengAI/dsh-codex-ui) | 整理项目与会话、搜索任务、跳转对话轮次 |
65
+ | [IM Connect](https://github.com/MichengAI/dsh-im-connect) | 从微信、飞书、钉钉等消息平台下任务、收回复 |
66
+ | [Automation](https://github.com/MichengAI/dsh-automation) | 按计划执行任务,查看每次运行的结果 |
67
+ | [Skills Manager](https://github.com/MichengAI/dsh-skills-manager) | 统一查找、启停、创建和导入本机技能 |
68
+ | [Archive Manager](https://github.com/MichengAI/dsh-archive-manager) | 搜索、恢复或清理已归档会话 |
69
+ | [Agency Agents](https://github.com/MichengAI/dsh-agency-agents) | 按任务选择并召唤专业角色 |
70
+ | [BTW](https://github.com/MichengAI/dsh-btw) | 在当前上下文中临时旁问,不打断主任务 |
71
+ | [Simplify](https://github.com/MichengAI/dsh-simplify) | 用 /simplify 整理 Git 改动范围内的代码 |
70
72
 
71
73
  ## 安装
72
74
 
73
- `dsh plugin add` 会转发到 profile 目录里的 `pnpm add`。不写版本、不指定官方源时,本机镜像和最短发布间隔可能让你停在旧版。
75
+ 下面提供 Agent 代装和手动安装两种方式,使用同一条安装命令。示例指定最新版和官方 npm 源。
74
76
 
75
- ### 交给其他 Agent 一句话安装 Codex UI
77
+ ### 让 Agent 帮你安装(推荐)
76
78
 
77
- 把下面这句话复制到 DSH、Codex 或 WorkBuddy,让它代你安装到本机 `web` profile。
79
+ 把下面这段话发给任意能够执行本机终端命令的 Agent。将 `web` 替换为实际使用的 profile;安装完成后,在 DSH 中使用本插件。
78
80
 
79
81
  ```text
80
- 请把 DSH 插件 @michengai/dsh-codex-ui 最新版装进本机 web profile,使用官方 npm 源执行:dsh plugin --profile web add @michengai/dsh-codex-ui@latest --registry=https://registry.npmjs.org/。装完执行 dsh --profile web --dump-config,确认已挂载 codex-ui,并提醒我重启 DSH Web 后硬刷新浏览器。
82
+ 请将 DSH 插件 @michengai/dsh-codex-ui 安装到本机 web profile,执行:dsh plugin --profile web add @michengai/dsh-codex-ui@latest --registry=https://registry.npmjs.org/。安装后执行 dsh --profile web --dump-config,确认配置包含 codex-ui,并告诉我如何重新加载 DSH 和开始使用。
81
83
  ```
82
84
 
83
- | 产品 | 怎么用 |
84
- | --- | --- |
85
- | DSH | 把上面这句话发给当前会话。 |
86
- | Codex | 把上面这句话发给 Codex,让它在本机执行安装。 |
87
- | WorkBuddy | 把上面这句话发给 WorkBuddy。 |
88
-
89
- ### 只安装 Codex UI
85
+ ### 手动安装
90
86
 
91
87
  ```powershell
92
88
  [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
@@ -95,25 +91,7 @@ dsh plugin --profile web add @michengai/dsh-codex-ui@latest --registry=https://r
95
91
  dsh --profile web --dump-config
96
92
  ```
97
93
 
98
- 插件会通过 `cordis.patch.yml` 接管默认侧栏;卸载后默认侧栏会恢复。
99
-
100
- ### 从源码安装
101
-
102
- 适用于调试或使用未发布改动。克隆后的目录会直接作为插件安装路径:
103
-
104
- ```powershell
105
- [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
106
- $OutputEncoding = [System.Text.Encoding]::UTF8
107
- Set-Location D:\Repository\deepseek-harness-plugin
108
- git clone https://github.com/MichengAI/dsh-codex-ui.git
109
- Set-Location .\dsh-codex-ui
110
- pnpm install --frozen-lockfile
111
- pnpm build
112
- dsh plugin --profile web add .
113
- dsh --profile web --dump-config
114
- ```
115
-
116
- 完成后重启 DSH Web 并硬刷新浏览器。不要手工复制 `lib`;本地目录安装会同时读取包信息和 `cordis.patch.yml`。
94
+ 安装后重启 DSH Web,并硬刷新浏览器(通常为 `Ctrl+Shift+R`)。看到新的侧栏后即可开始使用;卸载插件会恢复默认侧栏。
117
95
 
118
96
  ## 使用
119
97
 
@@ -126,54 +104,67 @@ dsh --profile web --dump-config
126
104
  | 折叠侧栏 | 使用顶栏面板按钮。折叠后展开入口保留在窄轨顶部。 |
127
105
  | 置顶项目 | 拖到「置顶」区域,或在项目菜单中选择「置顶项目」。 |
128
106
  | 管理会话 | 打开会话菜单,进行重命名、置顶、未读、归档、派生、复制或删除。 |
107
+ | 复用输入 | 输入框为空时按上下方向键,召回当前工作区中之前提交的文本。 |
129
108
  | 跳转轮次 | 使用当前会话左侧的轮次刻度跳转到对应提问。 |
130
109
  | 查看连接器 | 打开「设置 → 连接器」。不会展示地址、命令或凭证。 |
131
110
  | 查看配套插件 | 打开「设置 → 关于」,安装或更新各个配套插件。 |
132
111
 
133
- 删除项目注册不会删除项目目录或会话记录。置顶和未读状态只保存在当前浏览器。
112
+ ## 常见问题
134
113
 
135
- ## 持久化与安全边界
114
+ ### 置顶和未读状态会保留吗?
136
115
 
137
- | 数据 | 存储位置 | 范围 |
138
- | --- | --- | --- |
139
- | 置顶项目 | Host Profile 文件,并使用 `localStorage` 缓存 | DSH 重启及 Desktop 托盘重新加载后仍保留 |
140
- | 未读会话 | `localStorage` 键 `dsh.session-unread.v1` | 仅当前浏览器 |
141
- | 会话记录 | DSH 宿主服务 | 本插件不改写 |
116
+ 置顶项目保存在 DSH 配置中,重启后仍保留。未读标记仅保存在当前浏览器,不会跨浏览器同步。
142
117
 
143
- - 本插件只使用 DSH 公开插槽和服务。
144
- - 不修改宿主源码或会话数据模型。
145
- - 归档会话的永久删除由 `@michengai/dsh-archive-manager` 提供。
146
- - 连接器目录不会展示地址、命令或凭证。
118
+ ### 为什么找不到以前的输入?
147
119
 
148
- ## 二次开发
120
+ 输入历史按工作区分别保存在当前浏览器,每个工作区最多保留 200 条。它从功能启用后的新输入开始记录,不会从已有会话补录;浏览器存储不可用时,仅在内存中临时保留。无需额外安装 BTW 插件。
149
121
 
150
- - [src\index.ts](src/index.ts):Host 入口,以及不含敏感信息的连接器目录接口。
151
- - [src\client\index.ts](src/client/index.ts):客户端入口,注册侧栏、工作区树、轮次导航和设置分区。
152
- - [src\client\CodexSidebar.tsx](src/client/CodexSidebar.tsx):侧栏壳、搜索面板和视觉样式。
153
- - [src\client\CodexWorkspaceBrowser.tsx](src/client/CodexWorkspaceBrowser.tsx):工作区和会话交互。
154
- - `tests\*.assert.ts` 与 `tests\*.spec.ts`:交互、样式和运行时集成验证。
122
+ ### 移除项目会删除本地文件吗?
155
123
 
156
- 修改 `src` 后重新构建、测试,并以本地目录安装验证:
124
+ 删除项目注册不会删除项目目录或会话记录。归档会话的永久删除功能由配套的 Archive Manager 插件提供。
125
+
126
+ ### 安装后没有看到变化怎么办?
127
+
128
+ 确认安装命令中的 profile 与正在运行的 DSH Web 一致,再重启 DSH Web 并硬刷新浏览器。可运行 `dsh --profile web --dump-config` 检查是否已挂载 `codex-ui`。
129
+
130
+ ## 开发与贡献
131
+
132
+ ### 从源码安装
133
+
134
+ 适用于调试或使用未发布改动。克隆后的目录会直接作为插件安装路径:
157
135
 
158
136
  ```powershell
159
137
  [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
160
138
  $OutputEncoding = [System.Text.Encoding]::UTF8
139
+ Set-Location D:\Repository\deepseek-harness-plugin
140
+ git clone https://github.com/MichengAI/dsh-codex-ui.git
141
+ Set-Location .\dsh-codex-ui
142
+ pnpm install --frozen-lockfile
161
143
  pnpm build
162
- pnpm test
163
144
  dsh plugin --profile web add .
145
+ dsh --profile web --dump-config
164
146
  ```
165
147
 
166
- 新增功能应复用已有 DSH 插槽和公开服务;不要依赖宿主私有 DOM 或写入会话数据。
148
+ 完成后重启 DSH Web 并硬刷新浏览器。不要手工复制 `lib`;本地目录安装会同时读取包信息和 `cordis.patch.yml`。
167
149
 
168
- ## 验证
150
+ - [src\index.ts](src/index.ts):Host 入口,以及不含敏感信息的连接器目录接口。
151
+ - [src\client\index.ts](src/client/index.ts):客户端入口,注册侧栏、工作区树、轮次导航和设置分区。
152
+ - [src\client\CodexSidebar.tsx](src/client/CodexSidebar.tsx):侧栏壳、搜索面板和视觉样式。
153
+ - [src\client\CodexWorkspaceBrowser.tsx](src/client/CodexWorkspaceBrowser.tsx):工作区和会话交互。
154
+ - `tests\*.assert.ts` 与 `tests\*.spec.ts`:交互、样式和运行时集成验证。
155
+
156
+ 修改 `src` 后重新构建、测试,并以本地目录安装验证:
169
157
 
170
158
  ```powershell
171
159
  [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
172
160
  $OutputEncoding = [System.Text.Encoding]::UTF8
173
161
  pnpm build
174
162
  pnpm test
163
+ dsh plugin --profile web add .
175
164
  ```
176
165
 
166
+ 新增功能应复用已有 DSH 插槽和公开服务;不要依赖宿主私有 DOM 或写入会话数据。
167
+
177
168
  ## 许可证
178
169
 
179
- 本项目采用 [Apache License 2.0](LICENSE)。会话管理工作流参考 [Semidia/dsh-session-manager](https://github.com/Semidia/dsh-session-manager),但本插件独立通过 DSH 公开插槽和服务实现。
170
+ 本项目采用 [Apache License 2.0](LICENSE)。