DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-trivium

Trivium

基于 TriviumDB 的 DeepSeek Harness 进程内图记忆。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-trivium@0.8.4
README兼容性版本
ctx_find authTrajectoryMemory pageContext pageActivity pageSettings pageCommand paletteChips tab

兼容性与来源证明

Trivium 以 dsh-trivium 发布,当前版本为 0.8.4。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/11/4

版本

0.8.5stable
2026/11/4
0.8.4stable
2026/11/3
0.8.3stable
2026/11/2
查看其余 32 个版本收起版本
0.8.2stable
2026/10/30
0.8.1stable
2026/10/29
0.8.0stable
2026/10/29
0.7.1stable
2026/10/28
0.7.0stable
2026/10/28
0.6.0stable
2026/10/28
0.5.1stable
2026/10/28
0.4.22stable
2026/10/27
0.5.0stable
2026/10/27
0.4.21stable
2026/10/19
0.4.20stable
2026/10/19
0.4.19stable
2026/9/20
0.4.18stable
2026/9/11
0.4.17stable
2026/9/11
0.4.16stable
2026/9/1

相关插件

正在加载相关插件…

最新版
0.8.4
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
797.2 kB
文件数
44
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 5
周下载
1,909
安全扫描
✓ v0.8.4 扫描通过
最近提交
2026/11/4
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
0.4.15stable
2026/8/28
0.4.14stable
2026/8/26
0.4.13stable
2026/8/26
0.4.11stable
2026/8/26
0.4.10stable
2026/8/26
0.4.9stable
2026/8/25
0.4.8stable
2026/8/24
0.4.7stable
2026/8/23
0.4.6stable
2026/8/22
0.4.5stable
2026/8/21
0.4.4stable
2026/8/21
0.4.3stable
2026/8/21
0.4.2stable
2026/8/21
0.4.1stable
2026/8/21
0.4.0stable
2026/8/21
0.3.0stable
2026/8/20
0.2.0stable
2026/8/20

相关插件

继续浏览 memory-context 分类下经过校验的插件。

Hindsight Coding Agents@vectorize-io/hindsight-coding-agents面向编程代理的仅反思式 Hindsight 长期记忆(可插拔支持多种运行框架:opencode、……),自动在后台导入(无需设置 CLI)。Memory Plugin@openviking/dsh-memory-plugin适用于 DeepSeek Harness 的 OpenViking 记忆与上下文套件Archive Manager@michengai/dsh-archive-manager归档、恢复、收藏和永久删除会话,并诊断损坏的会话日志。Memory@furongjun1999/dsh-memory灵枢(Lingshu·líng shū)DeepSeek Harness 插件:完整大脑——长期记忆/知识飞轮/自我认知/递归反思接入 DSH,对话自动沉淀进 md_cg 认知图(md 文档)

README

dsh-trivium — In-process graph memory for DeepSeek Harness

dsh-trivium cover

In-process graph memory for DeepSeek Harness. One .tdb per workspace. No extra server.

The kernel stays close to DSH: no extra process, no extra nav by default. Pin memory fragments with optional chip inject; the plot canvas is an optional extra, loaded from Settings.

Quick install: dsh plugin --profile web add dsh-trivium → restart dsh web → open a workspace (Settings shows Trivium memory; the Chips tab stays off until you turn it on). Details in Installation.

English | 中文版

The published npm package is 0.8.4 (release notes): a settings-surface rebuild with no server behaviour change. See the documentation index for verification status.


Installation

Prerequisite: install DeepSeek Harness and start dsh web at least once. Current Web verification uses 0.2.1-rc.4; see the baseline and evidence index for desktop 0.2.1-rc.3 coverage and limitations. Node must satisfy ^22.19.0 || >=24; triviumdb is pinned to 0.9.0-beta.3.

dsh plugin --profile web add dsh-trivium

Restart dsh web. Memory lives in the current workspace:

<workspace>/.dsh/trivium.tdb      # local index (binary; gitignore this)
<workspace>/.dsh/trivium.jsonl    # optional Git exchange snapshot (business facts)

Commit trivium.jsonl. Ignore the binary store:

.dsh/trivium.tdb
.dsh/trivium.tdb*
.dsh/trivium-pending.json
.dsh/consumer-preferences/
.dsh/trivium-changes.jsonl*

