In DSH development, decisions, constraints, preferences, and project facts are often trapped within Sessions. Manually copying this information is tedious and error-prone, while unrestricted global memory may introduce irrelevant context or privacy risks. dsh-memory-spaces is designed to resolve this tension by providing an alternative: user-controlled local memory spaces.

The following sections introduce the core logic and usage of this plugin.

What Is It

dsh-memory-spaces is a standalone community plugin (MIT license) maintained by user icearia0219. It is located in the “Memory” category of the plugin ecosystem, and its core value is to: let users explicitly choose which Sessions contribute content and which Sessions can read that content.

The plugin does not place all conversations under a single automatic read/write toggle; instead, it gives users control over memory management. It maintains a local SQLite database, providing persistent, inspectable memory storage that is private by default.

Core Features

The plugin includes the following capabilities:

  • User-controlled local memory spaces: Memory is local and defined and managed by users.
  • Persistence and inspectability: Provides persistent memory without relying on the global pool, with support for viewing history.
  • Explicit sharing: Explicitly designate which Sessions are “sources” (contributors) or “consumers” (readers).
  • Preview and versioning: Memory supports version rollbacks and can be previewed before use.
  • Provenance tracking: Supports provenance-aware recall.
  • Private by default: A Session cannot read any space memory by default until explicitly connected.
  • Independent source/consumer relationships: A Session can be both a source and a consumer, or only one of them. Having a relationship does not imply automatic copying of historical or future conversations.
  • Manual governance: Operations such as space creation, relationship changes, and lifecycle decisions must be performed by the user in the UI; the plugin does not expose these as model tools.
  • Pre-send review: Memory automatically matched in the composer can be inspected or suppressed by the user.
  • Local SQLite storage ownership: Data is stored locally and does not rely on remote synchronization.

Installation and Enablement

Before installing, confirm your DSH version. The plugin is compatible with DSH aggregate releases >=0.1.5-rc.3 <0.2.0.

Install the specified version under the Web Profile:

dsh plugin --profile web add dsh-memory-spaces@0.1.1

After installation is complete, restart dsh web to enable it.

Typical Usage

The usage workflow has three stages: creation and saving, connection establishment, usage and review.

  1. Create and save
    Open a Session, select Memory spaces in the UI, create a new space, and explicitly choose the messages in that Session that should be saved. This step establishes the “source.”

  2. Establish connection
    Connect another local Session as a “consumer” of that space. The Session then gains permission to read the space’s memory, but does not automatically gain write permission.

  3. Use and review
    In the consumer Session, send prompts related to the memory. Before sending, inspect the candidate memory in the composer. If certain memory entries are not needed, suppress them or modify them before sending.

Application Scenarios and Considerations

Scenarios:
* Developers who need to share specific context across multiple Sessions without polluting global context.
* Scenarios requiring strict review of memory injected into the model.
* Developers who need to manage historical project facts, decisions, and constraints.

Considerations:
* Not a model tool: Relationship changes and destructive governance operations (such as deletion or clearing provenance) are not exposed as model tools and must be performed directly by the user.
* Untrusted input: Stored memory is treated as untrusted input. Although the plugin provides preview and review, it cannot guarantee complete defense against prompt injection.
* Local storage risk: The Profile-local SQLite database is unencrypted. If a process has file system or shell access, it can modify the database.
* No remote synchronization: The plugin does not support remote invitations or cross-instance synchronization.
* Sensitive content warning: A sensitive content warning appears before conversations, historical summaries, or snapshots are stored.

Summary

dsh-memory-spaces shifts memory management from “automatic global” to “explicit local,” giving developers more precise control over the context flow of DeepSeek Harness. It is suitable for users who want to reuse knowledge bases across multiple conversations without sacrificing security or controllability.

For plugin details and source code, see:
* GitHub repository
* SkillHub catalog