dsh-trivium 0.4.7 → 0.4.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +180 -89
- package/README.zh-CN.md +269 -0
- package/lib/client.js +624 -209
- package/lib/extract.js +5 -4
- package/lib/hygiene.js +130 -0
- package/lib/index.js +77 -37
- package/lib/markdown.js +56 -13
- package/lib/pins.js +12 -2
- package/lib/server.js +50 -4
- package/lib/settings.js +12 -0
- package/lib/store.js +11 -1
- package/lib/tools.js +4 -2
- package/lib/update.js +72 -0
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -1,180 +1,271 @@
|
|
|
1
|
-
# dsh-trivium —
|
|
1
|
+
# dsh-trivium — In-process graph memory for DeepSeek Harness
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img width="820" alt="dsh-trivium cover" src="docs/cover.png">
|
|
5
|
+
</p>
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
In-process graph memory for DeepSeek Harness. One `.tdb` per workspace. No extra server.
|
|
8
|
+
|
|
9
|
+
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.
|
|
10
|
+
|
|
11
|
+
> **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](#installation).
|
|
12
|
+
|
|
13
|
+
[**English**](README.md) | [中文版](README.zh-CN.md)
|
|
6
14
|
|
|
7
15
|
---
|
|
8
16
|
|
|
9
|
-
##
|
|
17
|
+
## Installation
|
|
10
18
|
|
|
11
|
-
>
|
|
19
|
+
> Prerequisite: install [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) and start `dsh web` at least once. Tested host: `@deepseek-ai/dsh@0.1.1-rc.2` (`dsh-llm` / `dsh-tools` peers also accept `0.1.0-rc.8`).
|
|
12
20
|
|
|
13
21
|
```sh
|
|
14
22
|
dsh plugin --profile web add dsh-trivium
|
|
15
23
|
```
|
|
16
24
|
|
|
17
|
-
|
|
25
|
+
Restart **dsh web**. Memory lives in the current workspace:
|
|
18
26
|
|
|
19
27
|
```
|
|
20
28
|
<workspace>/.dsh/trivium.tdb
|
|
21
29
|
```
|
|
22
30
|
|
|
23
|
-
|
|
31
|
+
If you launch DSH with [Dsh_BatStart](https://github.com/QWQcool/Dsh_BatStart), the plugin is installed for you — skip the command above.
|
|
24
32
|
|
|
25
|
-
|
|
33
|
+
Local source checkout:
|
|
26
34
|
|
|
27
35
|
```sh
|
|
28
36
|
npm install
|
|
29
37
|
node scripts/link-dsh.mjs
|
|
30
38
|
```
|
|
31
39
|
|
|
32
|
-
|
|
40
|
+
Then restart `dsh web`.
|
|
33
41
|
|
|
34
|
-
##
|
|
42
|
+
## Updating
|
|
35
43
|
|
|
36
44
|
```sh
|
|
37
45
|
dsh plugin --profile web add dsh-trivium
|
|
38
46
|
```
|
|
39
47
|
|
|
40
|
-
|
|
48
|
+
Restart **dsh web**. For a source checkout, `git pull` then run `node scripts/link-dsh.mjs` again.
|
|
49
|
+
|
|
50
|
+
## Uninstall
|
|
51
|
+
|
|
52
|
+
```sh
|
|
53
|
+
dsh plugin --profile web remove dsh-trivium
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
After restarting **dsh web**, Settings no longer shows **Trivium memory**, and the title bar no longer shows **Chips**. The four tools are unregistered.
|
|
57
|
+
|
|
58
|
+
Uninstall does **not** delete memory files. To wipe them, delete:
|
|
59
|
+
|
|
60
|
+
| Path | Contents |
|
|
61
|
+
|---|---|
|
|
62
|
+
| `<workspace>/.dsh/trivium.tdb` | Graph memory for that workspace (nodes, edges, session-graph boxes) |
|
|
63
|
+
| `<workspace>/.dsh/trivium-pending.json` | Failed-extract replay queue; skip if missing |
|
|
64
|
+
| `~/.dsh/trivium.json` | Injection policy, extract switch, embedding, per-session chip pins |
|
|
65
|
+
|
|
66
|
+
Keep `.tdb` after uninstall: reinstall later and that workspace’s memory is still there. Each workspace has its own `.tdb`; deleting one does not affect others.
|
|
67
|
+
|
|
68
|
+
Disable without uninstall: in that profile’s `cordis.patch.yml` add:
|
|
69
|
+
|
|
70
|
+
```yaml
|
|
71
|
+
- id: dsh-trivium
|
|
72
|
+
disabled: true
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Then restart `dsh web`.
|
|
76
|
+
|
|
77
|
+
## Permissions and data
|
|
78
|
+
|
|
79
|
+
The plugin loads inside the `dsh web` process. It does not open its own port or extra service.
|
|
41
80
|
|
|
42
|
-
|
|
81
|
+
| Access | Default | Notes |
|
|
82
|
+
|---|---|---|
|
|
83
|
+
| Workspace `.dsh/trivium.tdb` | read/write | Memory store. Do not open the same file from two Node processes at once |
|
|
84
|
+
| `~/.dsh/trivium.json` | read/write | Settings and chip pins; may contain an embedding API key you typed |
|
|
85
|
+
| `.dsh/trivium-pending.json` | read/write | Local queue when extract fails |
|
|
86
|
+
| Network | off | Chat text is not sent out. Embedding outbound happens only if you turn it on and fill a URL. Settings **Check for updates** fetches the npm registry (version only, no transcript) |
|
|
87
|
+
| Transcript | stays local | Extract and search run on this machine; with embedding on, retrieved text is sent to the URL you filled |
|
|
43
88
|
|
|
44
|
-
|
|
89
|
+
The official DeepSeek chat API has no embeddings endpoint. Keyword + graph walk still work without it. Restart `dsh web` after changing settings or embedding.
|
|
90
|
+
|
|
91
|
+
## AI-era installation
|
|
92
|
+
|
|
93
|
+
Copy this to your assistant:
|
|
45
94
|
|
|
46
95
|
```text
|
|
47
|
-
|
|
48
|
-
|
|
96
|
+
On DeepSeek Harness, run: dsh plugin --profile web add dsh-trivium
|
|
97
|
+
Then restart dsh web. Settings will show "Trivium memory". The Chips tab is off by default; turn it on under Settings → Trivium memory if you want to pin fragments into the next turn.
|
|
49
98
|
```
|
|
50
99
|
|
|
51
100
|
---
|
|
52
101
|
|
|
53
|
-
##
|
|
102
|
+
## Graph memory that stays quiet
|
|
54
103
|
|
|
55
|
-
|
|
56
|
-
- **默认安静** — 新会话只注入一张短地图(≤400 token)。模型要用再调工具,不会每一步灌满。
|
|
57
|
-
- **会话图** — compaction 切一段就收成一个方框;旧会话可点「更新检查点」补上已经发生过的压缩 / 分叉;勾选的记忆芯片从当前这段的下一轮注入。
|
|
58
|
-
- **人能改错** — 会话图芯片条可新增、归档、删除;设置页管搜、改名 / 正文、合并、全局开关。
|
|
59
|
-
- **抽取偏严** — 闲聊、一次性改文件、密钥**不会从对话自动入库**。芯片「新增」按你写的存(点一次整段一条)。
|
|
60
|
-
- **可选 embedding** — 默认关。官方 DeepSeek 对话接口没有 embeddings;可填 OpenAI 兼容地址。
|
|
104
|
+
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.
|
|
61
105
|
|
|
62
|
-
|
|
106
|
+
- **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`).
|
|
107
|
+
- **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.
|
|
108
|
+
- **Chips (off by default)** — Settings → Trivium memory. When on, the title bar shows **Chips**; checked items pin into the next turn (L0, ≤300 tokens). Under it, **Session layer** (also off) draws compaction / forks as boxes.
|
|
109
|
+
- **Human-editable** — chips can add, archive, or delete; Settings search, rename, merge, import/export, and global switches.
|
|
110
|
+
- **Strict extraction** — chitchat, one-off file edits, and secrets are **not** auto-written from the transcript. Chip “Add” stores exactly what you typed (one paste = one node), still through the write hygiene gate.
|
|
111
|
+
- **Write hygiene** — `ctx_remember`, chip add, extract, and external import refuse mojibake, stutter loops, JSON envelopes, base64 residue, and secrets. Dirty nodes already in `.tdb` stay visible in Settings so you can archive them; they are hidden from find / short map / chips.
|
|
112
|
+
- **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.
|
|
63
113
|
|
|
64
|
-
|
|
65
|
-
|---|---|
|
|
66
|
-
| `ctx_find` | 检索,返回摘要和图路径 |
|
|
67
|
-
| `ctx_read` | 按 id 读全文和入边 |
|
|
68
|
-
| `ctx_remember` | 手动写入 |
|
|
69
|
-
| `ctx_link` | 两点之间建有向边 |
|
|
114
|
+
### Under the hood
|
|
70
115
|
|
|
71
|
-
|
|
116
|
+
- **In-process, one file** — TriviumDB (vectors + JSON payload + directed weighted graph) opens with the DSH process. No sidecar HTTP/Python service.
|
|
117
|
+
- **Four tools only** — `ctx_find` / `ctx_read` / `ctx_remember` / `ctx_link`. Chips / session layer do not add a fifth.
|
|
118
|
+
- **Injection via `agent.inject()`** — not the system prompt, so `persona.complete: true` cannot silently drop the map.
|
|
119
|
+
- **Recall carries paths** — every hit says which node it came from and along which edge.
|
|
120
|
+
- **Failures never block the agent** — store / embedding / extract errors are logged; the main loop continues.
|
|
121
|
+
- **UI follows the host language** — Settings and the Chips tab switch with DSH `locale/change` (`zh` / `en`).
|
|
122
|
+
- **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).
|
|
72
123
|
|
|
73
|
-
|
|
124
|
+
## Features
|
|
74
125
|
|
|
75
|
-
|
|
126
|
+
### Cross-session graph
|
|
76
127
|
|
|
77
|
-
|
|
128
|
+
Nodes are `entity` / `preference` / `decision` / `experience`. Business edges are `about`, `decided`, `broke`, `fixed`.
|
|
78
129
|
|
|
79
|
-
|
|
130
|
+
`ctx_find` returns L0 summaries plus edge paths (incoming as `<-label-id`). If the query names an existing entity, unexpired `about` / `decided` / `broke` / `fixed` neighbors come along even when the neighbor text does not contain the query. Decisions with `until` stay hidden after they expire, unless the query itself is asking about that deadline (e.g. “Friday”).
|
|
80
131
|
|
|
81
|
-
|
|
82
|
-
- 一次成功的 compaction 之后:左边历史检查点(摘要来自 DSH),右边仍是「后续」。
|
|
83
|
-
- 点「生成检查点」:把当前「后续」收成左边一格,右边继续当后续。只切情节图,**不**压缩模型窗口。同一轮次再点不会双写。
|
|
84
|
-
- 装插件之前已经压过 / 分过叉的旧会话:点「更新检查点」,从当前对话里的压缩标记和侧边栏分叉补方框(可重复点,不会双写)。没压过就仍只有「后续」——会话长、工具多不等于 DSH 已经压缩(默认约窗口 80% 才自动压)。要压上下文请在对话里输入 `/compact`。
|
|
85
|
-
- 方框自己不压缩。质量来自 DSH 已经做的摘要替换;fork 时不会再总结一遍。
|
|
86
|
-
- 「改名」只改方框标题,不动 DSH 摘要。点方框可跳回对话里对应的检查点,或打开轨迹。
|
|
132
|
+
### Chips (optional)
|
|
87
133
|
|
|
88
|
-
|
|
134
|
+
Off by default. Turn on **Chips tab** in Settings, then restart `dsh web`. The title bar shows **Conversation / Trajectory / Chips**. This is a pin strip, not the memory editor. Rename, merge, and global switches stay on the Settings page.
|
|
89
135
|
|
|
90
|
-
|
|
136
|
+
Lists unarchived preference / decision / entity (experience stays out). Check to pin into the next turn (L0, ≤300 tokens). Add / archive / delete on the strip.
|
|
91
137
|
|
|
92
|
-
|
|
138
|
+
| Action | When it takes effect |
|
|
139
|
+
|---|---|
|
|
140
|
+
| Check a chip | The **next** message you send in this segment carries it (L0, ≤300 tokens) |
|
|
141
|
+
| Uncheck | The turn after that no longer carries it |
|
|
142
|
+
| Add | One click writes one node; a whole paste is still one node |
|
|
143
|
+
| Select → Archive | Soft delete: gone from find / short map / chips; the node remains in `.tdb` |
|
|
144
|
+
| Select → Delete | Removed from `.tdb`, not recoverable |
|
|
145
|
+
| Turns already sent | Not rewritten |
|
|
93
146
|
|
|
94
|
-
|
|
147
|
+
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.
|
|
95
148
|
|
|
96
|
-
|
|
149
|
+
**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.
|
|
97
150
|
|
|
98
|
-
###
|
|
151
|
+
### Settings (Trivium memory)
|
|
99
152
|
|
|
100
|
-
|
|
153
|
+
Settings → **Trivium memory** manages the store and the two optional surfaces.
|
|
101
154
|
|
|
102
|
-
|
|
155
|
+
- **Chips tab (default off)** — title-bar **Chips** + pin inject. Restart `dsh web` after save.
|
|
156
|
+
- **Session layer (default off, under Chips)** — plot canvas. Requires the Chips tab.
|
|
157
|
+
- **Injection (pick one, default off)** — Off: short map at start only. autoRecall: at most 3 L0 hits when the step has user text. Entity-name middle path: 1-hop business neighbors only when the utterance names an existing entity. Checked chips share the budget and win first.
|
|
158
|
+
- **Extraction** — default after `compaction/end` and a short idle; failures go to pending and replay on the next session-start. Per batch: body ≤3000 chars, at most 24 items.
|
|
159
|
+
- **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.
|
|
160
|
+
- **Export / import** — JSON is a real round-trip. Markdown is a read-only projection (for people and git), not parseable back. One-shot strict import from WorkBuddy `MEMORY.md`, Claude Code `CLAUDE.md`, and Codex `AGENTS.md`. No watch, no session jsonl, no two-way sync.
|
|
161
|
+
- **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.
|
|
162
|
+
- **Embedding** — off by default. Turn on and fill an OpenAI-compatible URL; failures fall back to keyword + graph. Restart `dsh web` after changing settings.
|
|
163
|
+
|
|
164
|
+
### Agent tools
|
|
165
|
+
|
|
166
|
+
| Tool | What it does |
|
|
103
167
|
|---|---|
|
|
104
|
-
|
|
|
105
|
-
|
|
|
106
|
-
|
|
|
107
|
-
|
|
|
108
|
-
| 选择 → 删除 | 从 `.tdb` 去掉,不可恢复 |
|
|
109
|
-
| 已经发出去的轮次 | 不回写 |
|
|
168
|
+
| `ctx_find` | Search; L0 summaries and graph paths (incoming `<-label-id`). Entity-name queries also return unexpired about/decided/broke/fixed neighbors. Expired `until` decisions stay out unless the query asks about the deadline |
|
|
169
|
+
| `ctx_read` | Full text and incoming edges by id |
|
|
170
|
+
| `ctx_remember` | Manual write |
|
|
171
|
+
| `ctx_link` | Directed edge between two nodes |
|
|
110
172
|
|
|
111
|
-
|
|
173
|
+
The kernel is still these four. Chips / session layer do not add a fifth tool.
|
|
112
174
|
|
|
113
175
|
---
|
|
114
176
|
|
|
115
|
-
##
|
|
177
|
+
## Screenshots
|
|
116
178
|
|
|
117
|
-
|
|
179
|
+
Captured inside DSH Web (`0.1.1-rc.2`). Screenshots below are from the Chinese UI; the plugin follows the DSH host language (`zh` / `en`).
|
|
118
180
|
|
|
119
|
-
###
|
|
181
|
+
### Conversation — `ctx_find("鉴权")`
|
|
120
182
|
|
|
121
|
-
|
|
183
|
+
<img width="560" alt="ctx_find auth" src="docs/screenshots/02-ctx-find.png">
|
|
122
184
|
|
|
123
|
-
|
|
185
|
+
Session-start injects the short map; the model calls `ctx_find` and hits “auth in this repo goes in header X”.
|
|
124
186
|
|
|
125
|
-
###
|
|
187
|
+
### Trajectory — injection is visible
|
|
126
188
|
|
|
127
|
-
|
|
189
|
+
<img width="560" alt="Trajectory" src="docs/screenshots/03-trajectory.png">
|
|
128
190
|
|
|
129
|
-
###
|
|
191
|
+
### Settings — injection strategy
|
|
130
192
|
|
|
131
|
-
|
|
193
|
+
<img width="560" alt="Settings" src="docs/screenshots/04-settings.png">
|
|
132
194
|
|
|
133
|
-
###
|
|
195
|
+
### Settings — memory entries
|
|
134
196
|
|
|
135
|
-
|
|
197
|
+
<img width="560" alt="Entry list" src="docs/screenshots/05-settings-list.png">
|
|
136
198
|
|
|
137
|
-
###
|
|
199
|
+
### Chips tab — optional, next to Conversation / Trajectory
|
|
138
200
|
|
|
139
|
-
|
|
201
|
+
<img width="560" alt="Chips / session layer" src="docs/screenshots/06-session-map.png">
|
|
140
202
|
|
|
141
|
-
|
|
203
|
+
Off by default. After you turn **Chips** on in Settings and restart, the title bar shows **Chips**. 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.
|
|
142
204
|
|
|
143
205
|
---
|
|
144
206
|
|
|
145
|
-
##
|
|
207
|
+
## Limitations
|
|
146
208
|
|
|
147
|
-
-
|
|
148
|
-
-
|
|
149
|
-
-
|
|
150
|
-
- Markdown
|
|
151
|
-
-
|
|
152
|
-
-
|
|
153
|
-
-
|
|
209
|
+
- If the model never calls `ctx_find` and no chips are checked, the window is mostly the opening short map.
|
|
210
|
+
- Extraction misses things; dirty data can be archived / deleted on the chip strip or edited / merged in Settings.
|
|
211
|
+
- Do not open the same `.tdb` from two Node processes at once (one `dsh web` is enough).
|
|
212
|
+
- Markdown export is for humans; it cannot be parsed back. External import (WorkBuddy / Claude Code / Codex) is one-shot, not two-way sync, and does not ingest session jsonl dumps.
|
|
213
|
+
- 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**.
|
|
214
|
+
- Plugin setting changes need a `dsh web` restart.
|
|
215
|
+
- 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`.
|
|
154
216
|
|
|
155
217
|
---
|
|
156
218
|
|
|
157
|
-
##
|
|
219
|
+
## Changelog
|
|
220
|
+
|
|
221
|
+
**0.4.9** — Chips tab and session-layer canvas are both off by default. Title bar shows **Chips** only after the Settings switch; session boxes sit under that switch. Kernel (four tools, short map, in-process `.tdb`) unchanged.
|
|
222
|
+
|
|
223
|
+
**0.4.8** — Write + inject hygiene gate (secrets, mojibake, stutter, JSON envelopes, base64 residue). Settings / session graph follow DSH language. Settings can check npm for updates. One-shot strict import also discovers Claude Code `CLAUDE.md` and Codex `AGENTS.md`. First-turn short map is guaranteed if `session-start` races the first step.
|
|
158
224
|
|
|
159
|
-
**0.4.
|
|
225
|
+
**0.4.7** — Storage bump to `triviumdb@0.7.6` (`searchExact` / `searchBatch` on the engine). find / session graph behavior unchanged.
|
|
160
226
|
|
|
161
|
-
**0.4.
|
|
227
|
+
**0.4.6** — Session graph **Create checkpoint**: fold the current “Next” into a left box. Does not trigger DSH compaction.
|
|
162
228
|
|
|
163
|
-
**0.4.
|
|
229
|
+
**0.4.5** — Host peers widened to `0.1.0-rc.8` and `0.1.1-rc.2`; no nested old `dsh-llm` / `dsh-tools`.
|
|
164
230
|
|
|
165
|
-
**0.4.
|
|
231
|
+
**0.4.4** — `triviumdb@0.7.5`: incoming edges, expand-by-label, delete-by-label go through engine APIs instead of scanning all edges. find / session graph behavior unchanged.
|
|
166
232
|
|
|
167
|
-
**0.4.
|
|
233
|
+
**0.4.3** — Session graph **Update checkpoints**: backfill DSH compression markers and sidebar forks for sessions that existed before the plugin. Never-compacted sessions still have only “Next”.
|
|
168
234
|
|
|
169
|
-
**0.4.
|
|
235
|
+
**0.4.2** — Chip strip can add (one paste = one node) and batch archive / delete. Auto-extract stays strict; chip add writes what you typed.
|
|
170
236
|
|
|
171
|
-
**0.4.
|
|
237
|
+
**0.4.1** — Host pinned to `@deepseek-ai/dsh@0.1.0-rc.8`. Same features as 0.4.0. Confirmed on rc.8: Settings “Trivium memory”, new-session short map, cross-session `ctx_find`, session graph tab.
|
|
238
|
+
|
|
239
|
+
**0.4.0** — Session graph, memory chips, fork from a checkpoint.
|
|
240
|
+
|
|
241
|
+
## Troubleshooting
|
|
242
|
+
|
|
243
|
+
| Symptom | What to do |
|
|
244
|
+
|---|---|
|
|
245
|
+
| Settings has no **Trivium memory** | Confirm the **web** profile, then **restart** `dsh web` and open a workspace. Reloading the browser is not enough. |
|
|
246
|
+
| Title bar has no **Chips** | Expected. Turn on **Chips tab** in Settings, save, then restart `dsh web`. |
|
|
247
|
+
| Injection / extract / embedding / chip tab changes have no effect | Restart `dsh web` as well. |
|
|
248
|
+
| Session layer shows only a **Next** box | Expected 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. |
|
|
249
|
+
| `ctx_find` returns nothing | A 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. |
|
|
250
|
+
| `.tdb` is locked / will not open | Run one `dsh web`. Do not run two Node processes that both linked this plugin. |
|
|
251
|
+
| Embedding is filled but search is no more accurate | Failures fall back to keyword + graph. Check that `~/.dsh/trivium.json` has an OpenAI-compatible URL (the `/v1` kind). Restart after changing it. |
|
|
252
|
+
| Memory still there after uninstall / pins still there after reinstall | Memory is the workspace `.tdb`; pins are `~/.dsh/trivium.json`. Delete those files if you want a clean wipe (see Uninstall). |
|
|
253
|
+
| Check for updates fails | That request only hits the npm registry for the latest version. Memory is unaffected; try again later. |
|
|
254
|
+
| Old conversations will not open after rc.8 | That 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. |
|
|
255
|
+
|
|
256
|
+
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`).
|
|
172
257
|
|
|
173
258
|
---
|
|
174
259
|
|
|
175
|
-
##
|
|
260
|
+
## Release info
|
|
176
261
|
|
|
177
262
|
- GitHub: https://github.com/QWQcool/dsh-trivium
|
|
178
|
-
- npm: [`dsh-trivium@0.4.
|
|
179
|
-
-
|
|
180
|
-
- License: MIT
|
|
263
|
+
- npm: [`dsh-trivium@0.4.9`](https://www.npmjs.com/package/dsh-trivium)
|
|
264
|
+
- Tested host: `@deepseek-ai/dsh@0.1.1-rc.2` (also `0.1.0-rc.8`)
|
|
265
|
+
- License: MIT (depends on [TriviumDB](https://github.com/YoKONCy/TriviumDB), Apache-2.0)
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## Acknowledgements
|
|
270
|
+
|
|
271
|
+
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](https://github.com/Aik358/dsh-auto-memory) (Aik358). The product stays a graph kernel (nodes, edges, four tools, quiet default) rather than a journal / calendar companion.
|