dsh-prime-memory 0.24.1 → 0.25.0

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/CHANGELOG.en.md CHANGED
@@ -7,6 +7,28 @@
7
7
 
8
8
  This file covers the **0.12.0** release notes and the current **unreleased** changes in English. For the full history, see [CHANGELOG.md](./CHANGELOG.md) (Chinese).
9
9
 
10
+ ## [0.25.0] — 2026-10-14
11
+
12
+ ### Added
13
+
14
+ - **Keyword-distillation backfill (producer for `metadata.dsh_keywords`)**: the `keywords` axis reserved in `l1_fts` had no producer and stayed dormant. New independent batch scan `src/keyword-backfill.ts` (mirrors wing-backfill: single-flight / background / bounded / failures leave records untouched) sends existing L1 records missing `dsh_keywords` to the LLM in chunks, normalizes via `normKeywords` (≤5, dedupe, length clamp) and writes back. New endpoint `dsh-memory/keyword-backfill`; a "Keyword Backfill" button in the WingWheel panel. Config `keyword.enabled` defaults **off** — off means no backfill and `l1_fts` byte-for-byte unchanged (zero drift).
15
+ - **`patchMetadataAndReindex`**: `patchMetadata` only updates `l1_records`, never `l1_fts`, so backfilling through it would write keywords BM25 never sees. Added per-row FTS re-indexing (threaded through MemoryDb→L1Store→backend→InProc/Worker→worker dispatch) so new keywords enter the retrieval axis immediately. Test includes a reverse control (plain patchMetadata does not match; AndReindex does).
16
+
17
+ ### Changed
18
+
19
+ - **Input-area popup no longer renders the session recall list**: WingWheel drops `SessionRecalledArea` — recall display is now owned by brief-sidebar, so a second copy in the input popup was redundant (component file kept for rollback).
20
+
21
+ ## [0.24.2] — 2026-10-14
22
+
23
+ ### Added
24
+
25
+ - **Projection identity fields in the records panel**: card headers now show "Name" and "Scope" badges, and the expanded detail adds three rows (Name / Keywords / Scope), so users can directly verify the "memory ↔ projection filename" mapping. The `UiRecord` contract (`contract.ts`) gains optional `name`/`scope`/`workspaceId`/`keywords`; `stats.ts::hitToUiRecord` reads them from the record and the `metadata.dsh_keywords` reserved key.
26
+ - **FTS keyword axis as a separate, reserved column (dormant)**: `l1_fts` is ordered `keywords → content`, so keywords form an independent BM25 axis rather than being diluted into body-text term frequency. No keyword-distillation producer exists yet ⇒ the column is always empty and retrieval behaves byte-for-byte as before (zero drift); when distillation ships, no schema change is needed (FTS5 cannot ALTER).
27
+
28
+ ### Changed
29
+
30
+ - **Hook-consolidation comment cleanup**: the retired factory name `makeSuffixSync` no longer appears anywhere in `src/` (acceptance grep = 0), leaving a single source of truth for the consolidation conclusion.
31
+
10
32
  ## [0.24.1] — 2026-10-14
11
33
 
12
34
  ### Added
package/CHANGELOG.ja.md CHANGED
@@ -9,6 +9,28 @@
9
9
 
10
10
  本ファイルは **0.12.0** リリースノートと現在の**未リリース**変更の日本語版です。全履歴は [CHANGELOG.md](./CHANGELOG.md)(中文)を参照してください。
11
11
 
