dsh-fish-memory: A Fading Long-Term Memory for DeepSeek Harness Sessions
yuuyuko-uu/dsh-fish-memory
A DSH plugin that gives sessions timestamped long-term memory which naturally fades: it picks what to keep, recalls by evidence and freshness, and imports old archives.
dsh-fish-memory is a DSH plugin that gives DeepSeek Harness sessions a long-term memory where every entry carries a timestamp and slowly fades in freshness. It targets the problem that long conversations crowd the context and a single compaction washes earlier details away: entries worth keeping are picked turn by turn, then recalled by evidence and freshness, while profiles, preferences and agreements can be marked as long-term facts that never expire. The memory list, the most recent recall and deleted records all stay inspectable, with data kept as local plain-text JSON and backed up before every change.
How to Install
dsh plugin --profile web add github:yuuyuko-uu/dsh-fish-memory- Category
- Data & Knowledge
- Platform
- DSH Plugin
- Author
- yuuyuko-uu
- Distribution
- Plugin
dsh-fish-memory Key Features
dsh-fish-memory Repo Summary
What Does It Do?
Fish Memory is a DSH plugin for DeepSeek Harness that gives each session a long-term memory which gradually fades, with every entry carrying a timestamp. It solves the problem that the longer a conversation runs, the more crowded the context becomes, and a single compaction makes earlier details slip away: what matters is written down, recalled when needed, and the rest slowly fades. Each memory has a freshness value that decays with a default half-life of 30 days — nothing is deleted, it just becomes harder to recall — while profiles, preferences and promises can be marked as long-term facts that never expire. It is maintained by Yuuyuko-uu under the MIT license and stores everything as plain-text JSON locally.
Core Features
- Fading memory: every entry carries a freshness score that decays over time with a default 30-day half-life, so content stays but becomes harder to recall.
- Automatic selection: the plugin judges turn by turn which lines are worth keeping, with a daily quota (8 by default) so the context does not get stuffed.
- Evidence-based recall: retrieval ranks by how distinctive the matched words are, then by freshness, importance and emotion, injecting at most a few entries (6 by default, under 800 characters total).
- Long-term facts that never expire: profiles, preferences and agreements can be marked as long-term facts and sit outside the decay curve.
- Legacy archive import: scans markdown and plain-text archives (.md, .txt, .log, .rst, .org and more, searching two levels of subfolders), lists candidates for you to pick, then rewrites them into first-person memories with search terms, dates and importance.
- Full visibility: a memory list, the most recent recall (which entries were chosen, which were not, and why), and deleted records all remain inspectable, with an automatic backup before every change.
How to Use This Plugin?
Open Settings → Fish Memory in the DSH web interface, then flip the session you want from off to on in the session list — everything is off by default, and coding sessions usually should stay off. After that, just chat normally; the plugin decides on its own what to record, with no manual work required. To inspect it, expand the memory list, where the leftmost column is the date, the middle is the content, and the right shows freshness and importance; the most recent recall panel explains which entries were picked this time, which were not, and why. If you have written settings, memory cards or diaries before, expand the legacy archive import section, choose a folder, scan for candidates, uncheck what you do not want, import the selected ones, and press refine to rewrite the raw text into memories (refining and query expansion call the model already in use in your DSH setup, and nothing is called unless you press them). The weight, time and threshold parameters in the settings page are all adjustable, and the default pronoun for the user is "ta", changeable to she or he.
How to Troubleshoot This Plugin?
- Nothing comes back: check the most recent recall table first, which states which entries were left out and why; the usual causes are matched words that are too common (not enough evidence) or an entry that has faded because it is too old.
- Import scans zero entries: the plugin reports the reason, most often a whole file written as one unbroken paragraph, lines that are too short, or content buried in tables and code blocks.
- Worried about context usage: at most 6 entries and 800 characters are injected at once, anything over that simply waits for a later turn, and both limits are configurable.
- Data location and safety: data lives in a fish-memory folder under your user directory, one plain-text JSON file per session, readable by you at any time, with an automatic backup before each change.
This page is an independent rewrite of the plugin's official README — for authoritative documentation and the latest changes, refer to the source: yuuyuko-uu/dsh-fish-memory. The plugin is third-party code that runs on your machine once installed; inclusion does not imply endorsement — please review the source before installing.
DSH Plugin FAQ
