@tznthou/ccrecall 0.7.2 → 0.8.1

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 CHANGED
@@ -37,15 +37,20 @@ ccRecall is the "memory" counterpart to [ccRewind](https://github.com/tznthou/cc
37
37
 
38
38
  ## Dogfood baseline
39
39
 
40
- Single-user daily-driver data, not a controlled study. Updated 2026-07-23.
40
+ Single-user daily-driver data, not a controlled study. Updated 2026-09-11.
41
41
 
42
42
  | Metric | Value |
43
43
  |--------|-------|
44
- | Running continuously | 97 days |
45
- | Sessions indexed | 2,298 across 46 projects |
46
- | Memories stored | 532 (93% keyed for dedup) |
47
- | Topics in knowledge map | 18,495 |
48
- | DB on disk | 50 MB |
44
+ | Running continuously | 147 days |
45
+ | Sessions indexed | 1,538 main sessions across 106 projects |
46
+ | Memories stored | 1,639 (98% keyed for dedup) |
47
+ | Topics in knowledge map | 35,887 |
48
+ | DB on disk | 102 MB |
49
+
50
+ Counted the way `/health` reports them: `mainSessionCount` excludes subagent
51
+ sessions, which are indexed separately (1,648 more). Earlier revisions of this
52
+ table did not say which count they used, so the session figure is not comparable
53
+ across versions.
49
54
 
50
55
  n = 1. These numbers show the system runs and accumulates data — not that every memory is useful. We don't yet have a good metric for "did this memory actually help the session." That's an [open problem](https://github.com/tznthou/ccRecall/issues/71).
51
56
 
@@ -64,6 +69,7 @@ What the numbers don't show: without ccRecall, every session starts cold — you
64
69
  | **Metacognition** | `knowledge_map` aggregates topic mentions from sessions + memories. Depth derived from mention count (shallow / medium / deep). Exposed via MCP `recall_context` |
65
70
  | **Forgetting curve** | Memories compress over time: raw → summary → one-liner → deleted. Confidence decays on unused memories. Background maintenance tick runs every 5 min |
66
71
  | **Cross-project memory** (v0.4.1) | Memories surface across projects via topic intersection — if two projects share a `knowledge_map` topic, high-confidence memories from one appear in the other's startup injection (max 3 rows, confidence ≥ 0.8 gate) |
72
+ | **Mid-conversation recall** | SessionStart fires once; the `UserPromptSubmit` hook is the second trigger point. Topics from the prompt drive an inverse-document-frequency ranked lookup, suppressed per session and capped at 8 memories. 300 ms timeout, fails silent |
67
73
  | **Watch mode** | chokidar-based JSONL watcher picks up new sessions within 2 s; periodic 10 min full-resync covers missed filesystem events |
68
74
  | **Rescue reindex** | `/session/end` and `/session/last` both retry a reindex on miss, and `/session/last` staleness-gates via `notBefore` — no fresh-session race between the hook, the wrapper, and the daemon |
69
75
  | **Auto-start (macOS)** | `ccmem install-daemon` registers a LaunchAgent so the service stays up across reboots |
@@ -85,11 +91,11 @@ flowchart TB
85
91
  Parser["Parser<br/>parse conversations"]
86
92
  Summarizer["Summarizer<br/>rule-based extraction"]
87
93
  DB[("SQLite + FTS5<br/>index & search")]
88
- API["HTTP API<br/>5 endpoints"]
94
+ API["HTTP API<br/>6 endpoints"]
89
95
  end
90
96
 
91
97
  subgraph Consumers["Consumers"]
92
- Hook["Claude Code Hooks<br/>SessionStart / SessionEnd"]
98
+ Hook["Claude Code Hooks<br/>SessionStart / UserPromptSubmit / SessionEnd"]
93
99
  Wrapper["Extraction wrapper<br/>post-session Haiku pass"]
94
100
  MCP["MCP Server<br/>recall_query / recall_save"]
95
101
  end
@@ -105,7 +111,7 @@ Arrows point in the direction of the call: hooks and the extraction wrapper talk
105
111
 
106
112
  ### Session lifecycle
107
113
 
108
- How the two timing-sensitive ends of a session actually flow:
114
+ How the three injection points and the two timing-sensitive ends actually flow:
109
115
 
110
116
  ```mermaid
111
117
  sequenceDiagram
@@ -119,11 +125,19 @@ sequenceDiagram
119
125
  Note over CC,R: Session start
120
126
  CC->>H: SessionStart
121
127
  H->>R: GET /memory/startup
122
- R-->>H: 3-tier memory pick (< 300 tokens)
128
+ R-->>H: 3-tier memory pick (< 400 tokens)
123
129
  H-->>CC: inject into context
124
130
  end
125
131
 
126
- Note over CC,R: During the session, the watcher<br/>reindexes JSONL writes (2 s debounce)
132
+ rect rgb(240, 240, 235)
133
+ Note over CC,R: Every prompt (L1)
134
+ CC->>H: UserPromptSubmit
135
+ H->>R: GET /memory/prompt (300 ms timeout)
136
+ R-->>H: topic-matched rows, deduped per session
137
+ H-->>CC: inject, or stay silent
138
+ end
139
+
140
+ Note over CC,R: Meanwhile the watcher<br/>reindexes JSONL writes (2 s debounce)
127
141
 
128
142
  rect rgb(255, 244, 235)
129
143
  Note over CC,X: Session end
@@ -149,7 +163,7 @@ The `notBefore` gate keeps a stale session from being extracted twice; the subag
149
163
  | FTS5 | Full-text search | Built into SQLite, trigram tokenizer with LIKE fallback for short CJK / mixed-script queries |
150
164
  | Native `http` | HTTP server | No Express — minimal surface, localhost only |
151
165
  | chokidar | Filesystem watcher | Cross-platform JSONL change detection with 2 s debounce + single-flight |
152
- | vitest | Testing | 542 tests across 34 files, integration-style |
166
+ | vitest | Testing | 651 tests across 40 files, integration-style |
153
167
  | `@modelcontextprotocol/sdk` | MCP server | stdio transport, shared SQLite via WAL |
154
168
 
155
169
  ---
@@ -191,7 +205,7 @@ curl "http://127.0.0.1:7749/memory/query?q=authentication&limit=5"
191
205
 
192
206
  ## API Endpoints
193
207
 
194
- Five endpoints, each with a live caller — v0.5.0 removed the other eight
208
+ Six endpoints, each with a live caller — v0.5.0 removed the other eight
195
209
  (`/journal/*`, `/memory/save`, `/memory/context`, `/metacognition/check`,
196
210
  `/session/checkpoint`, `/lint/warnings`); they now return 404.
197
211
 
@@ -200,6 +214,7 @@ Five endpoints, each with a live caller — v0.5.0 removed the other eight
200
214
  | `/health` | GET | Service health + DB stats + integrity check status | CLI, extraction wrapper |
201
215
  | `/memory/startup?project=...` | GET | SessionStart-tier retrieval: cold + recent-confidence + FTS fallback, token-budgeted | SessionStart hook |
202
216
  | `/memory/query?q=...&limit=...&project=...` | GET | FTS5 search across memories with optional project filter | SessionStart hook (keyword tier) |
217
+ | `/memory/prompt?project=...&q=...` | GET | Mid-conversation recall: topic lookup against the current prompt, per-session dedup and ceiling | UserPromptSubmit hook |
203
218
  | `/session/end` | POST | Confirm the just-ended session is indexed (rescue reindex on miss) | SessionEnd hook |
204
219
  | `/session/last?cwd=...` | GET | Most recent session metadata for a project path (staleness-gated via `notBefore`) | Extraction wrapper |
205
220
 
@@ -209,7 +224,7 @@ Five endpoints, each with a live caller — v0.5.0 removed the other eight
209
224
  |------|---------|
210
225
  | `recall_query` | User-scoped FTS5 keyword search across memories with project-aware ranking. Cross-project memories surface via topic intersection |
211
226
  | `recall_context` | Topic-clustered retrieval — normalizes keywords, groups memories by matched topic with depth signals, falls back to per-keyword FTS if no topic matches |
212
- | `recall_save` | Store a new memory with optional `key` slug for dedup (same key updates instead of duplicating). Auto-extracts topics for cross-project retrieval |
227
+ | `recall_save` | Store a new memory. An optional `key` slug dedups (same key updates instead of duplicating), and topics are auto-extracted for cross-project retrieval. Optional `origin` (`explicit` \| `agent-inferred`) says who is writing: an `agent-inferred` save is refused against an existing `explicit` memory, so extraction cannot overwrite what you wrote by hand. Optional `messageId` records which message the memory came from — checked against that session's real messages, and dropped rather than stored if it doesn't match |
213
228
 
214
229
  **Memory types** (for `recall_save`):
215
230
 
@@ -233,7 +248,7 @@ claude mcp add ccrecall --scope user -- /absolute/path/to/ccRecall/node_modules/
233
248
 
234
249
  A ready-to-copy example lives at [.mcp.json.example](.mcp.json.example).
235
250
 
236
- See [hooks/README.md](hooks/README.md) for SessionStart / SessionEnd hook installation.
251
+ See [hooks/README.md](hooks/README.md) for SessionStart / UserPromptSubmit / SessionEnd hook installation.
237
252
 
238
253
  ---
239
254
 
@@ -380,7 +395,7 @@ ccRecall/
380
395
  │ ├── tutorial.md # End-user walkthrough (install → MCP → usage)
381
396
  │ ├── architecture.md # Daemon design rationale (contributor-oriented)
382
397
  │ └── launchd.md # macOS LaunchAgent install/troubleshoot
383
- ├── tests/ # 542 tests across 34 files (parser, scanner,
398
+ ├── tests/ # 651 tests across 40 files (parser, scanner,
384
399
  │ │ # summarizer, database, indexer, e2e, MCP,
385
400
  │ │ # memories, hooks, watcher, CLI, migrations,
386
401
  │ │ # FTS5 CJK edge cases, integrity monitor, ...)
package/README_ZH.md CHANGED
@@ -37,15 +37,18 @@ ccRecall 是 [ccRewind](https://github.com/tznthou/ccRewind)(對話回放 GUI
37
37
 
38
38
  ## Dogfood 基準線
39
39
 
40
- 單人日用實測數據,不是對照實驗。更新於 2026-07-23。
40
+ 單人日用實測數據,不是對照實驗。更新於 2026-09-11。
41
41
 
42
42
  | 指標 | 數值 |
43
43
  |------|------|
44
- | 持續運行 | 97 天 |
45
- | 已索引 session | 2,298 筆,橫跨 46 個專案 |
46
- | 記憶總數 | 532 筆(93% 帶 key 去重) |
47
- | Knowledge map topics | 18,495 |
48
- | 磁碟佔用 | 50 MB |
44
+ | 持續運行 | 147 天 |
45
+ | 已索引 session | 1,538 筆主 session,橫跨 106 個專案 |
46
+ | 記憶總數 | 1,639 筆(98% 帶 key 去重) |
47
+ | Knowledge map topics | 35,887 |
48
+ | 磁碟佔用 | 102 MB |
49
+
50
+ 口徑同 `/health`:`mainSessionCount` 不含 subagent session,後者另外索引(再 1,648 筆)。
51
+ 本表先前的版本沒有標明用哪個口徑,所以 session 那列跨版本不可比較。
49
52
 
50
53
  n = 1。這些數字說明系統有在跑、有在累積資料——不代表每條記憶都有用。「這條記憶到底有沒有幫到 session」目前沒有好的量測方式,這是個[開放問題](https://github.com/tznthou/ccRecall/issues/71)。
51
54
 
@@ -64,6 +67,7 @@ n = 1。這些數字說明系統有在跑、有在累積資料——不代表每
64
67
  | **元認知** | `knowledge_map` 聚合 session + memory 的主題提及。由 mention count 衍生深度(shallow / medium / deep)。透過 MCP `recall_context` 暴露 |
65
68
  | **遺忘曲線** | 記憶隨時間壓縮:原始→摘要→一行結論→刪除。未使用的記憶信心衰減。背景維護 tick 每 5 分鐘跑一次 |
66
69
  | **跨專案記憶**(v0.4.1) | 記憶透過 topic intersection 跨專案浮出——若兩個專案的 `knowledge_map` 有共同 topic,高信心記憶會出現在另一個專案的 startup injection(最多 3 條,confidence ≥ 0.8 gate) |
70
+ | **對話中檢索** | SessionStart 只在開場觸發一次;`UserPromptSubmit` hook 是第二個觸發點。用 prompt 抽出的 topic 做 inverse-document-frequency 排序查詢,per-session 去重、單場上限 8 條。300ms timeout,失敗就安靜跳過 |
67
71
  | **Watch mode** | 基於 chokidar 的 JSONL watcher 在 2 秒內偵測新 session;每 10 分鐘 full-resync 補救 FS 事件漏接 |
68
72
  | **Rescue reindex** | `/session/end` 和 `/session/last` 都會在 miss 時重 index 再試一次,`/session/last` 另有 `notBefore` staleness gate——hook、wrapper、daemon 三方不會有 fresh-session race |
69
73
  | **macOS 自動啟動** | `ccmem install-daemon` 安裝 LaunchAgent,重開機自動復原服務 |
@@ -85,11 +89,11 @@ flowchart TB
85
89
  Parser["Parser<br/>解析對話"]
86
90
  Summarizer["Summarizer<br/>規則式萃取"]
87
91
  DB[("SQLite + FTS5<br/>索引與搜尋")]
88
- API["HTTP API<br/>5 個端點"]
92
+ API["HTTP API<br/>6 個端點"]
89
93
  end
90
94
 
91
95
  subgraph Consumers["使用端"]
92
- Hook["Claude Code Hooks<br/>SessionStart / SessionEnd"]
96
+ Hook["Claude Code Hooks<br/>SessionStart / UserPromptSubmit / SessionEnd"]
93
97
  Wrapper["Extraction wrapper<br/>session 結束後的 Haiku 抽取"]
94
98
  MCP["MCP Server<br/>recall_query / recall_save"]
95
99
  end
@@ -105,7 +109,7 @@ flowchart TB
105
109
 
106
110
  ### Session 生命週期
107
111
 
108
- 一個 session 頭尾兩端(都是跟時間賽跑的環節)實際怎麼跑:
112
+ 三個注入點、加上頭尾兩端(都是跟時間賽跑的環節)實際怎麼跑:
109
113
 
110
114
  ```mermaid
111
115
  sequenceDiagram
@@ -119,11 +123,19 @@ sequenceDiagram
119
123
  Note over CC,R: Session 開始
120
124
  CC->>H: SessionStart
121
125
  H->>R: GET /memory/startup
122
- R-->>H: 三層記憶挑選(< 300 tokens)
126
+ R-->>H: 三層記憶挑選(< 400 tokens)
123
127
  H-->>CC: 注入 context
124
128
  end
125
129
 
126
- Note over CC,R: Session 進行中,watcher 持續<br/>增量索引 JSONL(2 秒 debounce)
130
+ rect rgb(240, 240, 235)
131
+ Note over CC,R: 每一則 prompt(L1)
132
+ CC->>H: UserPromptSubmit
133
+ H->>R: GET /memory/prompt(300ms timeout)
134
+ R-->>H: topic 命中的記憶,per-session 去重
135
+ H-->>CC: 注入,或安靜不出聲
136
+ end
137
+
138
+ Note over CC,R: 同時 watcher 持續<br/>增量索引 JSONL(2 秒 debounce)
127
139
 
128
140
  rect rgb(255, 244, 235)
129
141
  Note over CC,X: Session 結束
@@ -149,7 +161,7 @@ sequenceDiagram
149
161
  | FTS5 | 全文搜尋 | SQLite 內建、trigram tokenizer,短 token / 中英混合查詢透過 LIKE fallback 補齊 |
150
162
  | 原生 `http` | HTTP 伺服器 | 不用 Express——最小表面積、僅 localhost |
151
163
  | chokidar | 檔案系統 watcher | 跨平台 JSONL 變動偵測,2 秒 debounce + single-flight |
152
- | vitest | 測試 | 542 個測試(34 檔案)、整合式風格 |
164
+ | vitest | 測試 | 651 個測試(40 檔案)、整合式風格 |
153
165
  | `@modelcontextprotocol/sdk` | MCP server | stdio transport,透過 WAL 共用 SQLite |
154
166
 
155
167
  ---
@@ -191,7 +203,7 @@ curl "http://127.0.0.1:7749/memory/query?q=authentication&limit=5"
191
203
 
192
204
  ## API 端點
193
205
 
194
- 五個端點,每個都有活的 caller——v0.5.0 移除了其餘八個
206
+ 六個端點,每個都有活的 caller——v0.5.0 移除了其餘八個
195
207
  (`/journal/*`、`/memory/save`、`/memory/context`、`/metacognition/check`、
196
208
  `/session/checkpoint`、`/lint/warnings`),現在一律回 404。
197
209
 
@@ -200,6 +212,7 @@ curl "http://127.0.0.1:7749/memory/query?q=authentication&limit=5"
200
212
  | `/health` | GET | 服務健康 + DB 統計 + integrity 檢查狀態 | CLI、extraction wrapper |
201
213
  | `/memory/startup?project=...` | GET | SessionStart 級檢索:cold + recent-confidence + FTS fallback,帶 token 預算 | SessionStart hook |
202
214
  | `/memory/query?q=...&limit=...&project=...` | GET | FTS5 跨記憶搜尋,可選 project 過濾 | SessionStart hook(keyword 層) |
215
+ | `/memory/prompt?project=...&q=...` | GET | 對話中檢索:用當前 prompt 的 topic 查詢,含 per-session 去重與上限 | UserPromptSubmit hook |
203
216
  | `/session/end` | POST | 確認剛結束的 session 已被索引(miss 時 rescue reindex) | SessionEnd hook |
204
217
  | `/session/last?cwd=...` | GET | 回傳專案路徑的最新 session metadata(`notBefore` staleness gate) | Extraction wrapper |
205
218
 
@@ -209,7 +222,7 @@ curl "http://127.0.0.1:7749/memory/query?q=authentication&limit=5"
209
222
  |------|------|
210
223
  | `recall_query` | 使用者範圍的 FTS5 關鍵字搜尋,帶 project-aware 排序。跨專案記憶透過 topic intersection 浮出 |
211
224
  | `recall_context` | 按 topic 分組的檢索——normalize keywords、依匹配 topic 分組 memories 並附 depth 訊號,無 topic 匹配時退回 per-keyword FTS |
212
- | `recall_save` | 儲存新記憶,支援選填 `key` slug 做 dedup(同 key 更新而非重複)。自動抽取 topics 供跨專案檢索 |
225
+ | `recall_save` | 儲存新記憶。選填 `key` slug 做 dedup(同 key 更新而非重複),並自動抽取 topics 供跨專案檢索。選填 `origin`(`explicit` \| `agent-inferred`)標記是誰在寫:`agent-inferred` 撞到既有的 `explicit` 記憶會被擋下,自動抽取蓋不掉你手寫的內容。選填 `messageId` 記下這筆記憶出自哪則訊息——會跟該 session 真正有的訊息核對,對不上就丟掉不存 |
213
226
 
214
227
  **Memory types**(用於 `recall_save`):
215
228
 
@@ -231,7 +244,7 @@ claude mcp add ccrecall --scope user -- /absolute/path/to/ccRecall/node_modules/
231
244
 
232
245
  可直接複製的範本:[.mcp.json.example](.mcp.json.example)。
233
246
 
234
- SessionStart / SessionEnd hook 安裝見 [hooks/README.md](hooks/README.md)。
247
+ SessionStart / UserPromptSubmit / SessionEnd hook 安裝見 [hooks/README.md](hooks/README.md)。
235
248
 
236
249
  ---
237
250
 
@@ -372,7 +385,7 @@ ccRecall/
372
385
  │ ├── tutorial_zh.md # 使用者教學(安裝 → MCP → 日常使用)
373
386
  │ ├── architecture_zh.md # Daemon 設計取捨(給 contributor 看)
374
387
  │ └── launchd.md # macOS LaunchAgent 安裝/troubleshoot
375
- ├── tests/ # 542 個測試橫跨 34 檔案(parser、scanner、
388
+ ├── tests/ # 651 個測試橫跨 40 檔案(parser、scanner、
376
389
  │ │ # summarizer、database、indexer、e2e、MCP、
377
390
  │ │ # memories、hooks、watcher、CLI、migrations、
378
391
  │ │ # FTS5 CJK edge cases、integrity monitor 等)
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/api/routes.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAQnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAwDxE;;;;;gCAKgC;AAChC,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAM5E;AAED,MAAM,WAAW,qBAAqB;IACpC;;mDAE+C;IAC/C,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC;;gFAE4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;6EAEyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;4EAEwE;IACxE,gBAAgB,CAAC,EAAE;QAAE,aAAa,IAAI,oBAAoB,GAAG,IAAI,CAAA;KAAE,CAAA;CACpE;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,QAAQ,EACZ,IAAI,GAAE,qBAA0B,IAI9B,KAAK,IAAI,CAAC,eAAe,EACzB,KAAK,IAAI,CAAC,cAAc,KACvB,OAAO,CAAC,IAAI,CAAC,CAoUjB"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/api/routes.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAWnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AA6DxE;;;;;gCAKgC;AAChC,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAM5E;AAED,MAAM,WAAW,qBAAqB;IACpC;;mDAE+C;IAC/C,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC;;gFAE4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;6EAEyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;4EAEwE;IACxE,gBAAgB,CAAC,EAAE;QAAE,aAAa,IAAI,oBAAoB,GAAG,IAAI,CAAA;KAAE,CAAA;CACpE;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,QAAQ,EACZ,IAAI,GAAE,qBAA0B,IAI9B,KAAK,IAAI,CAAC,eAAe,EACzB,KAAK,IAAI,CAAC,cAAc,KACvB,OAAO,CAAC,IAAI,CAAC,CA8UjB"}
@@ -2,7 +2,7 @@ import { URL } from 'node:url';
2
2
  import { sendJson, parseJsonBody } from './server.js';
3
3
  import { MemoryService } from '../core/memory-service.js';
4
4
  import { scrubErrorMessage } from '../core/log-safe.js';
5
- import { applyRowBudget, DEFAULT_MAX_TOKENS, DEFAULT_PER_ROW_CHAR_CAP } from '../core/token-budget.js';
5
+ import { applyRowBudget, DEFAULT_MAX_TOKENS, DEFAULT_PER_ROW_CHAR_CAP, startupLineCost, promptLineCost, STARTUP_CHROME_TOKENS, PROMPT_CHROME_TOKENS, } from '../core/token-budget.js';
6
6
  import { appendRecallTelemetry } from '../core/recall-telemetry.js';
7
7
  import { extractTopicsFromContent } from '../core/topic-extractor.js';
8
8
  import { resolveProjectId } from '../core/project-id.js';
@@ -11,11 +11,16 @@ const LOOPBACK_HOSTS = new Set(['127.0.0.1', '::1', 'localhost']);
11
11
  // bound a cost that additionalContext accumulation makes permanent
12
12
  // (anthropics/claude-code#40216) — unlike SessionStart, which pays its cost once.
13
13
  //
14
- // 120 tokens: SessionStart spends 300 for the session's whole opening context.
14
+ // 170 tokens: SessionStart spends 400 for the session's whole opening context.
15
15
  // A mid-conversation nudge answers one prompt, so it gets a fraction — enough
16
16
  // for two ~150-char excerpts plus their handles, and small enough that the
17
17
  // worst case below stays affordable.
18
- const PROMPT_RECALL_MAX_TOKENS = 120;
18
+ //
19
+ // Raised from 120 on 2026-09-11, when the budget started pricing the rendered
20
+ // line rather than the content alone. At 120 an honest count admitted one row
21
+ // where two used to appear; 170 restores the pair. It buys no extra content,
22
+ // it stops the previous number from being a fiction.
23
+ const PROMPT_RECALL_MAX_TOKENS = 170;
19
24
  // Two memories per prompt: enough for a primary match plus one near-miss,
20
25
  // while keeping a single injection small enough to skim.
21
26
  const PROMPT_RECALL_DEFAULT_LIMIT = 2;
@@ -281,7 +286,14 @@ export function createRequestHandler(db, opts = {}) {
281
286
  empty(false);
282
287
  return;
283
288
  }
284
- const budgeted = applyRowBudget(fresh, maxTokens, DEFAULT_PER_ROW_CHAR_CAP);
289
+ // minimumOneRow matters most here: a CJK memory costs one token per
290
+ // character, so at the 149-char cap a single one exceeded this budget and
291
+ // the caller received nothing — indistinguishable from "nothing relevant".
292
+ const budgeted = applyRowBudget(fresh, maxTokens, DEFAULT_PER_ROW_CHAR_CAP, {
293
+ costOf: promptLineCost,
294
+ reservedTokens: PROMPT_CHROME_TOKENS,
295
+ minimumOneRow: true,
296
+ });
285
297
  sendJson(res, 200, {
286
298
  memories: budgeted.emitted.map(m => ({
287
299
  id: m.id,
@@ -326,13 +338,16 @@ export function createRequestHandler(db, opts = {}) {
326
338
  const fallback = url.searchParams.get('q') ?? undefined;
327
339
  const sessionId = url.searchParams.get('sessionId') || null;
328
340
  const rows = db.getStartupMemories(project, limit, fallback);
329
- const budgeted = applyRowBudget(rows, maxTokens, DEFAULT_PER_ROW_CHAR_CAP);
341
+ const budgeted = applyRowBudget(rows, maxTokens, DEFAULT_PER_ROW_CHAR_CAP, {
342
+ costOf: startupLineCost,
343
+ reservedTokens: STARTUP_CHROME_TOKENS,
344
+ });
330
345
  memoryService.touch(budgeted.emitted.map(m => m.id), 'startup', sessionId);
331
- // `key` rides along unbudgeted, by design: applyRowBudget above prices only
332
- // `content`, so adding the handle cannot change which memories are selected
333
- // — that keeps #71's observation window (a memory_id distribution) clean.
334
- // The honest accounting (prefix chars are real tokens the 300 contract does
335
- // not count) is deferred until that window closes; see #77.
346
+ // The handle and confidence suffix used to ride along unbudgeted, deferred
347
+ // until #71's observation window closed. Measured 2026-09-11 against the
348
+ // real hook: contract 300, this endpoint claimed 225, the hook emitted 363.
349
+ // They are priced now, and DEFAULT_MAX_TOKENS was raised to keep the same
350
+ // five rows reaching the reader rather than shrinking the injection.
336
351
  const memories = budgeted.emitted.map(m => ({
337
352
  id: m.id,
338
353
  content: m.content,
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/api/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/api/routes.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,15 @@ import type { Project, SessionMeta, SearchOptions, SessionSearchPage, SessionFil
8
8
  * better-sqlite3 otherwise returns a lossy JS number for |v| > 2^53 and any
9
9
  * Map<bigint, …> reverse lookup silently misses (dedup would silently die). */
10
10
  export declare function hash64(s: string): bigint;
11
+ /** Q1 (2026-09-11): clean up a model-supplied message citation.
12
+ *
13
+ * The extraction transcript prints `--- human [<uuid>] ---`, and a model
14
+ * copying that value sometimes brings the brackets along. Stripping those is
15
+ * the whole of the normalisation. Anything cleverer — case folding, pulling a
16
+ * uuid-shaped substring out of a longer string — would hard-code an
17
+ * assumption about an id format Claude Code is free to change, and being
18
+ * wrong there costs a silently dropped citation rather than a visible error. */
19
+ export declare function normaliseMessageUuid(raw: string | null | undefined): string | null;
11
20
  /** 寫入 memories 時使用的參數型別 */
12
21
  export interface MemoryInput {
13
22
  sessionId: string | null;
@@ -22,7 +31,16 @@ export interface MemoryInput {
22
31
  /** v0.4.1: stable slug for key-based upsert dedup. When provided, a second
23
32
  * save with the same (project_id, key) updates instead of inserting. */
24
33
  key?: string | null;
34
+ /** v0.7.3: who wrote this. Defaults to 'explicit' — the fail-safe direction,
35
+ * because the guard in saveMemory refuses to let 'agent-inferred' overwrite
36
+ * 'explicit'. An extraction that forgets the parameter therefore over-protects
37
+ * its own row rather than destroying a hand-written one. */
38
+ origin?: MemoryOrigin;
25
39
  }
40
+ /** Who wrote a memory. Automatic extraction and hand-written saves share the
41
+ * same `recall_save` entry point, so this is stated by the caller rather than
42
+ * inferred from the request. */
43
+ export type MemoryOrigin = 'explicit' | 'agent-inferred';
26
44
  /** 寫入 messages 時使用的參數型別 */
27
45
  export interface MessageInput {
28
46
  type: string;
@@ -126,6 +144,21 @@ export declare class Database {
126
144
  * effective = confidence · exp(−ln 2 · age_days / half_life)
127
145
  * Requires exp(), ln(), and sqrt() user functions registered in the constructor. */
128
146
  private static readonly EFFECTIVE_CONFIDENCE;
147
+ /** Tier 0 relevance band: a memory is in-band when its share of topics that
148
+ * intersect the current project reaches this ratio. Deliberately a binary
149
+ * band and not a continuous score — a near-unique score per memory would
150
+ * make rotation fire only on exact ties, trading a confidence monopoly for
151
+ * a relevance monopoly. Public so tests assert against it instead of
152
+ * re-hardcoding the number. */
153
+ static readonly TIER0_RELEVANCE_RATIO = 0.5;
154
+ /** Rank floor under the ratio above: the top N by ratio are in-band even when
155
+ * none reach the threshold. Not a corner case — measured 2026-08-24, 63 of
156
+ * 80 projects hold fewer than N memories above the ratio, and in 52 of those
157
+ * the candidate pool is still larger than N, so the floor is what actually
158
+ * selects. Without it their relevance key is inert and ordering degrades to
159
+ * plain rotation. It also stops a project whose top bucket holds only two or
160
+ * three memories from letting those hold the slots forever. */
161
+ static readonly TIER0_RELEVANCE_MIN_POOL = 12;
129
162
  constructor(dbPath: string);
130
163
  close(): void;
131
164
  /** Run `PRAGMA wal_checkpoint(TRUNCATE)`. Flushes WAL frames into the main
@@ -209,6 +242,25 @@ export declare class Database {
209
242
  runTransaction(fn: () => void): void;
210
243
  /** 一次取得所有 subagent sessions 的 file_mtime(增量比對用) */
211
244
  getAllSubagentMtimes(): Map<string, string>;
245
+ /** Q1 (2026-09-11): is this uuid a message the cited session actually holds?
246
+ *
247
+ * ⚠️ Existence and ownership only. `true` does NOT mean the cited message
248
+ * supports the memory — the extraction model chose the citation and nothing
249
+ * here compares the two texts. cairn-memory states the same boundary in its
250
+ * own extract prompt ("selecting an index is not proof of entailment"); we
251
+ * keep the weaker claim rather than implying a stronger one. Checking
252
+ * entailment needs the message text stored beside the memory, which is the
253
+ * receipts design this deliberately is not.
254
+ *
255
+ * What it does buy: a fabricated uuid cannot enter the column. That is the
256
+ * whole reason `message_id` is worth filling — a provenance field that can
257
+ * hold invented values is worse than an empty one, because it reads as
258
+ * evidence.
259
+ *
260
+ * A null sessionId (hand-written recall_save) drops to existence-only.
261
+ * Ownership is unverifiable without a session, and refusing outright would
262
+ * close the column to the one write path a human actually uses. */
263
+ hasMessageUuid(uuid: string | null | undefined, sessionId: string | null): boolean;
212
264
  /** 查詢 DB 中已存在的 uuid(用於跨 session 去重 resumed session replay)。
213
265
  * v24: message_uuids 只存 64-bit hash,查詢以 hash 比對、以 Map 反查還原
214
266
  * 原 uuid — 簽名與回傳不變,indexer 端零改動。 */
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/core/database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/core/database.ts"],"names":[],"mappings":"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"}