12
+ ## [0.25.0] — 2026-10-14
13
+
14
+ ### 追加
15
+
16
+ - **キーワード蒸留フィッシュバック(`metadata.dsh_keywords` の産出側)**:`l1_fts` に予約された `keywords` 检索軸は産出側がなく休止状態でした。新モジュール `src/keyword-backfill.ts`(wing 回填を镜像:単飛/後台/有界/失敗時原記録不変)で `dsh_keywords` 缺失の存量 L1 を chunk で LLM に贈り、`normKeywords`(≤5、重複除去、長さ鉗制)で正规化して書き戻す。新端点 `dsh-memory/keyword-backfill`、パネル(WingWheel)に「キーワード回填」ボタン。設定 `keyword.enabled` はデフォルト**关**——关時は回填なし、`l1_fts` 逐字不変(ゼロドリフト)。
17
+ - **`patchMetadataAndReindex`**:`patchMetadata` は `l1_records` のみ更新し `l1_fts` に触れないため、これで回填すると BM25 に永遠に見えない。行別 FTS 重索引(MemoryDb→L1Store→backend→InProc/Worker→worker 分派を貫通)を追加し、新キーワードが即座に检索軸に入る。テストは反向対照(純 patchMetadata は不命中 / AndReindex は命中)入り。
18
+
19
+ ### 変更
20
+
21
+ - **输入区ポップアップで本会话召回リストの描画を廃止**:WingWheel から `SessionRecalledArea` を除去——召回表示は brief-sidebar が接管済みのため重复排除(コンポーネントファイルはロールバック用に保持)。
22
+
23
+ ## [0.24.2] — 2026-10-14
24
+
25
+ ### 追加
26
+
27
+ - **レコードパネルの投射アイデンティティ項目**:カードヘッドに「名称」「スコープ」バッジを追加、展開詳細に3行(名称 / キーワード / スコープ)を追加し、「記憶↔投射ファイル名」の対応を直接確認できるようにした。`UiRecord` 契約(`contract.ts`)にオプションの `name`/`scope`/`workspaceId`/`keywords` を追加、`stats.ts::hitToUiRecord` がレコード本体と `metadata.dsh_keywords` 予約キーから読み出す。
28
+ - **FTS キーワード独立検索軸(予約・休止)**:`l1_fts` を「keywords → content」の2列インデックスに並べ、キーワードを本文の語頻と混ざらない独立 BM25 軸として予約。現状は蒸留の産出側がなく当該列は常に空 ⇒ 検索挙動は改修前と逐字同一(ゼロドリフト)、蒸留実装時は表構造の変更不要(FTS5 は ALTER 不可)。
29
+
30
+ ### 変更
31
+
32
+ - **フック収束コメントの整理**:退役した旧ファクトリ名 `makeSuffixSync` のリテラルが `src/` から消え(検収 grep ゼロ)、収束結論は単一の事実源のみ。
33
+
12
34
  ## [0.24.1] — 2026-10-14
13
35
 
14
36
  ### 追加
package/CHANGELOG.ko.md CHANGED
@@ -9,6 +9,28 @@
9
9
 
10
10
  이 파일은 **0.12.0** 릴리스 노트와 현재 **미출시** 변경 사항의 한국어판입니다. 전체 이력은 [CHANGELOG.md](./CHANGELOG.md)(中文)를 참조하세요.
11
11
 
12
+ ## [0.25.0] — 2026-10-14
13
+
14
+ ### 신규
15
+
16
+ - **키워드 증류 백필(`metadata.dsh_keywords` 산출측)**: `l1_fts` 에 예약된 `keywords` 축은 산출측이 없어 휴면이었습니다. 신규 모듈 `src/keyword-backfill.ts`(wing 백필 미러: 단일비행/후대/유계/실패시 원 기록불변)가 `dsh_keywords` 누락 L1 을 chunk 로 LLM 에 보내 키워드와 사용 시나리오를 뽑고 `normKeywords`(≤5、중복 제거、길이鉗制)로 정규화 후 기입。新 엔드 `dsh-memory/keyword-backfill`、패널(WingWheel)에 “키워드 백필” 버튼。설정 `keyword.enabled` **기본关**——关 시 백필 없음、`l1_fts` 글자 그대로 동일(영 드리프트)。
17
+ - **`patchMetadataAndReindex`**: `patchMetadata` 는 `l1_records` 만更新하고 `l1_fts` 에 안 닿아서 이대로 백필하면 BM25 가 영영 못 봄。행별 FTS 재인덱싱(MemoryDb→L1Store→backend→InProc/Worker→worker 분派 관통)추가, 새 키워드가 즉시 검색축에。테스트에역方向 대조(순수 patchMetadata 불命中 / AndReindex 命中) 포함。
18
+
19
+ ### 변경
20
+
21
+ - **입력영 팝업에서 본 대화召回 목록 렌더를中止**: WingWheel 의 `SessionRecalledArea` 제거——召回 表示은 brief-sidebar 가接管,重复 제거(컴포넌트 파일은 롤백용 유지)。
22
+
23
+ ## [0.24.2] — 2026-10-14
24
+
25
+ ### 신규
26
+
27
+ - **레코드 패널의 투사 정체성 필드**: 카드 헤더에 "이름" "범위" 배지를, 전개 상세에 3행(이름 / 키워드 / 범위)을 추가해 "기억↔투사 파일명" 대응을 직접 확인할 수 있게 했습니다. `UiRecord` 계약(`contract.ts`)에 선택 필드 `name`/`scope`/`workspaceId`/`keywords`를 추가하고, `stats.ts::hitToUiRecord`가 레코드 본체와 `metadata.dsh_keywords` 예약 키에서 읽어냅니다.
28
+ - **FTS 키워드 독립 검색 축(예약·휴면)**: `l1_fts`를 "keywords → content" 2열 인덱스로 배치해 키워드를 본문 어휘 빈도와 섞이지 않는 독립 BM25 축으로 예약했습니다. 현재 증류 생산자가 없어 해당 열은 항상 비어 ⇒ 검색 동작은 변경 전과 글자 그대로 동일(영 드리프트), 증류 도입 시 테이블 구조 변경 불필요(FTS5는 ALTER 불가).
29
+
30
+ ### 변경
31
+
32
+ - **훅 수렴 주석 정리**: 퇴역한 구 팩토리명 `makeSuffixSync` 리터럴이 `src/`에서 사라져(검수 grep 0), 수렴 결론은 단일 사실 소스만 남습니다.
33
+
12
34
  ## [0.24.1] — 2026-10-14
