dsh-memento: Bounded, Auditable Cross-Session Memory DSH plugin for DeepSeek Harness

perrylink/dsh-memento

Memory & ContextVerified
Listed on 2026-08-20
Page last updated 2026-08-20

Bounded, layered, approval-gated, auditable cross-session memory for DeepSeek Harness.

Provides bounded, layered, approval-gated, auditable cross-session memory for DeepSeek Harness, so the model never forgets between sessions and every write is controlled and traceable.

install
dsh plugin --profile web add github:perrylink/dsh-memento
Category
Memory & Context
Platform
DSH-Plugin
Author
perrylink
Distribution
Plugin

dsh-memento Key Features

Approval-gated writesSQLite local storageSnapshot injectionAudit trail rebuild

dsh-memento Repository

perrylink
Publisher
perrylink
Repository
perrylink/dsh-memento
59
Stars
1
Forks
0
Watchers
0
Open issues
LanguageJavaScript
LicenseApache License 2.0
Website
Repo last push2026-08-19 14:40:14
Repo created2026-08-14 03:29:14
Topics
agent-memoryapprovalauditcordisdeepseek-harnessdshdsh-pluginllmmemorysqlite
Default branchmain

dsh-memento Repo Summary

dsh-memento is a memory and context plugin (DSH plugin) for DeepSeek Harness, maintained by PerryLink under the Apache-2.0 license. It addresses the problems of cross-session amnesia, uncontrolled memory writes, and lack of auditability by providing bounded, layered, approval-gated, and auditable memory as a capability seam rather than just another store. Core capabilities include a typed ctx.memory service, a local SQLite provider (WAL mode, file permissions 0600), a memory tool with frozen snapshot injection, and a write approval gate that no model path can bypass.

What core features does the dsh-memento DSH plugin offer?

  • A capability seam, not a store: Separation of service definition (ctx.memory), provider (lib/store.mjs), and consumers (memory tool + snapshot injection). Any future plugin (e.g., dsh-claude-move) can feed and read the same store through the same gate.
  • Unyielding approval gate: All write paths (add/replace/remove/seed) are forced through an approval waterfall inside the service, not in the tool layer. writePolicy: ask | auto | off is configuration the model can neither see nor change; replace/remove/consolidate include the full text of entries to be changed in the approval payload, and denied writes still log a *-denied audit row.
  • Model-visible and logged: The injected snapshot lands verbatim in request/header.system; every write is reconstructable from approval/asked + approval/decided + the plugin's audit table.
  • Bounded and honest: Hard per-track/per-layer character budgets (default user 2000 / agent 4000). A full store fails with a structured error (usage + limit), prompting the model to consolidate and retry—never truncated, never auto-compacted.

How do I install and configure dsh-memento?

Requires Node ^22.19 || >=24 and DSH 0.1.0-rc.6. Install with:

bash
dsh plugin --profile web add github:perrylink/dsh-memento

After installation, verify the config layer with dsh --profile web --dump-config. Optional overrides go in cordis.patch.yml, e.g., setting writePolicy: ask and adjusting budgets:

yaml
- id: memento
  config:
    writePolicy: ask        # ask (default) | auto | off
    budgets:
      user: { userGlobal: 4000, workspace: 2000 }
      agent: { userGlobal: 4000, workspace: 4000 }

How does dsh-memento's storage and audit mechanism work?

The provider uses a single-file node:sqlite database ($DSH_HOME/dsh-memento/memory.db, WAL mode) with zero dependencies and zero network. It includes entry and audit tables, supporting unique-substring matching. Every write generates an audit record, including denied writes (*-denied), ensuring full traceability.

Which DeepSeek Harness versions and platforms does dsh-memento support?

It is compatible with DSH 0.1.0-rc.6 and supports Windows, macOS, and Linux. It is pure ESM with no build step. The project was created on 2026-08-13 and last updated on 2026-08-16, currently with 3 stars and no open issues.

See more DSH plugins at dsh-plugin.org

DSH-Plugin FAQ