lasdrder0705/dsh-chat-zone0

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

包名
dsh-chat-zone
版本
0.2.0
许可证
MIT
最近更新
2026年8月21日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:lasdrder0705/dsh-chat-zone

dsh-chat-zone

A DeepSeek Harness (DSH) web plugin that adds a one-click "Chat zone" to the sidebar.

Features

  • A "Chat zone" button at the sidebar foot, next to Settings.
  • New chat: one click creates ~/dsh_CHAT//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).

Install

For other people, this is the install command (web profile):

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.

If the first add refuses the git prepare script (pnpm ≥10), copy the package key into that profile's pnpm-workspace.yaml:

allowBuilds:
  dsh-chat-zone: true

and re-run add. This repo ships lib/, so the allowlist is usually unnecessary.

Other install paths:

# 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

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

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.