Clone / git pull re-imports when the jsonl changed. Settings → Git sidecar is off by default (same as chips). Turn it on under Settings (the fold below Check for updates). The switch only starts or stops auto-write. Generate (while on) overwrites .dsh/trivium.jsonl from the current .tdb at the same path. Delete jsonl (while off) removes known workspace jsonl files (.tdb stays). Episodes, embeddings, and chip pins stay local.

If you launch DSH with Dsh_BatStart, the plugin is installed for you — skip the command above.

Local source checkout:

npm install
node scripts/link-dsh.mjs
npm test              # optional: runs every offline smoke script

npm test needs no DSH host and never touches your real ~/.dsh/trivium.json (each script gets its own temp settings file). Pass a substring to narrow it: npm test -- p8.

Then restart dsh web.

Updating

Before upgrading, stop DSH and back up the entire workspace .dsh/trivium.tdb* file group. Default mmap storage also uses .vec, .wal, .text, and other sidecars. Git JSONL omits local-only data and is not a complete backup.

dsh plugin --profile web add dsh-trivium

Restart dsh web. For a source checkout, git pull then run node scripts/link-dsh.mjs again.

Uninstall

Stop dsh web first so the .tdb is not locked, then:

dsh plugin --profile web remove dsh-trivium

remove deletes ~/.dsh/trivium.json and the known .dsh/trivium.tdb*, trivium.jsonl*, and trivium-pending.json files in workspaces the plugin has opened. It does not remove the 0.8.2 preference-export directory .dsh/consumer-preferences/; the post-0.8.2 source also leaves .dsh/trivium-changes.jsonl and its incomplete-history marker. These can contain memory-derived information. Inspect and remove them manually if desired. Other files under .dsh/ stay. Updating with dsh plugin add dsh-trivium does not wipe memory. If trivium.jsonl was committed, git checkout brings it back.

Restart dsh web afterward: Settings no longer shows Trivium memory, the title bar no longer shows Chips, and the four tools are unregistered.

Workspaces never opened after this version may still have an old .tdb; delete that file by hand if you find one. Disable without uninstall (data stays): in that profile’s cordis.patch.yml add:

- id: dsh-trivium
  disabled: true

Then restart dsh web.

Permissions and data

The plugin loads inside the dsh web process. It does not open its own port or extra service.

AccessDefaultNotes
Workspace .dsh/trivium.tdbread/writeMemory store. Do not open the same file from two Node processes at once
Workspace .dsh/trivium.jsonlread/writeGit sidecar (off by default). Business nodes/edges only; no embeddings
~/.dsh/trivium.jsonread/writeSettings and chip pins; may contain an embedding API key you typed
.dsh/trivium-pending.jsonread/writeLocal queue when extract fails
.dsh/consumer-preferences/optional0.8.2 preference bindings, snapshots and generated persona copies; retained after uninstall
.dsh/trivium-changes.jsonlcurrent source onlyLocal bounded change record; post-0.8.2, retained after uninstall
Model extractiononWhen the host exposes a model service, extraction sends a bounded conversation excerpt to the current session's provider/model through DSH. A remote provider means network traffic and possible model charges. Without that service, extraction uses local rules
Remote embeddingsoffWhen enabled, node text and search queries are sent to the configured embedding URL. Keyword and graph retrieval work without it
Update checkmanualCheck for updates fetches npm package metadata, without the conversation
Conversation excerptsmay be sent to the host modelDurable memory is stored locally. This does not make extraction or the DSH model conversation offline. Disable extraction and remote embeddings to stop those plugin-initiated model/embedding calls

The official DeepSeek chat API has no embeddings endpoint. Keyword + graph walk still work without it. Save embedding fields after editing; if the change does not take effect, restart dsh web.

AI-era installation

Copy this to your assistant:

On DeepSeek Harness, run: dsh plugin --profile web add dsh-trivium
Then restart dsh web. Settings will show "Trivium memory". The title-bar tab is
"Chips" and is off by default; turn it on under Settings → Trivium memory
(Chips / memory whitelist). The toggle saves immediately; no second restart.

Graph memory that stays quiet

