PerryLink/dsh-memento ↗★ 124

dsh-memento

Bounded, layered, approval-gated, auditable cross-session memory for DeepSeek Harness — a capability seam (ctx.memory service + local SQLite provider + memory tool + frozen snapshot injection), not another memory warehouse 适合需要基于SQLite实现安全、可审批且跨会话记忆能力的DSH应用。

패키지
dsh-memento
호환성
미검증
Harness peer 범위
>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0
Cordis peer 범위
^4.0.3
버전
0.5.18
라이선스
Apache-2.0
최근 업데이트
2026. 9. 25.

설치

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:PerryLink/dsh-memento

Configuration

All tunables are Schemastery Config fields (changeable from cordis.yml). Invalid values fail loudly at load. Override under the memento row.

Settings panel. On the 0.1.7 line the plugin's own Config is its settings page: the form's namespace is the profile entry id (memento — the id: of this bundle's row), the editable fields are exactly the ones the plugin declares .volatile() (every key below except enabled), and an accepted edit is merged into the profile's plugin row and committed into the running plugin — no file editing, no restart. Nearly everything applies live (write policies, language, budgets, limits, proposals, panel, dbPath / auditRetentionDays via a store reopen, retrieval.vector via a retriever swap); what a plugin registers at load time (snapshotOrder, tool descriptions) is re-read on reload, and the page marks those fields. Numeric bounds are declared in the schema as well, so an out-of-range edit is refused at write time instead of leaving an unusable config behind. On the older lines (0.1.2-rc.1, 0.1.5-alpha.1, 0.1.6-0) the same card edits the dsh-memento settings namespace exactly as before; with no settings service at all, everything falls back to the composed cordis config. The floating panel button can be hidden from the same page (panel.enabled).

KeyDefaultMeaning
enabledtrueMaster switch; false removes the service, tools, snapshot, command, panel, and answerer (not editable from the settings page — a disabled plugin has no settings entry)
panel.enabledtrueShow the web panel's floating button; saving false from the settings page hides the 🧠 entry immediately, no reload needed (the settings page itself stays reachable)
dbPath'' → $DSH_HOME/dsh-memento/memory.dbAbsolute, or relative to $DSH_HOME (falls back to ~/.dsh on Windows)
budgets.user.userGlobal2000Hard character budget for the user track's user-global layer
budgets.user.workspace2000Hard character budget for the user track's workspace layer
budgets.agent.userGlobal4000Hard character budget for the agent track's user-global layer
budgets.agent.workspace4000Hard character budget for the agent track's workspace layer
writePolicy'ask'Default write policy: ask / auto / off (model-invisible)
writePolicies{}Per-track/scope or per-source overrides (e.g. user/workspace, source:claude)
language'en'Model-visible and command output language: en / zh
snapshotOrder-50Snapshot section order (after harness identity, before persona)
maxEntriesPerQuery20Default per-query result cap (hard-capped at 1000)
commandListLimit50Entries rendered per /memory list / query
commandAuditLimit10Audit rows rendered per /memory audit
recall.historyLimitDefault8memory_recall sessions scanned by default
recall.snippetCap5memory_recall snippets per session
recall.snippetChars300memory_recall snippet characters
recall.windowDays30memory_recall recency window in days
retrieval.vectorfalseSemantic recall switch: true enables memory_recall vector recall (fake hash embedding) when an embedding provider is available; otherwise degrades to substring
panelEntriesLimit200Web panel entries page size
panelAuditLimit20Web panel audit rows by default
auditRetentionDays0Audit retention (0 = keep forever)
proposals.enabledtrueAuto-capture a memory proposal after each successful compaction
proposals.maxChars2000Proposal character cap
proposals.maxPending8Pending proposal cap