dsh-session-recall 0.7.0 → 0.7.2
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 +28 -2
- package/README.zh.md +27 -2
- package/package.json +9 -1
package/README.md
CHANGED
|
@@ -2,10 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
English | [中文](https://github.com/kittimzhe/dsh-session-recall/blob/main/README.zh.md)
|
|
4
4
|
|
|
5
|
-
[](https://www.npmjs.com/package/dsh-session-recall) [](https://github.com/kittimzhe/dsh-session-recall/blob/main/LICENSE)
|
|
5
|
+
[](https://github.com/kittimzhe/dsh-session-recall/actions/workflows/test.yml) [](https://www.npmjs.com/package/dsh-session-recall) [](https://www.npmjs.com/package/dsh-session-recall) [](https://github.com/kittimzhe/dsh-session-recall/blob/main/LICENSE)
|
|
6
6
|
|
|
7
7
|
Deterministic cross-session full-text retrieval for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness): the model-facing `recall` tool lets the agent **search its own past session transcripts** — "that bug we fixed last week", "the font we chose for my resume" — through the trusted `ctx.sessionQuery` seam.
|
|
8
8
|
|
|
9
|
+
## Quick Start
|
|
10
|
+
|
|
11
|
+
**Requirements**: Node.js 20 or 22 · a DeepSeek Harness profile that mounts the `commands` and `sessionQuery` services (the shipped `web` / `agent` profiles qualify).
|
|
12
|
+
|
|
13
|
+
```sh
|
|
14
|
+
dsh plugin --profile web add dsh-session-recall
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
The first search builds a persistent FTS5 index automatically — no extra setup. In a session, just ask naturally:
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
recall: which font did we pick for the resume last week?
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Full details — GitHub install route, `cordis.patch.yml` snippet, configuration — in [Install](#install-out-of-tree-plugin) below.
|
|
24
|
+
|
|
9
25
|
## Positioning
|
|
10
26
|
|
|
11
27
|
`dsh-session-recall` is a **transcript retrieval layer** focused on correctness and control.
|
|
@@ -25,6 +41,12 @@ If you need agent memory orchestration, use a memory framework; if you need boun
|
|
|
25
41
|
| CJK behavior | Framework-specific | Often tokenizer-limited | **FTS + CJK zero-hit substring fallback** |
|
|
26
42
|
| Output contract | Usually framework-native | Varies | **Typed `recall` result with stable fields/hints** |
|
|
27
43
|
|
|
44
|
+
Name & scope notes (2026-09):
|
|
45
|
+
|
|
46
|
+
- This plugin is **unrelated to `dsh-recall-plugin`** — that plugin is message undo/rewind (restoring workspace and conversation to before a message was sent).
|
|
47
|
+
- It **succeeds `dsh-recall`** — an earlier transcript-search plugin (last release 2026-08-21) with a similar goal; this plugin continues the line with persistent FTS5 indexing, CJK fallback, approval gates, and lineage-scoped authorization.
|
|
48
|
+
- It **complements memory frameworks** such as `dsh-mnemon` (write-side memory orchestration): this plugin stays a read-only retrieval layer over original session logs and makes no writes to any memory store.
|
|
49
|
+
|
|
28
50
|
## Roadmap
|
|
29
51
|
|
|
30
52
|
- **P2: evidence handoff** — one-click bridge to session export for matched sessions.
|
|
@@ -131,7 +153,7 @@ Every result also carries a `diagnostics` object (v0.5): which engine produced t
|
|
|
131
153
|
- First search after startup walks the durable logs to build the index (the tool description warns the model); subsequent searches are incremental.
|
|
132
154
|
- `unicode61` matches whole tokens/phrases, not substrings — `AI` does not match `BRAID`. CJK queries that get zero full-text hits fall back to a substring scan (`filterEvents`) whose whitespace-separated terms are ANDed, so `简历 模板` also recovers `简历模板`; the hint reports when that path matched.
|
|
133
155
|
- One process must own the index file (single-writer SQLite, per the official backend).
|
|
134
|
-
-
|
|
156
|
+
- By default matches return transcript text verbatim — redaction is opt-in since v0.4 (`redactionMode: 'mask' | 'hash'`; see "Scope policy & redaction"). With `redactionMode: 'off'` (the default), a token or sensitive path pasted into an earlier session can still be surfaced by a matching search; default cwd scoping and `allowAllProjects: false` remain the containment baseline.
|
|
135
157
|
|
|
136
158
|
## Benchmark
|
|
137
159
|
|
|
@@ -165,3 +187,7 @@ npm run bundle # tsdown → lib/
|
|
|
165
187
|
## License
|
|
166
188
|
|
|
167
189
|
[MIT](https://github.com/kittimzhe/dsh-session-recall/blob/main/LICENSE)
|
|
190
|
+
|
|
191
|
+
## Community
|
|
192
|
+
|
|
193
|
+
- [Contributing](CONTRIBUTING.md) · [Security policy](SECURITY.md) · [Code of Conduct](CODE_OF_CONDUCT.md)
|
package/README.zh.md
CHANGED
|
@@ -2,10 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
[English](https://github.com/kittimzhe/dsh-session-recall/blob/main/README.md) | 中文
|
|
4
4
|
|
|
5
|
-
[](https://www.npmjs.com/package/dsh-session-recall) [](https://github.com/kittimzhe/dsh-session-recall/blob/main/LICENSE)
|
|
5
|
+
[](https://github.com/kittimzhe/dsh-session-recall/actions/workflows/test.yml) [](https://www.npmjs.com/package/dsh-session-recall) [](https://www.npmjs.com/package/dsh-session-recall) [](https://github.com/kittimzhe/dsh-session-recall/blob/main/LICENSE)
|
|
6
6
|
|
|
7
7
|
DeepSeek Harness 的**确定性跨会话全文检索**插件:注册模型可调用的 `recall` 工具,让 agent 能**检索自己过往的会话原文**——"上周修的那个 bug"、"简历选的什么字体"——全部通过可信的 `ctx.sessionQuery` 缝完成。
|
|
8
8
|
|
|
9
|
+
## 快速开始
|
|
10
|
+
|
|
11
|
+
**环境要求**:Node.js 20 或 22 · 挂载了 `commands` 与 `sessionQuery` 服务的 DeepSeek Harness profile(官方 `web` / `agent` profile 均满足)。
|
|
12
|
+
|
|
13
|
+
```sh
|
|
14
|
+
dsh plugin --profile web add dsh-session-recall
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
首次搜索会自动构建持久化 FTS5 索引——无需额外步骤。会话里直接问:
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
recall:上周给简历选的什么字体来着?
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
完整细节(GitHub 安装方式、`cordis.patch.yml` 片段、配置项)见下文「安装」一节。
|
|
24
|
+
|
|
9
25
|
## 项目定位
|
|
10
26
|
|
|
11
27
|
`dsh-session-recall` 是一个强调正确性与边界控制的**会话检索层**。
|
|
@@ -25,6 +41,11 @@ DeepSeek Harness 的**确定性跨会话全文检索**插件:注册模型可
|
|
|
25
41
|
| CJK 体验 | 视实现而定 | 常受分词限制 | **FTS + CJK 零命中子串回退** |
|
|
26
42
|
| 输出契约 | 框架内部格式 | 不统一 | **类型化 `recall` 结果 + 稳定 hint** |
|
|
27
43
|
|
|
44
|
+
命名与边界说明(2026-09):
|
|
45
|
+
|
|
46
|
+
- 本插件与 **`dsh-recall-plugin` 无关**——那是"撤回消息"插件(把工作区与对话回退到某条消息发出之前)。
|
|
47
|
+
- 本插件是 **`dsh-recall` 的后继者**——后者是更早的会话检索插件(最后更新 2026-08-21);本插件在其方向上续写:持久 FTS5 索引、中文回退、审批闸门、谱系鉴权。
|
|
48
|
+
- 本插件与 **`dsh-mnemon` 等记忆框架互补**:它们做写入侧的记忆编排;本插件保持只读检索层,只读原始会话日志,不写任何记忆存储。
|
|
28
49
|
## 路线图
|
|
29
50
|
|
|
30
51
|
- **P2:证据联动导出** —— 命中后可一键触发对应会话导出。
|
|
@@ -131,7 +152,7 @@ dsh plugin --profile web add github:kittimzhe/dsh-session-recall
|
|
|
131
152
|
- 启动后第一次搜索会扫全量日志建索引(工具描述里已警告模型);之后增量更新。
|
|
132
153
|
- `unicode61` 按完整 token/短语匹配,不支持子串——`AI` 匹配不到 `BRAID`。CJK 查询零命中时会回退到子串扫描(`filterEvents`),空格分隔的各词按 AND 语义都必须命中,因此 `简历 模板` 也能找回 `简历模板`;hint 会说明是否命中。
|
|
133
154
|
- 索引文件单进程独占(官方后端的单写者 SQLite 约束)。
|
|
134
|
-
-
|
|
155
|
+
- 默认情况下命中结果按原文照摘——脱敏自 v0.4 起为**可选项**(`redactionMode: 'mask' | 'hash'`,见「范围策略与脱敏」一节)。`redactionMode: 'off'`(默认)时,更早会话里粘贴过的 token 或敏感路径仍可能被检索出来;默认 cwd 收窄与 `allowAllProjects: false` 仍是基础防线。
|
|
135
156
|
|
|
136
157
|
## 基准
|
|
137
158
|
|
|
@@ -165,3 +186,7 @@ npm run bundle # tsdown → lib/
|
|
|
165
186
|
## 许可
|
|
166
187
|
|
|
167
188
|
[MIT](https://github.com/kittimzhe/dsh-session-recall/blob/main/LICENSE)
|
|
189
|
+
|
|
190
|
+
## 社区
|
|
191
|
+
|
|
192
|
+
- [贡献指南](CONTRIBUTING.md) · [安全策略](SECURITY.md) · [行为准则](CODE_OF_CONDUCT.md)
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-session-recall",
|
|
3
3
|
"description": "Deterministic cross-session transcript retrieval for DeepSeek Harness: the model-facing `recall` tool searches past session logs with explicit scope control",
|
|
4
|
-
"version": "0.7.
|
|
4
|
+
"version": "0.7.2",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -65,5 +65,13 @@
|
|
|
65
65
|
"watch": "tsdown --watch",
|
|
66
66
|
"typecheck": "tsc --noEmit",
|
|
67
67
|
"test": "vitest run"
|
|
68
|
+
},
|
|
69
|
+
"repository": {
|
|
70
|
+
"type": "git",
|
|
71
|
+
"url": "git+https://github.com/kittimzhe/dsh-session-recall.git"
|
|
72
|
+
},
|
|
73
|
+
"homepage": "https://github.com/kittimzhe/dsh-session-recall#readme",
|
|
74
|
+
"bugs": {
|
|
75
|
+
"url": "https://github.com/kittimzhe/dsh-session-recall/issues"
|
|
68
76
|
}
|
|
69
77
|
}
|