Back to home@Harzva

dsh-session-folders

No description

Stars
0
Language
TypeScript
Created
Sep 3, 2026
Updated
Sep 3, 2026
GitHub repo

Introduction

dsh-session-folders

给 DeepSeek Harness (DSH) 的会话加一层「文件夹」归类。会话可以按 cwd 自动归档、手动移动到任意文件夹;文件夹路径即项目记忆作用域钩子。

A self-contained folder layer for DSH sessions: sessions file under folders ('' = inbox), auto-file by working directory, and each folder path doubles as the project-memory scope.

What it does

  • Durable folder registry. sessionId → folderPath assignments and folder definitions live in their own DSH storage-domain, so they survive restarts and are independent of the core workspace model.
  • Non-destructive removal. Removing a folder returns its member sessions to the inbox; it never deletes a session or its log.
  • Client surfaces (additive, no core slot replaced):
    • a Session Folders settings page to create / rename / remove folders and file sessions;
    • a per-session "Move to folder…" action.
  • Memory scope hook. assignment[sessionId] gives the folder path a session belongs to — that path is the natural key for a project-scoped memory namespace (e.g. .harvis/memory).

What it deliberately does not do (yet)

The sidebar "group by folder" tree is not provided by this plugin. DSH's sidebar.workspaces region owns the session list and exposes no additive inner seat for a folder tree, so that grouping requires a core slot patch — which is why the folder model is split between this plugin (durable registry + management UI) and any future core slot.

Install

dsh plugin --profile web add <tarball-or-github-url>

For users on the Harzva release:

dsh plugin --profile web add github:Harzva/dsh-session-folders

Development

pnpm install
pnpm check        # build + node --test + verify-package
pnpm run pack:dsh # artifacts/dsh-session-folders-<version>.tgz

Contract

  • dsh.bundle.patch./cordis.patch.yml (loader row harzva-dsh-session-folders).
  • dsh.client (platform web) injects the DSH client connection / runtime / settings / slots / locale facades.
  • Host exports ./lib/index.js (Node), Client exports ./lib/client.js (browser).

License

MIT