DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Draft Sessions — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
D

dsh-draft-sessions

Draft Sessions

DeepSeek Harness 的持久化未发送草稿会话

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:xarleyn/dsh-draft-sessions#e3561be71134a37e90dd7d9a555f6e79ee70518a
README兼容性版本

兼容性与来源证明

Draft Sessions 以 dsh-draft-sessions 发布,当前版本为 0.1.0-alpha.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/8/22

版本

0.1.0-alpha.0prerelease
2026/8/22

相关插件

正在加载相关插件…

最新版
0.1.0-alpha.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 1
周下载
0
最近提交
2026/9/6
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 productivity-workflow 分类下经过校验的插件。

Client Ui Task Board@linxin666/dsh-client-ui-task-board面向 DSH Web GUI 的主机权威任务面板,支持实际会话执行、主机 cron 调度以及可选的跨平台空闲睡眠保护;以挂载方式提供,无需修改 DSH 源代码。Web All@linxin666/dsh-web-allDSH Web UI 全家桶聚合插件:一键安装全部功能插件(task-board / git-graph / pet / remote-web-ui / web-ui-settings / skin-center / community-plugins / compat shim)。compat 桥接层已并入本包(src/client),无需独立 compat npm 包。Rewind Plugindsh-rewind-plugin同窗口内对话回退并恢复工作区文件Acp App@deepseek-ai/dsh-acp-appdsh ACP 配置文件包:基于 dsh-base 的仅限自动化的 JSON-RPC stdio 和进程生命周期管理

README

dsh-draft-sessions

Persistent, unsent future conversations for DeepSeek Harness.

dsh-draft-sessions is building the Cursor-like workflow where you can prepare several independent tasks, leave them unsent, and return to each task later without starting an agent.

[!IMPORTANT] This repository is an early alpha. The durable draft lifecycle, composer bridge, and sidebar interactions are implemented. Release qualification across restarts, browsers, platforms, and supported DSH versions is still in progress.

Русская версия · Specification · Architecture · Roadmap

The intended experience

my-project
├─ ● Fix auth middleware
├─ ◌ Add Grafana dashboards       Draft
├─ ◌ Refactor docker entrypoint   Draft
└─ ● Implement notifications

Each draft owns a real blank DSH Session, but its unsent text is stored separately on the Host. If that blank Session disappears after a restart, a new shell can be created and rebound without losing the task.

flowchart LR
  UI["Sidebar draft row"] --> Composer["Standard DSH composer"]
  Composer --> Draft["DraftRecord — text authority"]
  Draft --> Session["Real blank DSH Session"]
  Session -->|"first prompt accepted"| Normal["Normal DSH Session"]

What works now

  • Host-backed JSON persistence under $DSH_HOME/storages/dsh-draft-sessions/drafts.json.
  • Strict typed draftSessions.list/create/update/delete/rebind Remote methods.
  • Independent workspace ordering and a configurable per-workspace limit.
  • Optimistic revisions that reject stale browser writes.
  • Atomic same-directory writes and strict durable-file validation.
  • Distinct blank Session creation with the id persisted only after success.
  • Missing Session detection and recovery rebinding without changing draft text.
  • Accepted-Send observation with finalization only after blank: false.
  • Rejected Send and blank slash-command preservation.
  • Exact composer restore through the official per-session InputHub facade.
  • Debounced optimistic autosave with a mandatory pre-switch flush.
  • Ctrl/Cmd + Shift + N creation in the current or recent Workspace.
  • Muted draft rows before ordinary Sessions through the pinned upstream workspace browser.
  • Inline rename, duplicate, confirmed delete, keyboard navigation, and bounded drag reorder.
  • Safe active-draft deletion with a final autosave flush and recovery after a rejected delete.
  • Compatibility fallback to the untouched upstream browser when replacement activation is unsafe.
  • Unit and DOM coverage for persistence, concurrency, lifecycle, composer, and sidebar behavior.