Trivium is a memory kernel, not a journal, calendar, or chat companion. It stores nodes and edges, injects as little as possible, and lets you correct mistakes.

  • Cross-session graph — session A stores “auth goes in header X”; session B calls ctx_find("auth") and gets the hit plus who it links to (about / decided / broke / fixed).
  • Default quiet — a new session injects one short map (≤400 tokens). The model calls tools when it needs more. Nothing is dumped every step. No extra title-bar tab until you turn Chips on.
  • Chips / memory whitelist (off by default) — Settings → Trivium memory. Toggle saves to ~/.dsh/trivium.json immediately and survives restart. The title bar then shows Chips next to Conversation / Trajectory. Checked items pin into the next turn (L0, ≤300 tokens). Under it, Session layer (also off) draws compaction / forks as boxes.
  • Human-editable — chips can add, archive, or delete; Settings search, rename, merge, import/export, and global switches.
  • Selective extraction — rules aim to exclude chitchat and one-off file edits; extraction can miss or misclassify facts. Chip “Add” stores one paste as one node, subject to the write hygiene gate.
  • Write hygiene — ctx_remember, chip add, extract, and external import reject several kinds of malformed content and rule-detectable suspected credentials. Rules cannot identify every secret, especially an arbitrary value without identifying context. Do not rely on this gate as complete secret protection. Dirty nodes already in .tdb stay visible in Settings so you can archive them; they are hidden from find / short map / chips.
  • Optional embedding — off by default. The official DeepSeek chat API has no embeddings endpoint; fill an OpenAI-compatible URL if you want one. Keyword + graph walk still work without it.

Budget and a quick example

The session map is limited to 400 estimated tokens. When chips or automatic recall are enabled, pins, recall and corrections share 300 estimated tokens per turn; tools can fetch full text on demand. These limits exclude tool schemas and responses, model answers and background extraction; they are not a cap on the total request or bill.

In a test workspace, ask the agent in session A to remember a project decision and link it to an entity. Start session B in the same workspace, ask it to find that entity with ctx_find, then inspect the returned path and read the fact with ctx_read. The reproducible example explains the steps, cleanup, and expected limits. Actual extraction and model tool choice are not guaranteed.

Under the hood

  • In-process, one store per workspace — TriviumDB (vectors + JSON payload + directed weighted graph) opens with the DSH process. Its file group includes storage sidecars; no separate HTTP/Python service is needed.
  • Four tools only — ctx_find / ctx_read / ctx_remember / ctx_link. Chips / session layer do not add a fifth.
  • Injection via agent.inject() — not the system prompt, so persona.complete: true cannot silently drop the map.
  • Recall carries paths — every hit says which node it came from and along which edge.
  • Failure handling — embedding failures fall back to keyword and graph retrieval; extraction failures can be queued for replay. Some storage failures still need attention; see the known limits.
  • UI follows the host language — Settings and the Chips (memory whitelist) tab switch with DSH locale/change (zh / en). Any other resolved host language — and a browser that names no registered language — falls to English, the same FALLBACK_LOCALE the host itself uses.
  • First-turn map — the short map is injected once per session. If session-start loses a race with the first model step, pre-step fills it in; it is not rewritten every step (prefix-cache friendly).

Features

Cross-session graph

Nodes are entity / preference / decision / experience. Business edges are about, decided, broke, fixed.

ctx_find returns L0 summaries plus edge paths (incoming as <-label-id). Entity-name queries also return about / decided / broke / fixed neighbors even when their text omits the query. Relevant expired decisions remain searchable as history, labeled stale and ranked lower. Set include_stale: false to exclude them. Automatic recall and the opening map still exclude expired decisions.

Dates in prose stay in prose. Set expiry in Settings or the separate ctx_remember.until field. Supported labels are YYYY-MM-DD, weekdays such as Friday / 周五, 周末, and 下周 (one week), resolved at the end of the UTC day. An unresolvable replacement label cannot retain the old untilAt. Clearing the label clears the timestamp; changing a relative deadline anchors it to the edit, while saving an unchanged label does not extend it.

0.4.22 does not bulk-delete existing expiry fields. Find affected entries with ctx_find or Settings → Show expired decisions, clear until, and save. Later edits to dated prose will not recreate the expiry.

Chips (memory whitelist)

Off by default. In Settings, turn on Chips (memory whitelist) — no extra Save click, no restart. The title bar shows Conversation / Trajectory / Chips at once, and the choice is stored in ~/.dsh/trivium.json so it survives restart. This is a pin whitelist, not the memory editor. Rename, merge, and global switches stay on the Settings page.

