Bundle
dsh-chat-zone
DSH Web plugin: one-click chat folders under ~/dsh_CHAT/<date>/chatN, a 对话区 history panel, and a split/mixed sidebar layout for chats vs projects
- Source
- lasdrder0705
- License
- MIT
- Updated
- Updated 2 days ago
Readme
# dsh-chat-zone [中文](#中文) · [English](#english) DeepSeek Harness(DSH)Web 插件:一键「对话区」。 A DeepSeek Harness web plugin that adds a one-click Chat zone to the sidebar. ## 中文 ### 安装 Mac / Windows 同一条命令(Web 界面): ```sh dsh plugin --profile web add github:lasdrder0705/dsh-chat-zone ``` 然后重启 `dsh web`,刷新页面。侧边栏底部(设置旁边)会出现「对话区」。 Windows 若直接运行报错,给仓库地址加上引号,或改用 npx: ```sh dsh plugin --profile web add "github:lasdrder0705/dsh-chat-zone" ``` ```sh npx @deepseek-ai/dsh plugin --profile web add github:lasdrder0705/dsh-chat-zone ``` 如果第一次 `add` 被 pnpm 拦住构建脚本,按 CLI 提示在该 profile 的 `pnpm-workspace.yaml` 里加上: ```yaml allowBuilds: dsh-chat-zone: true ``` 再执行一次上面的 `add`。本仓库已带构建产物 `lib/`,多数情况下不需要这一步。 其它安装方式: ```sh # 本地源码(开发用) dsh plugin --profile web add link:/绝对路径/dsh-chat-zone # 发布到 npm 之后 dsh plugin --profile web add dsh-chat-zone ``` 完整中文说明见 [README.zh.md](README.zh.md)。 ### 功能 - 侧边栏底部新增「对话区」按钮(紧邻设置)。 - **新建聊天**:点击后自动创建 `~/dsh_CHAT/<本地日期 yyyy-mm-dd>/chatN` 三层文件夹,注册为 DSH 工作区,并直接打开绑定该文件夹的空白会话。编号规则:当天已有 `chatN` 的最大编号 +1(`chat1, chat3` 之后新建 `chat4`,删除不补号)。 - **历史对话**:面板按日期倒序分组、组内 chatN 倒序展示;每个 chatN 显示其对应 DSH 会话标题。点击即继续该对话(一个对话 = 一个文件夹,1:1)。 - **侧边栏布局**(对话区面板内可切换,默认分开,偏好记在浏览器 localStorage): - **分开显示**:`~/dsh_CHAT` 下的 chat 工作区从「工作区」列表隐藏,对应会话落到侧边栏底部的「未分组」。真正的项目工作区仍按文件夹分组。 - **合并显示**:原有效果——每个 chatN 仍作为工作区组和项目排在一起。 - 不修改官方的新会话工作区选择器,不提供 CLI,不提供删除/重命名(用系统文件管理器处理)。 ## English ### Install Same command on Mac and Windows (web profile): ```sh dsh plugin --profile web add github:lasdrder0705/dsh-chat-zone ``` Restart `dsh web` and refresh. A **对话区 / Chat zone** button appears at the sidebar foot, next to Settings. On Windows, quote the spec or use npx if the unquoted form fails: ```sh dsh plugin --profile web add "github:lasdrder0705/dsh-chat-zone" ``` ```sh npx @deepseek-ai/dsh plugin --profile web add github:lasdrder0705/dsh-chat-zone ``` If the first `add` refuses the git `prepare` script (pnpm ≥10), copy the package key into that profile's `pnpm-workspace.yaml`: ```yaml allowBuilds: dsh-chat-zone: true ``` and re-run `add`. This repo ships `lib/`, so the allowlist is usually unnecessary. Other install paths: ```sh # Local checkout (development) dsh plugin --profile web add link:/absolute/path/dsh-chat-zone # After an npm publish dsh plugin --profile web add dsh-chat-zone ``` ### Features - A "Chat zone" button at the sidebar foot, next to Settings. - **New chat**: one click creates `~/dsh_CHAT/<local date yyyy-mm-dd>/chatN` (three folder levels), registers it as a DSH workspace, and opens a blank session bound to that folder. Numbering is `max chatN + 1` for the day (`chat1, chat3` → next is `chat4`; deleted numbers are not reused). - **History**: the panel groups chat folders by date (newest first, chatN descending) and shows each folder's DSH session title. Clicking a chat continues that conversation (one conversation = one folder, 1:1). - **Sidebar layout** (toggle in the Chat zone panel; default is Separate; preference is stored in `localStorage`): - **Separate**: chat workspaces under `~/dsh_CHAT` are hidden from the Workspaces list, so their sessions land in Ungrouped at the bottom of the sidebar. Real project workspaces stay grouped. - **Together**: original behavior — each chatN remains a workspace group mixed with projects. - The official new-session workspace picker is untouched. No CLI, no delete/rename (use your file manager). ### Behavior contract - Root is always `~/dsh_CHAT`; date folders use the local timezone. - Creation failures (permissions, read-only disk) surface as a red in-panel error with retry — never a silent fallback, never touching the current session. - A concurrent creation race re-reads the day folder and bumps the number (bounded at 8 attempts). - If a chatN folder somehow has several sessions, clicking opens the most recently updated one; if its session was removed, clicking restores the 1:1 invariant with a fresh bound session. - A missing `~/dsh_CHAT` shows the empty state; "New chat" creates the root on demand. ### Development ```sh pnpm install # or npm install npm test # node:test — pure logic, fake-host orchestration, registration wiring, sidebar layout npm run typecheck npm run build # lib/index.js + lib/client.js + lib/types npm run smoke # loads the built client bundle via a stubbed window.__ModuleLoader__ ``` `tsconfig.local.json` / `tsconfig.build.local.json` are optional dev-machine overrides that resolve `@deepseek-ai/*` types through `paths` against a local DeepSeek Harness checkout.
Install
dsh plugin --profile web add github:lasdrder0705/dsh-chat-zone#c2672a27c075d904c04459ac88d40c5e4a761d8e
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-chat-zone from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.