The current implementation deliberately does not send prompts, modify ordinary Session history, or delete blank Sessions.

Requirements

  • Node.js ^22.19.0 or >=24.0.0
  • pnpm 11
  • DeepSeek Harness next, currently >=0.1.1-rc.2 <0.2.0

The next requirement is intentional: the plugin uses the current Typert Remote API published by DSH.

Development

cd dsh-draft-sessions
pnpm install
pnpm check

Build and link the checkout into a Web profile:

pnpm build
dsh plugin --profile web add .
dsh --profile web --dump-config

For a GitHub installation, DSH also supports dsh plugin --profile web add github:owner/dsh-draft-sessions. Because Git dependencies build from source, pnpm will require the user to allow this package's prepare script. Prefer an npm release or packed tarball when you do not want install-time build permission.

Remove the linked package with:

dsh plugin --profile web remove dsh-draft-sessions

Releases

Releases are built from existing v-prefixed SemVer tags by the manual Release workflow. The workflow checks out the exact tag, runs the full quality gate, replaces the package version with the tag version, creates an npm tarball and SHA-256 checksum, smoke-tests a clean tarball install, uploads the workflow artifact, and creates a GitHub Release with generated notes.

Maintainers can start it from Actions → Release → Run workflow, or with GitHub CLI:

git tag -a v0.1.0-rc.1 -m "v0.1.0-rc.1"
git push origin v0.1.0-rc.1
gh workflow run release.yml -f tag=v0.1.0-rc.1 -f publish_npm=false

Prerelease tags publish to the npm next dist-tag; stable tags use latest. npm publication is disabled by default. To enable the opt-in publish job:

  1. Bootstrap the package on npm if it has not been published before.
  2. Configure npm trusted publishing for this GitHub repository, workflow filename release.yml, environment npm, and the npm publish action.
  3. Create the protected GitHub environment named npm, then run the workflow with publish_npm=true.

The publish job uses GitHub OIDC instead of a long-lived npm token. A GitHub Release is always created before npm publication is attempted.

Configuration

The bundle inserts the draft-sessions Cordis row. Override it from the profile patch when needed:

- id: draft-sessions
  config:
    # Blank uses $DSH_HOME/storages/dsh-draft-sessions/drafts.json
    storagePath: ""
    maxDraftsPerWorkspace: 50

Current API

await ctx.remote.draftSessions.list({ workspaceId });

await ctx.draftSessionLifecycle.create({
  workspaceId,
  text: "",
});

await ctx.draftSessionLifecycle.ensureShell(draft);

await ctx.draftComposerBridge.open(draft);
await ctx.draftComposerBridge.flush();

await ctx.draftShortcutController.create(workspaceId);

await ctx.remote.draftSessions.update({
  id,
  expectedRevision: 4,
  text: "Add OTEL export",
});

await ctx.remote.draftSessions.rebind({
  id,
  expectedRevision: 5,
  sessionId: replacementSessionId,
});

The lifecycle service owns blank Session creation and recovery. The lower-level Remote methods remain available for storage operations; all mutations return the next revision, and a stale expectedRevision is rejected instead of silently overwriting another browser's edit.

Design boundaries

  • Draft text is authoritative in DraftStore; a blank Session is only an execution shell.
  • Creating a draft must never make a model request.
  • The first accepted prompt, not the Send button click, is the conversion boundary.
  • Ordinary DSH Sessions remain owned entirely by DSH.
  • Attachments are out of scope for v1; text and textual @file references come first.
  • The upstream workspace browser currently has no public row-extension seam, so exact sidebar integration requires a small, version-tracked replacement package.

See SPEC.md for acceptance criteria and docs/architecture.md for the lifecycle.

Contributing

Issues and focused pull requests are welcome. Please read CONTRIBUTING.md and run pnpm check before submitting a change.

License

MIT