dsh-locator 0.9.0 → 0.10.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/CHANGELOG.md +42 -0
- package/README-es.md +9 -0
- package/README-hi.md +9 -0
- package/README-pt.md +9 -0
- package/README.en.md +10 -1
- package/README.md +10 -1
- package/bin/darwin-arm64/indexd +0 -0
- package/bin/darwin-x64/indexd +0 -0
- package/bin/linux-arm64/indexd +0 -0
- package/bin/linux-x64/indexd +0 -0
- package/bin/win32-arm64/indexd.exe +0 -0
- package/bin/win32-x64/indexd.exe +0 -0
- package/client.js +344 -146
- package/lib/combined.d.ts.map +1 -1
- package/lib/combined.js +14 -4
- package/lib/combined.js.map +1 -1
- package/lib/content-search-worker.d.ts +5 -0
- package/lib/content-search-worker.d.ts.map +1 -1
- package/lib/content-search-worker.js +51 -29
- package/lib/content-search-worker.js.map +1 -1
- package/lib/content-search.d.ts +46 -0
- package/lib/content-search.d.ts.map +1 -1
- package/lib/content-search.js +186 -69
- package/lib/content-search.js.map +1 -1
- package/lib/content.d.ts +66 -8
- package/lib/content.d.ts.map +1 -1
- package/lib/content.js +292 -78
- package/lib/content.js.map +1 -1
- package/lib/export.d.ts +61 -0
- package/lib/export.d.ts.map +1 -1
- package/lib/export.js +217 -52
- package/lib/export.js.map +1 -1
- package/lib/find.d.ts.map +1 -1
- package/lib/find.js +72 -16
- package/lib/find.js.map +1 -1
- package/lib/http.d.ts +38 -2
- package/lib/http.d.ts.map +1 -1
- package/lib/http.js +274 -80
- package/lib/http.js.map +1 -1
- package/lib/reveal.d.ts +69 -3
- package/lib/reveal.d.ts.map +1 -1
- package/lib/reveal.js +140 -11
- package/lib/reveal.js.map +1 -1
- package/lib/runtime.d.ts +7 -0
- package/lib/runtime.d.ts.map +1 -1
- package/lib/runtime.js +4 -0
- package/lib/runtime.js.map +1 -1
- package/lib/tools.d.ts +30 -0
- package/lib/tools.d.ts.map +1 -1
- package/lib/tools.js +72 -4
- package/lib/tools.js.map +1 -1
- package/package.json +1 -1
- package/src/combined.ts +13 -4
- package/src/content-search-worker.ts +47 -26
- package/src/content-search.ts +217 -66
- package/src/content.ts +287 -74
- package/src/export.ts +240 -50
- package/src/find.ts +82 -16
- package/src/http.ts +264 -81
- package/src/reveal.ts +148 -10
- package/src/runtime.ts +11 -0
- package/src/tools.ts +93 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,47 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.10.1 — 2026-11-12
|
|
4
|
+
|
|
5
|
+
Watcher hotfix for 0.10.0.
|
|
6
|
+
|
|
7
|
+
* Transient `ENOENT`/`ENOTDIR` during the native watcher's directory walk (pnpm `_tmp`, editor swap files, build outputs disappearing between readdir and lstat) no longer marks the watcher degraded and starts a 30-minute refresh fallback. Those entries are treated as normal churn; only persistent permission/limit failures degrade coverage.
|
|
8
|
+
* The engine status route and `locator_status` now expose `watchDegraded`, `watchReason`, `watchRoots` and `refreshFallback`, and the panel shows `watcher degraded; periodic refresh active` instead of silently claiming native watching.
|
|
9
|
+
* Six engine binaries rebuilt as 0.10.1 (darwin remains the local kqueue dev fallback; release/CI builds the cgo/FSEvents artifact).
|
|
10
|
+
|
|
11
|
+
## 0.10.0 — 2026-11-12
|
|
12
|
+
|
|
13
|
+
Full-plugin hardening pass from a 20-agent audit. This release focuses on stability, release integrity, security boundaries, client correctness and performance rather than new search features.
|
|
14
|
+
|
|
15
|
+
**Stability / performance**
|
|
16
|
+
* Whole-word content search now has a hard scan budget (rows, bytes, time) and stops with a bounded count + `scan-capped` warning instead of scanning an unbounded corpus.
|
|
17
|
+
* A content worker timeout no longer falls back to the same query on the host event loop; it returns `content-search-timeout` (or a worker error) and discards the stuck worker. This removes the multi-second DSH freeze.
|
|
18
|
+
* Content queries are bounded to 256 characters / 32 terms / 3 characters per term; shorter or over-long queries return explicit errors instead of a full-table LIKE/GLOB scan. NUL/control characters are rejected. emoji are counted by code point.
|
|
19
|
+
* Content refresh reuses a successful parse before replacing a session; a read/decompression failure keeps the old messages and retries next refresh. `maxFiles` no longer deletes tail documents after a transient read failure. Corrupt/zero-byte/old-schema content databases are quarantined and rebuilt.
|
|
20
|
+
* Engine: generation only advances on real changes; snapshot save is dirty-debounced (60 s quiet / 5 min max) and shutdown skips an unchanged snapshot; `sort=path` no longer builds a path map for every hit; dump supports `since`/`mtimeFrom`; watcher reports degraded/fallback state and `--refresh 0` disables periodic rebuilds; Windows roots/handles stay paired.
|
|
21
|
+
* Six engine binaries are rebuilt at 0.10.0; the release workflow rebuilds Linux/Windows on Ubuntu and darwin with cgo/FSEvents on macOS, verifies versions, and refuses to publish from a red CI commit.
|
|
22
|
+
|
|
23
|
+
**Security / boundaries**
|
|
24
|
+
* HTTP panel routes now require the DSH `connection` service (fail-closed), enforce POST + JSON content-type, same-origin Fetch metadata, 64 KiB body limit and proper 400/405/413/415/503 responses.
|
|
25
|
+
* `/reveal` and `/open` resolve real paths and reject symlink escapes from the indexed roots; `/open` rejects executable/script extensions. `locator_export` defaults to the plugin state directory, validates ownership before overwrite and writes atomically; `locator_rebuild` only accepts configured roots/excludes subsets.
|
|
26
|
+
* `locator_find` now exposes `matchMode`, `caseSensitive`, `wholeWord`, `sessionId`, `count`, `countLimit`, `pathPrefix` and defaults to **workspace scope** (caller session for session hits, caller cwd for file hits); `scope: 'all'` is explicit cross-workspace access. The tool description, count/warnings and session/message references are rendered for the agent.
|
|
27
|
+
|
|
28
|
+
**Client**
|
|
29
|
+
* Panel result rows keep focus, so Esc/arrow/F3/Enter work after clicking a hit; a document-level Escape fallback closes the panel; Ctrl+Shift+F ignores host modals, editors/terminals, key repeat and AltGr.
|
|
30
|
+
* Unified visible-text projection for the find bar and jump: soft newlines/`<br>` collapse to a space outside `<pre>`, CJK soft-wrapped phrases match, KaTeX/sr-only/aria-live/status text is excluded; the projection uses segment maps instead of one object per character.
|
|
31
|
+
* Assistant steps rendered as two rows with the same node key now prefer the response row; anchored hits no longer fall back to an unrelated phrase in the loaded window, and older pages are loaded until the anchor exists.
|
|
32
|
+
* Regular expressions prefer the Unicode `u` flag (so `\p{L}`/`\p{Script=Han}` work) and never fall back to a main-thread regex when the worker is blocked or times out; the find bar reports the timeout/unavailable state.
|
|
33
|
+
* The panel renders content warnings, scan caps, budget truncation and query errors as information instead of a retryable failure; footer/group counts use the exact/bounded count consistently; content queries need 3 characters (shorter searches use Ctrl+F).
|
|
34
|
+
* One-shot toast/insert/reveal timers are tracked and cleared; plugin disposal resets overlay state.
|
|
35
|
+
|
|
36
|
+
**Upgrade notes**
|
|
37
|
+
* No content schema change. 0.10.0 runs on schema v3; the engine binary version changes to 0.10.0.
|
|
38
|
+
* Content search minimum length is 3 characters; use the in-conversation find bar (`Ctrl+F`) for 1–2 character searches.
|
|
39
|
+
* `locator_find` is workspace-scoped by default; pass `scope: 'all'` for cross-workspace session/file content.
|
|
40
|
+
* Panel routes require the stock web `connection` service; custom compositions without it will not mount them (intentional fail-closed).
|
|
41
|
+
* `locator_export` writes under the plugin state directory by default; pass `allowOutsideStateDir: true` only for a deliberate external export. Importing an existing arbitrary file is refused.
|
|
42
|
+
|
|
43
|
+
**Tests**: 122 tests across content, combined, HTTP, tools, find, plugin, runtime, export, reveal and lag suites; CI runs Node 22/24 on Linux/Windows/macOS with rebuilt engines and fail-on-skip gates.
|
|
44
|
+
|
|
3
45
|
## 0.9.0 — 2026-11-12
|
|
4
46
|
|
|
5
47
|
Advanced find and a two-surface search model, informed by Notepad++/Notepad--/VS Code and a live-DB benchmark.
|
package/README-es.md
CHANGED
|
@@ -401,6 +401,15 @@ DeepSeek Harness
|
|
|
401
401
|
|
|
402
402
|
El motor es un único proceso Go y respeta las variables estándar `GOMEMLIMIT` y `GOGC` (o `memoryLimitMB` en la configuración). Un índice de 1,2–1,5 M de entradas alcanza varios cientos de MB de RSS con el GC por defecto; usa `GOMEMLIMIT=600MiB` (límite blando, el runtime cambia CPU por memoria) o `GOGC=50` cuando el host vaya justo de RAM. Ninguno cambia el formato de la instantánea. En la instalación en vivo usada para las cifras anteriores, el proceso anfitrión de DSH (incluida la caché de páginas de la base de contenido) rondaba los 700 MB de RSS con el índice construido, y la latencia del host en reposo se mantenía en p50 2 ms.
|
|
403
403
|
|
|
404
|
+
## Notas de actualización 0.10.0
|
|
405
|
+
|
|
406
|
+
- La búsqueda de contenido requiere al menos **3 caracteres**; usa `Ctrl+F` para 1–2. Se rechazan consultas de más de 256 caracteres o 32 términos.
|
|
407
|
+
- `locator_find` usa **ámbito workspace** por defecto (sesión del llamador y su cwd); para cruzar workspaces pasa `scope: "all"`. Nuevos parámetros: `matchMode`, `caseSensitive`, `wholeWord`, `sessionId`, `count`, `countLimit`, `pathPrefix`.
|
|
408
|
+
- Las rutas HTTP del panel exigen el servicio `connection` de DSH (fail-closed) y POST + JSON + mismo origen; el perfil web estándar no cambia.
|
|
409
|
+
- `locator_export` escribe por defecto en el stateDir del plugin y valida la propiedad antes de sobrescribir; `locator_rebuild` solo acepta subconjuntos de roots/excludes configurados.
|
|
410
|
+
- Los binarios del motor son 0.10.0: guardado de snapshot con debounce, memoria de `sort=path` acotada, watcher con estado degradado/fallback; en macOS el release debe compilarse con cgo/FSEvents (el fallback kqueue de depuración no es publicable).
|
|
411
|
+
- Cliente: clic en resultados conserva teclado/Esc; búsqueda con saltos suaves/`<br>`/CJK corregida; filas gemelas del asistente prefieren la respuesta; regex usa `u` y no cae al hilo principal; avisos/límites/truncado visibles.
|
|
412
|
+
|
|
404
413
|
## Seguridad y privacidad
|
|
405
414
|
|
|
406
415
|
- El índice es local: sin llamadas de red, sin telemetría, sin subidas. El plugin nunca modifica, mueve ni borra archivos indexados.
|
package/README-hi.md
CHANGED
|
@@ -402,6 +402,15 @@ DeepSeek Harness
|
|
|
402
402
|
|
|
403
403
|
इंजन एक Go प्रोसेस है और मानक `GOMEMLIMIT` और `GOGC` (या कॉन्फ़िग में `memoryLimitMB`) मानता है। 1.2–1.5 M एंट्री का इंडेक्स डिफ़ॉल्ट GC के साथ कई सौ MB RSS तक जाता है; होस्ट पर RAM कम हो तो `GOMEMLIMIT=600MiB` (सॉफ़्ट सीमा, रनटाइम CPU देकर मेमोरी बचाता है) या `GOGC=50` रखें। इनसे स्नैपशॉट फ़ॉर्मेट नहीं बदलता। ऊपर के आँकड़ों वाले लाइव सेटअप में DSH होस्ट प्रोसेस (कंटेंट डेटाबेस पेज कैश सहित) इंडेक्स बने रहने पर लगभग 700 MB RSS पर था, और खाली बैठे होस्ट की देरी p50 2ms रही।
|
|
404
404
|
|
|
405
|
+
## 0.10.0 अपग्रेड नोट्स
|
|
406
|
+
|
|
407
|
+
- सामग्री खोज के लिए कम से कम **3 अक्षर** चाहिए; 1–2 अक्षर के लिए `Ctrl+F` उपयोग करें। 256 अक्षर/32 शब्द से बड़ी क्वेरी अस्वीकार होती है।
|
|
408
|
+
- `locator_find` डिफ़ॉल्ट **workspace स्कोप** (कॉलर सत्र और cwd) में चलता है; दूसरे workspace के लिए `scope: "all"` दें। नए पैरामीटर: `matchMode`, `caseSensitive`, `wholeWord`, `sessionId`, `count`, `countLimit`, `pathPrefix`.
|
|
409
|
+
- पैनल HTTP रूट अब DSH `connection` सेवा अनिवार्य करते हैं (fail-closed) और POST + JSON + same-origin जाँचते हैं; stock web profile प्रभावित नहीं।
|
|
410
|
+
- `locator_export` डिफ़ॉल्ट रूप से plugin stateDir में लिखता है और overwrite से पहले ownership जाँचता है; `locator_rebuild` केवल configured roots/excludes के subset लेता है।
|
|
411
|
+
- engine बाइनरी 0.10.0 हैं: snapshot dirty-debounce, `sort=path` सीमित मेमोरी, watcher degraded/fallback; macOS रिलीज़ cgo/FSEvents से बनना चाहिए (debug kqueue fallback प्रकाशन योग्य नहीं)।
|
|
412
|
+
- क्लाइंट: परिणाम-पंक्ति क्लिक के बाद भी कुंजी/Esc काम करते हैं; soft newline/`<br>`/CJK खोज ठीक; assistant twin rows में response प्राथमिक; regex Unicode `u` और worker विफलता पर main-thread fallback नहीं; सामग्री चेतावनी/सीमा/truncation दिखती है।
|
|
413
|
+
|
|
405
414
|
## सुरक्षा और गोपनीयता
|
|
406
415
|
|
|
407
416
|
- इंडेक्स पूरी तरह स्थानीय है: कोई नेटवर्क कॉल नहीं, कोई टेलीमेट्री नहीं, कोई अपलोड नहीं। प्लगइन इंडेक्स की गई फ़ाइलों को कभी बदलता, हटाता या स्थानांतरित नहीं करता।
|
package/README-pt.md
CHANGED
|
@@ -402,6 +402,15 @@ DeepSeek Harness
|
|
|
402
402
|
|
|
403
403
|
O motor é um único processo Go e respeita as variáveis padrão `GOMEMLIMIT` e `GOGC` (ou `memoryLimitMB` na configuração). Um índice de 1,2–1,5 M de entradas chega a várias centenas de MB de RSS com o GC padrão; use `GOMEMLIMIT=600MiB` (limite suave, o runtime troca CPU por memória) ou `GOGC=50` quando o host estiver apertado de RAM. Nenhum altera o formato do snapshot. Na instalação ao vivo usada para os números acima, o processo anfitrião do DSH (incluindo o cache de páginas do banco de conteúdo) ficava por volta de 700 MB de RSS com o índice construído, e a latência do host ocioso permanecia em p50 2 ms.
|
|
404
404
|
|
|
405
|
+
## Notas de atualização 0.10.0
|
|
406
|
+
|
|
407
|
+
- A busca de conteúdo exige pelo menos **3 caracteres**; use `Ctrl+F` para 1–2. Consultas com mais de 256 caracteres ou 32 termos são rejeitadas.
|
|
408
|
+
- `locator_find` usa **escopo workspace** por padrão (sessão do chamador e seu cwd); para cruzar workspaces passe `scope: "all"`. Novos parâmetros: `matchMode`, `caseSensitive`, `wholeWord`, `sessionId`, `count`, `countLimit`, `pathPrefix`.
|
|
409
|
+
- As rotas HTTP do painel exigem o serviço `connection` do DSH (fail-closed) e POST + JSON + mesma origem; o perfil web padrão não muda.
|
|
410
|
+
- `locator_export` grava por padrão no stateDir do plugin e valida a propriedade antes de sobrescrever; `locator_rebuild` aceita apenas subconjuntos dos roots/excludes configurados.
|
|
411
|
+
- Os binários do engine são 0.10.0: snapshot com debounce, memória de `sort=path` limitada, watcher com estado degradado/fallback; no macOS o release precisa ser compilado com cgo/FSEvents (o fallback kqueue de depuração não é publicável).
|
|
412
|
+
- Cliente: clique nos resultados mantém teclado/Esc; busca com quebras suaves/`<br>`/CJK corrigida; linhas gêmeas do assistente preferem a resposta; regex usa `u` e não cai na thread principal; avisos/limites/truncamento visíveis.
|
|
413
|
+
|
|
405
414
|
## Segurança e privacidade
|
|
406
415
|
|
|
407
416
|
- O índice é local: sem chamadas de rede, sem telemetria, sem uploads. O plugin nunca modifica, move ou apaga arquivos indexados.
|
package/README.en.md
CHANGED
|
@@ -170,7 +170,7 @@ Press `Ctrl+Shift+F` anywhere in the Web GUI, or click the magnifier at the side
|
|
|
170
170
|
- **Counts**: group headers show the match count; exact when cheap, `≥ N` when capped. The header shows the selected position (`3/37`) and the footer summarises all groups. The content page path now runs rank-rowids → body-by-rowid → JS snippet/line, so common words dropped from about 2.7 s to under 300 ms.
|
|
171
171
|
- **Find options**: the toolbar offers mode (Normal / Extended / Regex), `Aa` match case, whole word and a current-conversation scope. Mode/case/whole-word apply to file and folder names; content supports Normal/Extended/case/whole-word, while **regex pauses the content group** (names still allow regex) so a panel keystroke never scans the whole corpus.
|
|
172
172
|
- **Current conversation scope**: only indexed messages of that session are searched (an active session is indexed after roughly two minutes), and file/folder scopes are disabled but keep their ticks. For live per-match navigation use the `Ctrl+F` find bar below.
|
|
173
|
-
- Content queries need at least
|
|
173
|
+
- Content queries need at least three characters; empty, one- and two-character queries never start the content build (use Ctrl+F for short searches). While it builds the content group shows progress and name results return immediately; scopes and find options are remembered.
|
|
174
174
|
- Keyboard: `↑`/`↓`, `Home`/`End`, `PageUp`/`PageDown` move, `F3`/`Shift+F3` cycle result rows, `Enter` activates, `Esc` closes; the dialog traps focus and restores it on close. Panel text follows `navigator.language` (zh/en/es/pt/hi).
|
|
175
175
|
|
|
176
176
|
## Find in the conversation (Ctrl+F)
|
|
@@ -402,6 +402,15 @@ DeepSeek Harness
|
|
|
402
402
|
|
|
403
403
|
The engine is a single Go process and honours the standard `GOMEMLIMIT` and `GOGC` environment variables (or `memoryLimitMB` in the config). A 1.2–1.5 M-entry index peaks around several hundred MB of RSS with the default GC; set `GOMEMLIMIT=600MiB` (soft limit, the runtime trades CPU for memory) or `GOGC=50` when the host is tight on RAM. Neither changes the snapshot format. In the live setup used for the numbers above, the DSH host process (including the content database page cache) sat around 700 MB RSS with the content index built, and idle host latency stayed at p50 2 ms.
|
|
404
404
|
|
|
405
|
+
## 0.10.0 upgrade notes
|
|
406
|
+
|
|
407
|
+
- Content search requires at least **3 characters**; use `Ctrl+F` for 1–2 character searches. Queries over 256 characters/32 terms are rejected.
|
|
408
|
+
- `locator_find` defaults to **workspace scope** (session hits: the caller session; file hits: the caller cwd). Pass `scope: "all"` for explicit cross-workspace access. New parameters: `matchMode`, `caseSensitive`, `wholeWord`, `sessionId`, `count`, `countLimit`, `pathPrefix`.
|
|
409
|
+
- Panel HTTP routes now require the DSH `connection` service (fail-closed) and enforce POST + JSON + same-origin Fetch metadata; the stock web profile is unaffected.
|
|
410
|
+
- `locator_export` writes under the plugin state directory by default and validates ownership before overwrite; `locator_rebuild` accepts only configured roots/exclude subsets.
|
|
411
|
+
- Engine binaries are 0.10.0. Snapshot saves are dirty-debounced, `sort=path` memory is bounded, watcher state reports degraded/refresh fallback; macOS release binaries must be built on macOS with cgo/FSEvents (the debug kqueue fallback is not releasable).
|
|
412
|
+
- Client: result-row clicks keep keyboard/Esc working; soft newlines/`<br>`/CJK find fixed; assistant twin rows prefer the response row; regex prefers Unicode `u` and never falls back to the main thread; content warnings/caps/truncation are visible.
|
|
413
|
+
|
|
405
414
|
## Security and privacy
|
|
406
415
|
|
|
407
416
|
- The index is local: no network calls, no telemetry, no uploads. The plugin never modifies, moves or deletes indexed files.
|
package/README.md
CHANGED
|
@@ -169,7 +169,7 @@ Everything 风格的查询语法,返回路径、大小、修改时间、扩展
|
|
|
169
169
|
- **计数**:组头显示命中数;可精确时显示数字,受上限保护时显示 `≥ N`;头部显示当前选中位置 `3/37`,底栏汇总三组。内容页面路径已改为“先取 rank rowid、再按 rowid 取正文、JS 生成片段/行号”,常见词从约 2.7 秒降到 300 毫秒以内。
|
|
170
170
|
- **查找选项**:工具栏提供模式(普通 / 扩展 / 正则)、`Aa` 大小写、全词、当前会话范围。模式和大小写/全词对文件、目录名生效;内容支持普通/扩展/大小写/全词,**正则模式下内容组自动暂停**(文件/目录仍可正则),避免全库正则扫描。
|
|
171
171
|
- **当前会话范围**:勾选后只查该会话已落定的索引消息(活跃会话约有 2 分钟索引延迟),文件/目录勾选会禁用但保留;实时逐处查找请用下文的 `Ctrl+F` 会话内查找条。
|
|
172
|
-
- 内容查询至少需要
|
|
172
|
+
- 内容查询至少需要 3 个字符;空查询和 1–2 个字符的查询不会启动内容索引构建。构建期间内容组显示进度,文件名/目录结果立即返回;勾选和查找选项会记住。
|
|
173
173
|
- 键盘:`↑`/`↓`、`Home`/`End`、`PageUp`/`PageDown` 移动,`F3`/`Shift+F3` 在结果行间循环,`Enter` 激活,`Esc` 关闭;对话框有焦点陷阱并在关闭时还原。面板文案跟随 `navigator.language`(中/英/西/葡/印地语)。
|
|
174
174
|
|
|
175
175
|
## 在会话中查找(Ctrl+F)
|
|
@@ -364,6 +364,15 @@ Go 引擎在 `engine/` 下,测试用 `cd engine && go test ./...`。macOS 的
|
|
|
364
364
|
- 当前会话范围只覆盖已落定索引的会话消息(活跃会话约 2 分钟延迟);实时查找用 `Ctrl+F`。会话内查找条只覆盖已加载窗口,更早历史需手动加载。
|
|
365
365
|
- 会话内高亮依赖 CSS Custom Highlight API;不支持它的旧浏览器会退化为整行描边。
|
|
366
366
|
|
|
367
|
+
## 0.10.0 升级注意
|
|
368
|
+
|
|
369
|
+
- 内容搜索最短 **3 个字符**;1–2 字符请用 `Ctrl+F` 会话内查找。查询超过 256 字符/32 个词会直接报错。
|
|
370
|
+
- `locator_find` 默认 **workspace 范围**(会话只查调用者当前会话,文件正文只查调用者 cwd);跨工作区需显式传 `scope: "all"`。新增 `matchMode`/`caseSensitive`/`wholeWord`/`sessionId`/`count`/`pathPrefix` 参数。
|
|
371
|
+
- 面板 HTTP 路由现在**硬依赖 DSH `connection` 服务**(缺失则不挂载/503),并强制 POST + JSON + 同源校验;stock web profile 正常。
|
|
372
|
+
- `locator_export` 默认只写插件 stateDir,覆盖前校验是否本工具生成的 SQLite;`locator_rebuild` 只接受配置 roots/excludes 的子集。
|
|
373
|
+
- 引擎二进制版本为 0.10.0;快照保存改为脏数据 debounce、`sort=path` 内存修复、watcher 降级/refresh fallback;macOS 发布版必须由 macOS cgo/FSEvents 构建,debug kqueue fallback 不能发布。
|
|
374
|
+
- 客户端:面板点击结果后键盘/Esc 保持;软换行/`<br>`/CJK 查找修复;assistant 同 nodeKey 双行优先回复行;正则优先 Unicode `u` 且 worker 失败不再回退主线程;内容错误/警告/截断在面板可见。
|
|
375
|
+
|
|
367
376
|
## 安全与隐私
|
|
368
377
|
|
|
369
378
|
- 索引完全在本地:不联网、不上传、不埋点;插件不会修改、移动或删除被索引的文件。
|
package/bin/darwin-arm64/indexd
CHANGED
|
Binary file
|
package/bin/darwin-x64/indexd
CHANGED
|
Binary file
|
package/bin/linux-arm64/indexd
CHANGED
|
Binary file
|
package/bin/linux-x64/indexd
CHANGED
|
Binary file
|
|
Binary file
|
package/bin/win32-x64/indexd.exe
CHANGED
|
Binary file
|