Lists unarchived preference / decision / entity (experience stays out). Check to pin into the next turn (L0, ≤300 tokens). Add / archive / delete on the strip.

ActionWhen it takes effect
Check a chipThe next message you send in this segment carries it (L0; chips and recall share 300 tokens)
UncheckThe turn after that no longer carries it
AddOne click writes one node; a whole paste is still one node
Select → ArchiveSoft delete: gone from find / short map / chips; the node remains in .tdb
Select → DeleteRemoved from .tdb, not recoverable
Turns already sentNot rewritten

Chips are per session. New sessions and forked children start unchecked. Inherit pins when the session layer fork dialog is on, or check them again on the child. The short map still arrives at session-start and does not use a chip slot.

Session layer is a nested switch, also off. When on, the same tab draws compaction / fork boxes (Create checkpoint, Update checkpoints, fork from a box). Episode nodes are not recalled by ctx_find. Turning the layer off stops writing episodes; existing .tdb nodes stay.

Settings (Trivium memory)

Settings → Trivium memory manages the store. The host gives a plugin exactly one section, so the panel is split into four pages inside it — plus Ctrl/Cmd+K to jump to a page or a section by name:

PageAnswersWas
Memory (default)What is stored; search, filter, edit, archive, delete, merge, replacethe list tab
ContextWhat was actually sent last turn, and a read-only probe of what would be sentthe first half of the recall tab
ActivityWhat the plugin has been doing: last extraction, stuck/recovered, map injection, revision check, pending corrections, recovery, change log, recall tracesthe second half of the recall tab + the old diagnostics block
SettingsMemory behaviour, display, data, vector, aboutthe always-visible tail of the old page

Toggles still write ~/.dsh/trivium.json as soon as you flip them; only the embedding fields use Save. The command palette navigates and focuses — it never writes a setting. When the panel is wide enough (≥1000 px of card width) a node's detail opens beside the list; at 720–999 px it opens as a dialog; below that it expands inline as before.

At the top of Activity, four rows say what the last run did. An unobserved value reads no record — it is never rendered as 0 or as success.

SwitchDefaultWhat it does
Chips (memory whitelist)offTitle-bar Chips tab next to Conversation / Trajectory. Checked chips are a whitelist for the next turn (L0, ≤300 tokens).
Session layeroff (needs Chips on)Plot canvas on the same tab: Create checkpoint, Update checkpoints, fork from a box.
Git sidecaroffDebounced write of .dsh/trivium.jsonl (format v2; relations included, local sources never written). Generate (on) overwrites from the current .tdb. Delete jsonl (off) removes known files. Clone / pull re-imports.
Plugin languagefollow hostChinese / English for this plugin's Settings card and Chips tab only. Does not change DSH.
InjectionoffShort map only, unless you pick autoRecall or entity-name path.
ExtractonWrite from compaction / idle.
EmbeddingoffEnter a URL and use Save; restart if the saved change does not take effect.

Injection detail: autoRecall considers up to 8 candidates when the step has user text, then selects L0 records within the remaining shared budget; entity-name path injects 1-hop business neighbors only when the utterance names an existing entity. Corrections for delivered facts take priority, followed by checked chips and recall, all within the same allowance. Disabled injection or insufficient budget keeps notices pending with a reason; delivery on the next message is not guaranteed. Later pre-steps detect expiry of delivered decisions; there is no background timer and the ledger clears on restart. Extract runs after compaction/end and a short idle; failures go to pending and replay on the next session-start (body ≤3000 chars, at most 24 items).

  • Entries — search, filter by type, expand business-edge neighbors, “only nodes hanging on this one”, hide expired decisions by default. Rename / edit body / aliases / until, merge same type, archive or delete.
  • Export / import — JSON is a real round-trip. Markdown is a read-only projection (for people). Git sync uses .dsh/trivium.jsonl (business facts, auto). One-shot strict import from WorkBuddy MEMORY.md, Claude Code CLAUDE.md, and Codex AGENTS.md. No watch of those files, no session jsonl dumps.
  • Check for updates — Settings compares the installed version with npm latest and shows dsh plugin --profile web add dsh-trivium when a newer version exists. It does not auto-upgrade.

Export approved preferences (0.8.2)

