DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins

@playform/ets-hook-dsh-workspace-journal

Ets Hook Dsh Workspace Journal

The workspace-journal hook: a DeepSeek Harness plugin that is the workspace's EVIDENCE record - the undo, the recovery checkpoints, and the crash recovery (the JOURNAL role of the workspace family's invisible flow: ... -> the merge commits (through Factor

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add @playform/ets-hook-dsh-workspace-journal@0.2.1
READMECompatibilityVersions

Compatibility and provenance

Ets Hook Dsh Workspace Journal is published as @playform/ets-hook-dsh-workspace-journal and currently resolves to version 0.2.1. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
any
Release source
npm
Registry updated
11/4/2026

Versions

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

Related plugins

Loading related plugins…

Latest
0.2.1
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
42.7 kB
Files
46
Surface
any
License
CC0-1.0
Source
npm
GitHub
★ 2
Weekly downloads
287
Security scan
✓ v0.2.1 scan passed
Last push
11/4/2026
View source ↗Project homepage ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

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 evidence record of the workspace: the undo, the recovery checkpoints, and the crash recovery.

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

... → 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: ctx.workspaceJournal.open(batch, entries) stores the batch record (state applying) and the per-file pre-images in the own KV storage domain workspace_journal of the plugin.

    No journal, 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 version-fenced write executor of the factory.

    A fence mismatch is a reported conflict, 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: 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.

Service

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/ets-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: it never appears in the bundles of the profile 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 block of the factory), mapped to State.Allow:

actiondefaultactiondefault
readautowriteapprove
indexautocommitapprove
recordautospawnapprove
suggestautomessageauto

The revert is the ONE gated action of the hook, 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 the policy section of a resolved pack overrides the defaults per action (the wiring is the next refinement).

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

Exemptions (documented)

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

The plan

  • Workspace-Family/JOURNAL - the journal role.
  • The plugin ships disabled and enables only by an explicit ACTIVATE.

License

CC0-1.0.

Related plugins

More verified plugins in memory-context.

Experimental Session Search@deepseek-ai/dsh-experimental-session-searchGive Agents tools to search and read earlier sessions from the current workspace.Hindsight Coding Agents@vectorize-io/hindsight-coding-agentsReflect-only Hindsight long-term memory for coding agents (harness-pluggable: opencode, …), with automatic background ingestion (no setup CLI).Ab Memorydsh-ab-memory--- description: "The dsh-ab-memory package: a cross-session, file-backed agent memory with five tools (remember / recall / forget / load_skill / distill) and an always-on light injection." kind: "package-reference" ---Fish Memorydsh-fish-memoryGive conversations in DSH a fading long-term memory, with every entry timestamped.