DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

@playform/hook-dsh-workspace-journal

Hook Dsh Workspace Journal

workspace-journal hook:一个 DeepSeek Harness 插件,是工作区的 EVIDENCE 记录——撤销、恢复检查点和崩溃恢复(工作区系列不可见流程中的 JOURNAL 角色:……→合并提交(通过 Factor

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

npx -y @deepseek-ai/dsh plugin --profile web add @playform/hook-dsh-workspace-journal@0.2.1
README兼容性版本

兼容性与来源证明

Hook Dsh Workspace Journal 以 @playform/hook-dsh-workspace-journal 发布,当前版本为 0.2.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
npm
Registry 更新时间
2026/11/4

版本

0.2.1stable
2026/10/28
0.2.0stable
2026/10/25
0.1.0stable
2026/10/25

相关插件

正在加载相关插件…

最新版
0.2.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
43.8 kB
文件数
46
Surface
any
许可证
CC0-1.0
发布源
npm
GitHub
★ 2
周下载
293
安全扫描
✓ v0.2.1 扫描通过
最近提交
2026/11/4
查看源码 ↗项目主页 ↗
README Badge

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Hindsight Coding Agents@vectorize-io/hindsight-coding-agents面向编程代理的仅反思式 Hindsight 长期记忆(可插拔支持多种运行框架:opencode、……),自动在后台导入(无需设置 CLI)。Contextdsh-context用于上下文洞察和管理的 DeepSeek Harness 插件,提供上下文仪表板和上下文命令,帮助了解上下文的构成及其演变过程。Mnemondsh-mnemon面向 DeepSeek Harness 的可组合、基于视图的上下文。开箱即用的可插拔来源与策略、分层记忆和自我演进技能。Archive Manager@michengai/dsh-archive-manager归档、恢复、收藏和永久删除会话,并诊断损坏的会话日志。

README

@playform/hook-dsh-workspace-journal

v0.1.0 - UNPUBLISHED - plan: Workspace-Family/JOURNAL

The role

The workspace-journal hook is a DeepSeek Harness plugin that is the workspace's evidence record: the undo, the recovery checkpoints, and the crash recovery.

It is the JOURNAL role of the workspace family's invisible flow:

... → the merge commits (through Factory.Write) → the journal records → the audit lines → the live view presents

(Documentation/Plans/Workspace-Family/JOURNAL.md; Documentation/Plans/WORKSPACE-FAMILY-V4-1.md sections 3.7-3.8.)

What it does

  • Per-batch records: the merge journals a batch before its writes land, and ctx.workspaceJournal.open(batch, entries) stores the batch record (state applying) and the per-file pre-images in the plugin's own KV storage domain workspace_journal.

    There is no journal and no writes: "the workspace transaction is the ordered set of those writes plus the journal".

  • Revert data: the per-file pre-images (content + version captured before the write) are the entries, and ctx.workspaceJournal.revert(batchId) replays them backward through the factory's version-fenced write executor, where a fence mismatch is a reported conflict and never a silent overwrite, and a truncated pre-image is skipped with a ledger line, never half-applied.

  • Recovery checkpoints: the fs/observed listener (registered on the ROOT context) counts the writes landing against open batches and persists the progress, which records how far a crash got.

  • Crash recovery: at boot, every batch still applying is marked recovery-required with its identity.

    The honest all-or-nothing: recoverable partial states, never an invisible intermediate state.

Batch lifecycle: applying → verified | recovery-required | reverted.

The surfaces

ctx.workspaceJournal (registered from apply):

MethodDescription
open(batch, entries)Journal the batch before its writes land (throws if storage is down)
seal(batchId, next, reason?)Close the batch: verified or recovery-required
revert(batchId)Replay backward; per-file report
recover()The boot pass over still-applying batches
batch(id) / batches() / entries(id)Reads
statistics(){ batches, entries, applying }

The configuration

Every knob is a volatile cell (hot edits commit without remounting):

FieldDefaultDescription
enabledfalseMaster switch (the IDLE-forever posture)
logtrueLedger enabled
logFile~/.dsh/playform/hook-dsh-workspace-journal.logThe plugin's own ledger
domainworkspace_journalThe KV domain name
maxBatches200The batch ring bound
maxEntryBytes65536The pre-image size cap
exclude["node_modules/**", "**/Target/**", "**/.git/**"]Excluded paths
policy.*see belowThe D6 per-action allowlist (the revert gate)

The plugin ships disabled, so it never appears in the profile's bundles and enables only by an explicit ACTIVATE.

The policy block (D6) - the revert gate

The config carries the shared per-action allowlist (policy: Policy(), composed from the factory's block), mapped to State.Allow:

actiondefaultactiondefault
readautowriteapprove
indexautocommitapprove
recordautospawnapprove
suggestautomessageauto

The revert is the hook's ONE gated action because it writes the pre-images back, while recording (open/seal/recover) is record and stays automatic.

An approve verdict for write refuses the whole pass before any file is touched: the ledger records the byte-exact revert held (<n> files) (policy write=approve) line, zero writes reach the filesystem, the batch keeps its applying/verified state, and no record is persisted, so the revert waits for the user.

Flip policy.write to auto (or let a resolved pack override it) to let the next revert replay.

The block is one volatile object, so a policy flip is hot-editable without a remount, and a resolved pack's policy section overrides the defaults per action (the wiring is the next refinement).

The documented refusal line: journal: revert held (<n> files) (policy write=approve).

The ledger

One line per event, prefixed journal: (byte-exact; the smoke folders' expected-string sections are the arbiter):

journal: activated (domain=workspace_journal, maxBatches=200)
journal: disabled (enabled=false)
journal: opened <batch> (<n> files)
journal: sealed <batch> (verified | recovery-required)
journal: seal failed <batch> (reason)
journal: reverted <batch> (<n> files)
journal: reverted <batch> <file> (conflict | skipped: reason)
journal: revert held (<n> files) (policy write=approve)
journal: revert failed <batch> (reason)
journal: capped <batch> (maxBatches <n>)
journal: observed <file> in <batch> (progress <n>)
journal: recovery-required <batch> (applying at boot with <n>/<m> writes observed)
journal: ignored <path> (excluded | own actor)
journal: storage open failed: <reason>
journal: failed unknown (malformed event: displayPath is not a string)

Exemptions (documented)

  • The ledger file is appended with plain appendFileSync (ctx.fs has no append operation; the Append precedent).
  • Reverting an absent pre-image file unlinks it through node:fs (ctx.fs has no delete operation), while every write goes through the factory's shared version-fenced executor.

The build and the tests

The build is pnpm prepublishOnly (Source/prepublishOnly.sh): the plugin build (ESM Target/, Test tree excluded), the Test build, the harness selfcheck, and the Test type-check.

The plan

  • Workspace-Family/JOURNAL - the journal role.
  • WORKSPACE-FAMILY-V4-1 - sections 3.7-3.8.

License

CC0-1.0.