dsh-trivium-prefs can create a workspace-, consumer- and purpose-scoped binding for explicitly approved entries, export a bounded snapshot, revoke it, and verify the files. It produces a separate persona copy rather than modifying the original. Verification is optional and must be called by the consumer; it does not happen automatically. Use npm exec --package=dsh-trivium -- dsh-trivium-prefs --help for arguments and see the 0.8.2 release notes for limits and known issues.

Sources, history, and the read-only probe

The card has four pages, and a node detail has three tabs.

SurfaceWhat it answers
MemoryWhat is stored. Replaced versions are hidden by default; Show replaced is a separate switch from Show expired.
ContextWhat the last turn actually injected, in estimated tokens, plus a read-only probe: candidates, real filter reasons, and the exact text that would be sent.
ActivityLast extraction, stuck / recovered, last map injection, revision check, pending corrections, recovery state, change log, recall traces.
Content / Source / Decision historyThe body, where it came from, and the chain of decisions that replaced it.

A memory knows where it came from only if the write recorded it (kind, session, message, a short quote). A record with no source says so; it never guesses a session or an author. A session this process cannot confirm is reported as unavailable while the stored excerpt is kept. The host exposes no session locator, so there is no deep link — rather than inventing one.

The recall check is read-only: it does not write, does not run a tool, and never requests an embedding. With no query vector it says the semantic channel did not run. Nothing on these tabs injects context or calls a model.

Replacing a decision

A newer decision does not expire the old one — it supersedes it. Replace… on a decision picks another existing decision, shows both side by side, and asks for confirmation. The old body and deadline are kept and nothing is archived; the panel then shows Current version / Replaced as its own axis, next to Expired.

The chain is linear: at most one direct predecessor and one successor, no cycles, at most 32 hops. Writes are validated server-side inside a per-workspace queue with both nodes' ETags, so a second window that confirmed off a stale view gets a 409 instead of overwriting. Undo replacement removes only that one relation, and it refuses when a newer version sits above it.

A body inside a chain is confirmed history: automatic extraction, merging, editing the text, deleting or merging the node are all refused (REVISION_PROTECTED / REVISION_LINKED). Name, aliases, deadline and source notes stay editable. New text becomes a new decision that then supersedes the old one.

Automatic recall still only speaks about the current version: a hit on an old body is mapped forward, de-duplicated, and carries one short matched_history pointer. A pin you set on the old version is never rewritten — it is marked historical with an offer to pin the current version. If the current version is archived or expired, the chain is simply not injected; the old version is not revived.

Agent tools

ToolWhat it does
ctx_findText / optional vector / graph search; L0 summaries and paths. Expired history is labeled stale and ranked lower; include_stale: false excludes it
ctx_readFull text and incoming edges by id
ctx_rememberManual write; optional explicit until field for real expiry, never inferred from dates in prose
ctx_linkDirected edge between two nodes

The kernel is still these four. Chips / session layer do not add a fifth tool.


Screenshots

The settings screenshots were captured on 2026-11-03 inside DSH Web with dsh-trivium@0.8.4 (Chinese host UI); the conversation, trajectory and chips shots are older (0.7.1) and still show the same surfaces. They are a UI tour, not acceptance evidence — versioned proof and current limits stay in the documentation index. The plugin follows the host language unless you pick Chinese / English under Settings → Trivium memory → Settings → Display.

Conversation — ctx_find("鉴权")

ctx_find auth

Session-start injects the short map; the model calls ctx_find and hits “auth in this repo goes in header X”.

Trajectory — injection is visible

Trajectory

Settings — memory (default page)

Memory page

Worktree picker, type filter, search, and the two independent switches show expired / show replaced above the list. Each entry expands in place: name, body, aliases, deadline, business neighbours, and its own archive / delete actions. Replaced versions stay hidden until you ask for them.

Settings — context

Context page

The Context page separates "what was actually delivered last turn" from "what would be sent for this question". The upper card is the real ledger (estimated tokens, process-local, cleared on restart); the lower card is a read-only probe that never calls the model and never requests an embedding.

Settings — activity

Activity page

The Activity page opens with four diagnostic rows — last extraction, stuck, recovered, last map injection — and then the revision-chain check, pending corrections, recovery state, change log and recall traces. A row with no observation reads no record instead of 0.

Settings — settings

Settings page