13
35
 
14
36
  ### 추가
package/CHANGELOG.md CHANGED
@@ -17,6 +17,28 @@
17
17
  - **建议状态(`longtask-hint-get`)以纯端点提供**:判定 = 上下文占用达 `contextThresholdPct` 或 todo 漂移达 `driftThreshold`(部署配置可调);配合 `longtask-compress-tail` 作手动压缩入口。
18
18
  - **撤下浮动球 UI(`client/src/longtask-fab.ts`;beta.1 起曾随包发布)**:悬浮建议面板的归属本在 context-compression 侧(「建议启动压缩」是其领域),pm 属误载——2026-10-02 用户裁定撤下。撤下不违座位契约(settings.section 恰一个 + 输入栏 pill,body 单例不占座位),但全应用级 overlay 会与其他插件的悬浮 UI 抢占屏幕角落;长任务开关与手动压缩入口待长任务定版时落记忆设置分节。
19
19
  - **`session-mode-set` 的 `mode` 转为可选**:与 `longTask` 二选一必传——纯切长任务开关不再被迫发送档位(旧客户端恒传 mode,行为不变)。响应 `mode` 改回当前生效值。
20
+ ## [0.25.0] — 2026-10-14
21
+
22
+ ### 新增
23
+
24
+ - **关键词蒸馏回填(`metadata.dsh_keywords` 产出方)**:此前 `l1_fts` 预留的 `keywords` 检索轴因无产出方而休眠。新增独立回填批扫 `src/keyword-backfill.ts`(镜像 wing 回填:单飞/后台/有界/失败原记录不动),对缺 `dsh_keywords` 的存量 L1 逐块送 LLM 提炼关键词与使用场景,经 `normKeywords`(≤5、去重、长度钳)归一后写回。端点 `dsh-memory/keyword-backfill`(立即返回 `{started,running,enabled,updated,failed}`),面板(WingWheel)加「关键词回填」按钮。配置 `keyword.enabled` **默认关**——关时不回填、`l1_fts` 逐字不变(零漂移)。
25
+ - **`patchMetadataAndReindex`(关键词轴真能生效的关键)**:`patchMetadata` 只改 `l1_records`、不碰 `l1_fts`,回填若走它则写了关键词但 BM25 永远看不到。新增按行重索引(贯穿 MemoryDb→L1Store→backend 接口→InProc/Worker→worker 分派),回填写完元数据顺带重跑该行 fts 插入,新关键词立即进检索轴。测试含反向对照(纯 patchMetadata 不命中 / AndReindex 命中)。
26
+
27
+ ### 变更
28
+
29
+ - **输入区弹窗不再渲染本会话召回列表**:WingWheel 移除 `SessionRecalledArea`——召回展示已由 brief-sidebar 接管,输入区弹窗再渲染一份属重复(组件文件保留以备回滚)。
30
+
31
+ ## [0.24.2] — 2026-10-14
32
+
33
+ ### 新增
34
+
35
+ - **检索面板投射身份字段**:RecordsTab 卡头新增「名称」「作用范围」徽标,展开详情新增三行(名称 / 关键词 / 作用范围),帮助用户直观核对「记忆↔投射文件名」的对应关系。UiRecord 契约(`contract.ts`)加 `name`/`scope`/`workspaceId`/`keywords` 四个可选字段,`stats.ts::hitToUiRecord` 从记录本体和 `metadata.dsh_keywords` 保留键读出。
36
+ - **FTS 关键词独立检索轴(预留、休眠)**:`l1_fts` 排列改为「keywords → content」两列索引,关键词作为独立 BM25 命中轴、不与正文词频混淆;当前无关键词蒸馏产出方 ⇒ 该列恒空、检索行为与改动前逐字相同(零漂移),将来蒸馏上线无需再改表(FTS5 不能 ALTER)。
37
+
38
+ ### 变更
39
+
40
+ - **挂钩收口注释清理**:`src/` 内不再残留旧工厂名 `makeSuffixSync` 字面量(验收 grep 归零),收口结论只留一处事实源。
41
+
20
42
  ## [0.24.1] — 2026-10-14
21
43
 
22
44
  ### 新增