lazy-workspace-manager
n431mn/lazy-workspace-manager
DSH Web 的按目录加载侧栏:默认只列出已加载目录及其会话;卸载目录不会删除注册,可设置启动时自动加载;打开会话时会加载其已注册的工作区,避免落入「未分组」。
安装
dsh plugin --profile web add github:n431mn/lazy-workspace-managerREADME
lazy-workspace-manager
English | 中文
A DeepSeek Harness (DSH) Web plugin providing lazy loading and on-demand workspace management.
Overview
In multi-project development environments, DSH accumulates workspace registrations as directories change. Over time, the sidebar enumerates all historical workspaces and conversations, leading to visual clutter and increased navigation friction.
lazy-workspace-manager implements lazy loading and automated workspace lifecycle management:
- On-Demand Loading: Avoids listing every historical workspace at startup, preventing sidebar bloat across numerous project directories.
- Context-Aware Attribution: Opening or restoring a conversation automatically traces and loads its registered workspace, preventing conversations from falling into the "Ungrouped" state.
- Frontend Filtering with a Host Index: Filters the shared workspace and session projections while the plugin is active; the Host also keeps an index of registered workspaces and known sessions and attaches directory-owned sessions to their workspace. Removing the plugin returns the sidebar to DSH's global lists; the index and startup preferences remain in the profile data directory.
Features
- On-Demand Sidebar Loading: Restricts the sidebar to actively loaded workspace folders and their respective conversations.
- Automatic Folder Attribution: Automatically loads the parent workspace when opening conversations via search or session restore.
- Persistent Startup Defaults: Allows pinning high-frequency workspaces to load automatically on startup via settings.
- Sidebar Unload Semantics: Remaps the sidebar "Delete workspace" action to "Unload" (hides from view without deregistering or deleting session files); full workspace deletion is retained in settings with two-step confirmation.
- Filter Drafts and Archives: Suppresses interaction-less blank drafts and archived sessions to maintain a clean workspace tree.
- Reversible Unload, Persistent Index: Unloading only hides a folder and never deletes sessions; removing the plugin restores global workspace loading. The Host index and startup defaults remain under the profile data directory.
Requirements
- DeepSeek Harness Web: 0.2.1-rc.2 or higher.
- Node.js: 22.15+ or 24+.
- Pure JavaScript bundle without native dependencies or compilation requirements.
Installation
From GitHub
dsh plugin --profile web add "git+https://github.com/n431mn/lazy-workspace-manager.git#v1.0.0"
dsh web
Note: Omit the #v1.0.0 tag to track the latest changes on the main branch.
From Local Path
dsh plugin --profile web add "link:D:/path/to/lazy-workspace-manager"
dsh web
After installation and restarting dsh web, refresh your browser to access the management interface at Settings → Workspaces by folder.
Usage
- Workspace Management (Settings → Workspaces by folder):
- Click Add folder… to select a project path; the workspace will register and mount immediately.
- Use folder card toggles to Load or Unload workspaces as needed.
- Check Load at startup to persist default workspace choices across sessions and page reloads.
- Sidebar Interactions:
- The sidebar "Delete workspace" action unloads the target folder without deleting underlying data.
- Permanent workspace removal is performed through Delete registration… on the settings card.
Uninstallation
To restore official default DSH behavior:
dsh plugin --profile web remove lazy-workspace-manager
dsh web
Upon reloading the browser, all workspaces and sessions render under standard global loading behavior. The plugin's index and startup defaults stay in the profile data directory.