Grouped as memory behaviour → display → data → vector → about: injection strategy and the advanced Configuration fold first, then plugin language, exports and imports, embedding, and the update check last.

Command palette — Ctrl/Cmd+K

Command palette

Type a word you know — 恢复, 导入, 芯片 — and the palette lists matching pages and sections; ↑↓ selects, Enter jumps, Esc closes. It only navigates: no setting is written and no destructive action runs from here.

Chips — optional, next to Conversation / Trajectory

Chips tab

Off by default. After you turn Chips (memory whitelist) on in Settings, the title bar shows Chips immediately. With Session layer also on, a never-compacted session has one “Next” box; chips sit on top (unchecked by default). Create checkpoint folds “Next” into a left box. After compaction or /compact, historical boxes appear on the left; forks leave a box toward a child session.


Limitations

  • If the model never calls ctx_find and no chips are checked, the window is mostly the opening short map.
  • Extraction misses things; dirty data can be archived / deleted on the chip strip or edited / merged in Settings.
  • Do not open the same .tdb from two Node processes at once (one dsh web is enough). The panel now says so instead of showing the raw TDB error.
  • Supported window width: 900 px and up. At 390 px the host keeps a fixed 188 px settings sidebar, leaving ~154 px for the plugin column (~106 px cards); the layout collapses but is not readable. Phone-width support is intentionally not claimed.
  • Markdown export is for humans; it cannot be parsed back. Git-friendly write-back is trivium.jsonl, not Markdown. External import (WorkBuddy / Claude Code / Codex) is one-shot, not two-way sync, and does not ingest session jsonl dumps.
  • Do not merge .tdb in git (binary). Track trivium.jsonl; ignore .tdb. jsonl merge conflicts are ordinary text — resolve, then reopen the workspace.
  • The session layer (when on) projects compaction and fork; it does not split boxes by message count. If the window has not reached DSH’s compact line, Update checkpoints will not invent history boxes — use Create checkpoint.
  • Plugin setting toggles (chips / session layer / git sidecar / recall / extract) save immediately. Embedding fields use Save; if a saved change does not take effect, restart dsh web.
  • 0.5.0 writes JSONL v: 2 and graph JSON version: 2. Both are additive and a v1 file still reads, but downgrading is not supported in place: an older build ignores the revision relations and will drop them on its next write. To go back, restore the pre-upgrade file group (.dsh/trivium.tdb plus .dsh/trivium.jsonl) rather than letting the old build rewrite it.
  • A decision chain is linear in this release: one predecessor, one successor. Splitting one version into several, or a fan-in, is refused instead of half-applied.
  • Deleting a replacement relation from the JSONL file is reported as a conflict, not applied. Revoke it in the panel.
  • After the host moved to rc.8, DSH’s own older session store may not open (official SQLite format change). The workspace .tdb graph is still there; leftover boxes on unmatched old sessions are plot residue and do not affect ctx_find.

Test data and measurements

These results describe distinct test layers; they are not one overall accuracy score:

EvidenceResult and boundary
Current source offline regression63/63 script groups passed on 2026-10-30; see the F-W04 / F-W05 results. These tests include post-0.8.2 source changes and are not fresh acceptance of the published npm package.
Published 0.8.2 regression50/50 script groups reported in the release record; separate from the current-source run.
Extraction baseline, one real modelFive synthetic scenarios × five repetitions: 25/25 facts matched and entered the store; 21/25 subsequent-session answers passed in that earlier baseline. See A5.
Correction and negation, one real modelTwo fixed synthetic scenarios each produced 10/10 correct new-session answers after fixes. Three negation setup runs hit a request cap, and some runs used agent-initiated writes; these are not a general automatic-extraction success rate. See A10.
Change record and recovery, current sourceLoopback HTTP, real subprocess contention and browser component fixtures were tested; full visual and keyboard acceptance in the DSH host remains open. See results and limits.

The historical evidence ledger contains other datasets; A-series evidence has separate directories. Its manifest verifies file hashes, not the validity of an experiment. Some older comparisons reused data between arms or omitted host history; see the independent review. These results do not establish a general cost saving, comparative ranking or long-session accuracy.

