Repository navigation
Releases: adithyanraj03/dsh-memory-recall
Release list
dsh-memory-recall 0.3.0 — budget sliders in the Memory panel
Budget sliders in the Memory panel
How much memory every chat pays for was a patch-file decision: edit limits in cordis.patch.yml, restart dsh, reload. Now it is two sliders in ⚙ Display settings — and they take effect from the chat's next delivery, no restart.
What you will see
- 🧠 Memory → ⚙ Display settings gains a BUDGETS section: a Notes budget slider (500–10,000 characters) and a Profile budget slider (250–5,000). Each row shows the live value as
4,000 chars · ≈1,000 tokenswhile you drag. - The panel's rings and bars rescale the moment you release a slider — the save response carries the fresh state, so nothing needs a reload.
- Once a slider has moved, a Reset to the config file's limits link appears; clicking it deletes the saved budgets and returns to whatever
cordis.patch.ymlsays.
Why it works without a restart
- The budget numbers the model actually reads — the
[98% — 3,938/4,000 chars]header on the injected memory message, and the over-budget errors that trigger consolidation — are computed from the live limits at delivery time. A slider move lands on the chat's next delivery. - Saved budgets go to
settings.jsonin the plugin's own folder (atomic write, same pattern as the memory files) and win over the config file; the config stays the startup default. - Bounds and whole-number checks are server-side on the new
GET/POST /settingsroute — a hand-made request outside the range gets a clean 400, never a silent clamp.
One honest note
The budgets bound what gets delivered. Lowering one below what is stored means the next snapshot trims to fit — the same rule as an over-full store, which asks the model to consolidate. Raising is the friendly direction.
Under the hood
src/store.js—LIMIT_BOUNDS,setLimit/resetLimitswith a persistedsettings.json,limitsState(); saved budgets load at construction so they survive restarts.src/routes.js—GET/POST /settings;/statenow carriesbudgetsso the panel draws the sliders from the fetch it already makes.lib/client.js— the BUDGETS section: real range inputs in the chip's violet, char/token readout, commit on release, reset link.- 125 tests (124 pass, 1 skip): persistence across reopen, saved-overrides-config and reset, validation refusals, a raised budget admitting a previously-refused write, the route end-to-end, and the client wiring.
Update
Update dsh-memory-recall from the marketplace (or Settings → Plugins → Update), then restart dsh. The sliders appear under ⚙ in the Memory panel; your memory files are untouched.
dsh-memory-recall 0.2.3
dsh 0.2.x: the memory message uses the v4 source kind (plugin:memory); fixes 'format v4 message requires a producer-owned source kind' on a new chat's first turn.
dsh-memory-recall 0.2.2
Your plugin now has a face
Until now dsh-memory-recall showed dsh's generic blue glyph in Settings → Installed plugins, and its dshmarket tile fell back to the owner's GitHub avatar. 0.2.2 ships a real icon.
It is the same solid brain the plugin already draws in your chats — the Saved-to-memory gradient (amber → rose → violet) with its violet glow, on a dark tile — so it reads at 36 px in the plugin list and 96 px on the market tile, on light and dark themes alike.
Where you will see it
- Settings → Installed plugins — the dsh-memory-recall row shows the brain tile instead of the generic glyph.
- The dshmarket tile — the store card shows the icon instead of an avatar.
No install step: dsh reads the icon from the installed package ("icon": "assets/icon.png" in package.json) and embeds it itself. The SVG source lives at assets/icon.svg.
No behaviour change — memory delivery, session_search, the Memory panel and the @ menu work exactly as in 0.2.1.
Update
dsh plugin --profile web add dsh-memory-recallthen restart dsh --profile web and hard-refresh the browser (Ctrl+Shift+R / Cmd+Shift+R).
Requires dsh 0.1.5+ (works on 0.1.7+ and 0.2.x) and Node 22+.
dsh-memory-recall 0.2.1
The memory guidance section now registers on agent/created with agent/disposed teardown - the seam every dsh release emits. dsh 0.1.7 removed agent/session-start, which the guidance previously rode, so on 0.1.7+ and 0.2.x the guidance was silently missing from every chat. Works on dsh 0.1.5-rc.2 through 0.2.x; session-start stays wired as a deduped back-compat path. No other behavior changes.
dsh-memory-recall 0.2.0
Memory now reaches the model as a logged context message (Memory loaded / reloaded / updated) - at the start, after a change, and after compaction - via an agent/pre-step hook (src/inject.js). New: an optional memory read action, a brain button in the composer, and Display settings in the Memory panel. A change without a target is now refused instead of guessed.
dsh-memory-recall 0.1.0
Initial public release: a memory tool (user profile + the model's own notes) in every new chat's prompt, session_search over earlier chats behind dsh's approval prompt, a Memory panel in the sidebar, and chats and workspaces in the @ menu. Host-side, offline, no runtime dependencies.