Changelog

  • 0.8.4: settings card rebuilt as four pages (memory / context / activity / settings), Ctrl/Cmd+K palette, split detail at wide widths, prototype visual language, grouped settings. No server behaviour change.
  • 0.8.3: supersede rewrites as a new decision plus a revision edge; long-body tails, date guard and compaction recall fixes.
  • 0.8.2: extraction and decision-correction fixes; optional approved-preference export and consumer verification.
  • 0.8.1: long-fact injection and candidate-budget fixes.
  • 0.8.0: workspace switching, import preview and delivery diagnostics.
  • Earlier records: 0.7.1, 0.7.0, 0.6.0, 0.5.1, 0.5.0, 0.4.22. The full 0.4.0–0.4.21 changelog remains in the historical README.

Troubleshooting

SymptomWhat to do
Settings has no Trivium memoryConfirm the web profile, then restart dsh web and open a workspace. Reloading the browser is not enough.
Settings card / Chips tab shows Chinese on an English hostFixed in 0.4.19 (issue #2). On an older build pick Settings → Trivium memory → Settings → Plugin language → English; that is stored in ~/.dsh/trivium.json and a page reload is enough (no host restart).
Title bar has no ChipsTurn on Chips (memory whitelist) in Settings (it saves as soon as you toggle). Switch back to the conversation; the tab should appear without restarting.
Injection / extract / embedding / chip tab changes have no effectChip / extract / recall toggles save immediately. Embedding fields use Save; restart dsh web if a saved change does not take effect or the settings page is missing.
Session layer shows only a Next boxExpected when the nested session layer is on. Boxes follow DSH compaction; a long session is not the same as already compacted (auto-compact is around 80% of the window). To split: /compact in the conversation, or Create checkpoint (plot only, does not compact the window). Older sessions can use Update checkpoints to backfill past compaction / forks.
ctx_find returns nothingA new session injects the short map only; the model must call the tool. You can also Add on the chip strip or tell the model “remember: …”. Chitchat and one-off file edits are not auto-written.
.tdb is locked / will not openRun one dsh web. Do not run two Node processes that both linked this plugin.
Embedding is filled but search is no more accurateFailures fall back to keyword + graph. Check that ~/.dsh/trivium.json has an OpenAI-compatible URL (the /v1 kind). Restart after changing it.
Memory still there after uninstallStop dsh web before dsh plugin remove. Leftover .tdb is a workspace never opened on 0.4.10+; delete in that folder. Committed comes back with . Disable-in-place does not wipe.

Maintenance commands (shipped with the package since 0.6.0):

  • npx dsh-trivium-check <workspace> — opens the graph read-only and reports supersedes self loops, cycles, forks, duplicate URIs, dangling endpoints and unresolvable chains. Exit code 0 clean, 2 issues, 1 cannot open.
  • npx dsh-trivium-clear-until <workspace> — dry run: lists stale decisions that still carry a deadline. --apply clears only deadlines whose text also appears in the body (the shape 0.4.21 produced from prose dates); --apply --all clears every stale deadline, including explicit ones. Close the host first — the kernel is single-writer.

Local source checkout: npm install, then node scripts/link-dsh.mjs, then restart dsh web. triviumdb is a native module; if it will not install, check Node against package.json engines (^22.19.0 || >=24).


Release info

  • GitHub: https://github.com/QWQcool/dsh-trivium
  • Published package: 0.8.4 · npm
  • Tested host: @deepseek-ai/dsh@0.2.1-rc.4 (the peer range also admits the 0.1.x lines)
  • License: MIT (depends on TriviumDB, Apache-2.0)

Acknowledgements

Parts of the write hygiene gate, npm update check, host-locale UI switching, and Claude Code / Codex file discovery were adapted from dsh-auto-memory (Aik358). The product stays a graph kernel (nodes, edges, four tools, quiet default) rather than a journal / calendar companion.

.dsh/trivium.tdb
trivium.jsonl
git checkout
Check for updates failsThat request only hits the npm registry for the latest version. Memory is unaffected; try again later.
Old conversations will not open after rc.8That is DSH’s own session-store format change, not a broken .tdb. Graph memory still works via ctx_find; leftover boxes on unmatched old sessions are plot residue.
Desktop shows “A JavaScript error occurred in the main process” with EPIPE: broken pipe, writeHost-side, not the plugin: electron-updater writes a log line to a console pipe whose parent process has exited (typical when the app was started by a test launcher with --inspect). No dsh-trivium frame is in that stack. Click OK and start the app from the Start menu; avoid launching it from a terminal or harness that closes.