dsh-locator 0.11.3 → 0.11.5
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 +13 -0
- package/README-es.md +6 -0
- package/README-hi.md +6 -0
- package/README-pt.md +6 -0
- package/README.en.md +6 -0
- package/README.md +6 -0
- 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 +38 -1
- package/lib/combined.d.ts +3 -1
- package/lib/combined.d.ts.map +1 -1
- package/lib/combined.js +2 -0
- package/lib/combined.js.map +1 -1
- package/lib/content.d.ts +37 -0
- package/lib/content.d.ts.map +1 -1
- package/lib/content.js +112 -6
- package/lib/content.js.map +1 -1
- package/lib/find.d.ts.map +1 -1
- package/lib/find.js +6 -2
- package/lib/find.js.map +1 -1
- package/lib/tools.d.ts.map +1 -1
- package/lib/tools.js +17 -0
- package/lib/tools.js.map +1 -1
- package/package.json +2 -2
- package/src/combined.ts +5 -1
- package/src/content.ts +127 -4
- package/src/find.ts +7 -2
- package/src/tools.ts +28 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.11.5 — 2026-11-14
|
|
4
|
+
|
|
5
|
+
* **Content build progress**: while a build runs, `content.progress` reports the current phase (`files` / `sessions`), scanned entries, the known total and the current path; the HTTP `status` route, `locator_status` and the Web panel (all five client languages) show it, and it disappears when the build finishes or fails. Builds can take minutes on a full index, so `building: true` alone left the panel and the agent blind.
|
|
6
|
+
* `136 tests`; six engine binaries rebuilt at 0.11.5.
|
|
7
|
+
|
|
8
|
+
## 0.11.4 — 2026-11-14
|
|
9
|
+
|
|
10
|
+
* Toggling `contentIndexReasoning` now rebuilds **only session documents**, keeping the 185k-file index intact instead of re-reading every file.
|
|
11
|
+
* Enforce smaller content caps against an existing database: if `contentMaxTotalBytes`, `contentMaxFiles` or `contentMaxFileBytes` shrink, the next boot rebuilds instead of leaving out-of-budget rows searchable. Hitting `contentMaxFiles` now sets `truncated`.
|
|
12
|
+
* `locator_find` accepts `offset` and returns it, so agents can page through content hits; content search already supported the underlying offset.
|
|
13
|
+
* Panel adds **Copy paths** for all currently loaded/filtered rows, in addition to Load more.
|
|
14
|
+
* 133 tests; six engine binaries rebuilt at 0.11.4.
|
|
15
|
+
|
|
3
16
|
## 0.11.3 — 2026-11-14
|
|
4
17
|
|
|
5
18
|
* Expose content capabilities in status: `fullIndex` (both caps explicitly 0) and `reasoningIndex` (assistant reasoning blocks included). `locator_status` and the panel status line show `full-index` / `reasoning-indexed` so users can tell which mode is active.
|
package/README-es.md
CHANGED
|
@@ -401,8 +401,14 @@ 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.11.5
|
|
405
|
+
|
|
406
|
+
- **Progreso de construcción de contenido**: durante la construcción, `locator_status`, la ruta HTTP `status` y el panel informan la fase actual (`files` / `sessions`), las entradas escaneadas, el total conocido y la ruta actual (`content.progress`) en lugar de solo `building: true`; el campo desaparece al terminar o fallar.
|
|
407
|
+
|
|
404
408
|
## Notas de actualización 0.11.0
|
|
405
409
|
|
|
410
|
+
- Cambiar `contentIndexReasoning` reconstruye solo las sesiones (el índice de archivos se conserva); reducir los caps fuerza reconstrucción; `locator_find` acepta `offset`; el panel copia todas las rutas cargadas/filtradas.
|
|
411
|
+
|
|
406
412
|
- El estado/panel muestra **índice completo** y **razonamiento indexado**; el idioma prefiere `<html lang>` del host y usa el navegador como respaldo.
|
|
407
413
|
|
|
408
414
|
- Las rutas del panel se registran aunque el servicio `connection` aún esté activando; cada petición lo revisa y responde 503. Sin connection, `httpConnectionOptional: true` usa la autenticación del host + mismo origen (por defecto false).
|
package/README-hi.md
CHANGED
|
@@ -402,8 +402,14 @@ 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.11.5 अपग्रेड नोट्स
|
|
406
|
+
|
|
407
|
+
- **सामग्री निर्माण प्रगति**: निर्माण के दौरान `locator_status`, HTTP `status` रूट और Web पैनल वर्तमान चरण (`files` / `sessions`), स्कैन की गई प्रविष्टियाँ, ज्ञात कुल और वर्तमान पथ (`content.progress`) बताते हैं — केवल `building: true` नहीं; निर्माण पूरा होने या विफल होने पर यह फ़ील्ड हट जाती है।
|
|
408
|
+
|
|
405
409
|
## 0.11.0 अपग्रेड नोट्स
|
|
406
410
|
|
|
411
|
+
- `contentIndexReasoning` बदलने पर केवल sessions rebuild होते हैं (फ़ाइल इंडेक्स रहता है); caps छोटा करने पर rebuild होता है; `locator_find` में `offset`; पैनल सभी loaded/filtered paths कॉपी कर सकता है।
|
|
412
|
+
|
|
407
413
|
- status/पैनल **full-index** और **reasoning-indexed** दिखाते हैं; भाषा host `<html lang>` को प्राथमिकता देती है, अन्यथा browser language।
|
|
408
414
|
|
|
409
415
|
- पैनल रूट तब भी पंजीकृत होते हैं जब host `connection` सेवा सक्रिय हो रही हो; हर अनुरोध जाँचता है और 503 देता है। connection न होने पर `httpConnectionOptional: true` host auth + same-origin पर निर्भर करता है (डिफ़ॉल्ट false)।
|
package/README-pt.md
CHANGED
|
@@ -402,8 +402,14 @@ 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.11.5
|
|
406
|
+
|
|
407
|
+
- **Progresso da construção de conteúdo**: durante a construção, `locator_status`, a rota HTTP `status` e o painel informam a fase atual (`files` / `sessions`), as entradas verificadas, o total conhecido e o caminho atual (`content.progress`) em vez de apenas `building: true`; o campo desaparece quando a construção termina ou falha.
|
|
408
|
+
|
|
405
409
|
## Notas de atualização 0.11.0
|
|
406
410
|
|
|
411
|
+
- Alternar `contentIndexReasoning` reconstrói apenas as sessões (o índice de arquivos é mantido); reduzir os caps força reconstrução; `locator_find` aceita `offset`; o painel copia todos os caminhos carregados/filtrados.
|
|
412
|
+
|
|
407
413
|
- Status/painel mostram **índice completo** e **raciocínio indexado**; o idioma prefere `<html lang>` do host e usa o navegador como fallback.
|
|
408
414
|
|
|
409
415
|
- As rotas do painel são registradas mesmo com o serviço `connection` ainda ativando; cada requisição revalida e responde 503. Sem connection, `httpConnectionOptional: true` usa autenticação do host + mesma origem (padrão false).
|
package/README.en.md
CHANGED
|
@@ -402,8 +402,14 @@ 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.11.5 upgrade notes
|
|
406
|
+
|
|
407
|
+
- **Content build progress**: while a build runs, `locator_status`, the HTTP `status` route and the Web panel report the current phase (`files` / `sessions`), scanned entries, the known total and the current path (`content.progress`) instead of a bare `building: true`; the field disappears once the build finishes or fails.
|
|
408
|
+
|
|
405
409
|
## 0.11.0 upgrade notes
|
|
406
410
|
|
|
411
|
+
- Toggling `contentIndexReasoning` rebuilds sessions only (the file index is kept); shrinking content caps forces a rebuild so out-of-budget rows cannot stay searchable; `locator_find` accepts `offset`; the panel can copy all loaded/filtered paths.
|
|
412
|
+
|
|
407
413
|
- Status/panel expose **full-index** and **reasoning-indexed**; client language prefers the host `<html lang>` (DSH locale) and falls back to the browser language.
|
|
408
414
|
|
|
409
415
|
- Panel routes are registered even when the host `connection` service is still activating; each request re-checks it and answers 503 meanwhile. Hosts without connection can set `httpConnectionOptional: true` to fall back to host authentication + same-origin Fetch metadata (default false).
|
package/README.md
CHANGED
|
@@ -364,8 +364,14 @@ Go 引擎在 `engine/` 下,测试用 `cd engine && go test ./...`。macOS 的
|
|
|
364
364
|
- 当前会话范围只覆盖已落定索引的会话消息(活跃会话约 2 分钟延迟);实时查找用 `Ctrl+F`。会话内查找条只覆盖已加载窗口,更早历史需手动加载。
|
|
365
365
|
- 会话内高亮依赖 CSS Custom Highlight API;不支持它的旧浏览器会退化为整行描边。
|
|
366
366
|
|
|
367
|
+
## 0.11.5 更新
|
|
368
|
+
|
|
369
|
+
- **内容构建进度**:构建期间 `locator_status`、HTTP `status` 路由和 Web 面板会报告当前阶段(`files` / `sessions`)、已扫描条目数、已知总数和当前路径(`content.progress`),不再只有一个 `building: true`;构建结束或失败后该字段消失。
|
|
370
|
+
|
|
367
371
|
## 0.11.0 升级注意
|
|
368
372
|
|
|
373
|
+
- 切换 `contentIndexReasoning` 只重建会话,不再全量重建 185k 文件;调小内容 cap 会在下次启动重建,避免旧数据继续越预算可搜;`locator_find` 支持 `offset`;面板可一键复制当前已加载/过滤结果的路径。
|
|
374
|
+
|
|
369
375
|
- 状态/面板会显示 **全量内容** 与 **含思考内容**;客户端语言优先跟随宿主 `<html lang>`(DSH locale),没有时退回浏览器语言。
|
|
370
376
|
|
|
371
377
|
- 宿主 `connection` 服务在插件启动时尚未就绪也不会永久丢路由:先注册、每个请求再检查并 503;确实没有 connection 的 host 可设 `httpConnectionOptional: true`,退回宿主鉴权 + 同源 Fetch 检查(默认 false)。
|
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
|
package/client.js
CHANGED
|
@@ -199,6 +199,7 @@ body[data-ds-dark-theme] .dsh-locator-overlay{background:var(--dsw-alias-bg-mask
|
|
|
199
199
|
asc: 'Ascending', descOrder: 'Descending',
|
|
200
200
|
groupContent: 'Content', groupFiles: 'Files', groupDirs: 'Folders',
|
|
201
201
|
relevance: 'by relevance', contentBuilding: 'indexing… {files} files / {messages} messages',
|
|
202
|
+
contentProgressFiles: 'indexing… {scanned}/{total} files', contentProgressSessions: 'indexing… {scanned}/{total} sessions',
|
|
202
203
|
contentShort: 'Type at least 3 characters to search bodies and sessions (Ctrl+F handles shorter queries)',
|
|
203
204
|
contentDisabled: 'Content index is disabled (contentIndex: false)',
|
|
204
205
|
contentCapped: 'first {n}', showing: 'first {n}', deduped: '{n} name hits merged into content', loading: 'Searching…',
|
|
@@ -236,6 +237,7 @@ body[data-ds-dark-theme] .dsh-locator-overlay{background:var(--dsw-alias-bg-mask
|
|
|
236
237
|
contentWarning: 'Index warning: {list}', contentBudget: 'Content index budget reached; some files are not indexed', contentTooShort: 'Content needs at least 3 characters (use Ctrl+F for shorter searches)', contentTimeout: 'Content search timed out; narrow the query or scope', contentBadChars: 'Content search does not support NUL/control characters',
|
|
237
238
|
panelCaseShort: 'Aa', panelWholeShort: 'Word', panelModeLabel: 'Mode',
|
|
238
239
|
watchDegraded: 'watcher degraded; periodic refresh active',
|
|
240
|
+
copyAll: 'Copy paths', copiedAll: 'Copied {n} paths',
|
|
239
241
|
contentFullIndex: 'full-index', contentReasoningIndex: 'reasoning-indexed',
|
|
240
242
|
panelFilter: 'Filter loaded results…', filterEmpty: 'No loaded result matches this filter', panelLoadMore: 'Load more', panelHistory: 'Recent searches', panelHistoryClear: 'Clear',
|
|
241
243
|
},
|
|
@@ -247,6 +249,7 @@ contentWarning: 'Index warning: {list}', contentBudget: 'Content index budget re
|
|
|
247
249
|
asc: '升序', descOrder: '降序',
|
|
248
250
|
groupContent: '内容', groupFiles: '文件', groupDirs: '目录',
|
|
249
251
|
relevance: '按相关度', contentBuilding: '索引构建中… {files} 文件 / {messages} 消息',
|
|
252
|
+
contentProgressFiles: '索引构建中… 文件 {scanned}/{total}', contentProgressSessions: '索引构建中… 会话 {scanned}/{total}',
|
|
250
253
|
contentShort: '输入至少 3 个字符后搜索正文与会话(更短的词请用 Ctrl+F)',
|
|
251
254
|
contentDisabled: '内容索引已关闭(contentIndex: false)',
|
|
252
255
|
contentCapped: '前 {n} 条', showing: '前 {n} 条', deduped: '{n} 条文件命中已并入内容', loading: '搜索中…',
|
|
@@ -284,6 +287,7 @@ contentWarning: 'Index warning: {list}', contentBudget: 'Content index budget re
|
|
|
284
287
|
contentWarning: '索引警告:{list}', contentBudget: '内容索引已达预算上限,部分文件未被收录', contentTooShort: '内容搜索至少需要 3 个字符(更短的词请用 Ctrl+F 在会话内查找)', contentTimeout: '内容搜索超时,请缩小关键词或范围', contentBadChars: '内容搜索不支持 NUL/控制字符',
|
|
285
288
|
panelCaseShort: 'Aa', panelWholeShort: '全词', panelModeLabel: '模式',
|
|
286
289
|
watchDegraded: '文件监听降级,正在周期刷新',
|
|
290
|
+
copyAll: '复制路径', copiedAll: '已复制 {n} 条路径',
|
|
287
291
|
contentFullIndex: '全量内容', contentReasoningIndex: '含思考内容',
|
|
288
292
|
panelFilter: '过滤当前结果…', filterEmpty: '已加载结果中没有符合过滤条件的内容', panelLoadMore: '加载更多', panelHistory: '最近搜索', panelHistoryClear: '清空',
|
|
289
293
|
},
|
|
@@ -295,6 +299,7 @@ contentWarning: '索引警告:{list}', contentBudget: '内容索引已达预
|
|
|
295
299
|
asc: 'Ascendente', descOrder: 'Descendente',
|
|
296
300
|
groupContent: 'Contenido', groupFiles: 'Archivos', groupDirs: 'Carpetas',
|
|
297
301
|
relevance: 'por relevancia', contentBuilding: 'indexando… {files} archivos / {messages} mensajes',
|
|
302
|
+
contentProgressFiles: 'indexando… {scanned}/{total} archivos', contentProgressSessions: 'indexando… {scanned}/{total} sesiones',
|
|
298
303
|
contentShort: 'Escribe al menos 3 caracteres para buscar contenido y sesiones (Ctrl+F para consultas cortas)',
|
|
299
304
|
contentDisabled: 'Índice de contenido desactivado (contentIndex: false)',
|
|
300
305
|
contentCapped: 'primeros {n}', showing: 'primeros {n}', deduped: '{n} aciertos de nombre fusionados', loading: 'Buscando…',
|
|
@@ -332,6 +337,7 @@ contentWarning: '索引警告:{list}', contentBudget: '内容索引已达预
|
|
|
332
337
|
contentWarning: 'Aviso del índice: {list}', contentBudget: 'Se alcanzó el presupuesto del índice; algunos archivos no están indexados', contentTooShort: 'El contenido requiere al menos 3 caracteres (usa Ctrl+F para búsquedas más cortas)', contentTimeout: 'La búsqueda de contenido agotó el tiempo; reduce la consulta o el ámbito', contentBadChars: 'La búsqueda de contenido no admite NUL/caracteres de control',
|
|
333
338
|
panelCaseShort: 'Aa', panelWholeShort: 'Palabra', panelModeLabel: 'Modo',
|
|
334
339
|
watchDegraded: 'vigilante degradado; refresco periódico activo',
|
|
340
|
+
copyAll: 'Copiar rutas', copiedAll: 'Se copiaron {n} rutas',
|
|
335
341
|
contentFullIndex: 'índice completo', contentReasoningIndex: 'razonamiento indexado',
|
|
336
342
|
panelFilter: 'Filtrar resultados cargados…', filterEmpty: 'Ningún resultado cargado coincide con el filtro', panelLoadMore: 'Cargar más', panelHistory: 'Búsquedas recientes', panelHistoryClear: 'Borrar',
|
|
337
343
|
},
|
|
@@ -343,6 +349,7 @@ contentWarning: 'Aviso del índice: {list}', contentBudget: 'Se alcanzó el pres
|
|
|
343
349
|
asc: 'Ascendente', descOrder: 'Descendente',
|
|
344
350
|
groupContent: 'Conteúdo', groupFiles: 'Arquivos', groupDirs: 'Pastas',
|
|
345
351
|
relevance: 'por relevância', contentBuilding: 'indexando… {files} arquivos / {messages} mensagens',
|
|
352
|
+
contentProgressFiles: 'indexando… {scanned}/{total} arquivos', contentProgressSessions: 'indexando… {scanned}/{total} sessões',
|
|
346
353
|
contentShort: 'Digite pelo menos 3 caracteres para buscar conteúdo e sessões (Ctrl+F para consultas curtas)',
|
|
347
354
|
contentDisabled: 'Índice de conteúdo desativado (contentIndex: false)',
|
|
348
355
|
contentCapped: 'primeiros {n}', showing: 'primeiros {n}', deduped: '{n} acertos de nome mesclados', loading: 'Buscando…',
|
|
@@ -380,6 +387,7 @@ contentWarning: 'Aviso del índice: {list}', contentBudget: 'Se alcanzó el pres
|
|
|
380
387
|
contentWarning: 'Aviso do índice: {list}', contentBudget: 'O orçamento do índice foi atingido; alguns arquivos não estão indexados', contentTooShort: 'O conteúdo exige pelo menos 3 caracteres (use Ctrl+F para buscas menores)', contentTimeout: 'A busca de conteúdo excedeu o tempo; reduza a consulta ou o escopo', contentBadChars: 'A busca de conteúdo não suporta NUL/caracteres de controle',
|
|
381
388
|
panelCaseShort: 'Aa', panelWholeShort: 'Palavra', panelModeLabel: 'Modo',
|
|
382
389
|
watchDegraded: 'watcher degradado; atualização periódica ativa',
|
|
390
|
+
copyAll: 'Copiar caminhos', copiedAll: '{n} caminhos copiados',
|
|
383
391
|
contentFullIndex: 'índice completo', contentReasoningIndex: 'raciocínio indexado',
|
|
384
392
|
panelFilter: 'Filtrar resultados carregados…', filterEmpty: 'Nenhum resultado carregado corresponde ao filtro', panelLoadMore: 'Carregar mais', panelHistory: 'Buscas recentes', panelHistoryClear: 'Limpar',
|
|
385
393
|
},
|
|
@@ -391,6 +399,7 @@ contentWarning: 'Aviso do índice: {list}', contentBudget: 'O orçamento do índ
|
|
|
391
399
|
asc: 'आरोही', descOrder: 'अवरोही',
|
|
392
400
|
groupContent: 'सामग्री', groupFiles: 'फ़ाइलें', groupDirs: 'फ़ोल्डर',
|
|
393
401
|
relevance: 'प्रासंगिकता से', contentBuilding: 'इंडेक्स बन रहा है… {files} फ़ाइलें / {messages} संदेश',
|
|
402
|
+
contentProgressFiles: 'इंडेक्स बन रहा है… {scanned}/{total} फ़ाइलें', contentProgressSessions: 'इंडेक्स बन रहा है… {scanned}/{total} सत्र',
|
|
394
403
|
contentShort: 'सामग्री और सत्र खोजने के लिए कम से कम 3 अक्षर लिखें (छोटी खोज के लिए Ctrl+F)',
|
|
395
404
|
contentDisabled: 'सामग्री इंडेक्स बंद है (contentIndex: false)',
|
|
396
405
|
contentCapped: 'पहले {n}', showing: 'पहले {n}', deduped: '{n} नाम-परिणाम सामग्री में मिलाए', loading: 'खोज रहे हैं…',
|
|
@@ -428,6 +437,7 @@ contentWarning: 'Aviso do índice: {list}', contentBudget: 'O orçamento do índ
|
|
|
428
437
|
contentWarning: 'इंडेक्स चेतावनी: {list}', contentBudget: 'सामग्री इंडेक्स बजट पूरा; कुछ फ़ाइलें इंडेक्स नहीं हैं', contentTooShort: 'सामग्री के लिए कम से कम 3 अक्षर चाहिए (छोटी खोज के लिए Ctrl+F)', contentTimeout: 'सामग्री खोज का समय समाप्त; क्वेरी या क्षेत्र घटाएँ', contentBadChars: 'सामग्री खोज NUL/नियंत्रण अक्षर नहीं लेती',
|
|
429
438
|
panelCaseShort: 'Aa', panelWholeShort: 'शब्द', panelModeLabel: 'मोड',
|
|
430
439
|
watchDegraded: 'वॉचर क्षीण; आवधिक रिफ्रेश सक्रिय',
|
|
440
|
+
copyAll: 'पथ कॉपी करें', copiedAll: '{n} पथ कॉपी हुए',
|
|
431
441
|
contentFullIndex: 'पूर्ण इंडेक्स', contentReasoningIndex: 'reasoning इंडेक्स',
|
|
432
442
|
panelFilter: 'लोड किए गए परिणाम छाँटें…', filterEmpty: 'लोड किए गए परिणामों में फ़िल्टर से मेल नहीं', panelLoadMore: 'और लोड करें', panelHistory: 'हाल की खोजें', panelHistoryClear: 'साफ़ करें',
|
|
433
443
|
},
|
|
@@ -1983,6 +1993,12 @@ self.onmessage = event => {
|
|
|
1983
1993
|
copyText(hit.path).then(() => notify(t('copiedPath'))).catch(() => {})
|
|
1984
1994
|
}, [notify])
|
|
1985
1995
|
|
|
1996
|
+
const copyAll = useCallback(() => {
|
|
1997
|
+
const paths = rows.map(entry => entry.hit.path).filter(path => typeof path === 'string' && path !== '')
|
|
1998
|
+
if (paths.length === 0) return
|
|
1999
|
+
copyText(paths.join('\n')).then(() => notify(t('copiedAll', { n: paths.length }))).catch(() => {})
|
|
2000
|
+
}, [notify, rows])
|
|
2001
|
+
|
|
1986
2002
|
const reveal = useCallback(hit => {
|
|
1987
2003
|
if (!hit || loading) return
|
|
1988
2004
|
post('/dsh-locator/reveal', { path: hit.path }).then(() => notify(t('revealed'))).catch(() => copy(hit))
|
|
@@ -2267,6 +2283,24 @@ self.onmessage = event => {
|
|
|
2267
2283
|
if (code === 'invalid-control-char') return t('contentBadChars')
|
|
2268
2284
|
return code
|
|
2269
2285
|
}
|
|
2286
|
+
// Show the live build counters (phase + scanned/total + current path) when
|
|
2287
|
+
// the host publishes them; fall back to the aggregate counters otherwise.
|
|
2288
|
+
const shortProgressPath = value => {
|
|
2289
|
+
const text = String(value)
|
|
2290
|
+
return text.length <= 48 ? text : '…' + text.slice(-47)
|
|
2291
|
+
}
|
|
2292
|
+
const contentProgressText = () => {
|
|
2293
|
+
const progress = content !== undefined && content.progress ? content.progress : null
|
|
2294
|
+
const aggregate = () => t('contentBuilding', { files: content?.files ?? 0, messages: content?.messages ?? 0 })
|
|
2295
|
+
if (progress === null || typeof progress.scanned !== 'number') return aggregate()
|
|
2296
|
+
const total = typeof progress.total === 'number' && progress.total > 0 ? progress.total.toLocaleString() : ''
|
|
2297
|
+
if (total === '') return aggregate()
|
|
2298
|
+
const text = t(progress.phase === 'sessions' ? 'contentProgressSessions' : 'contentProgressFiles', {
|
|
2299
|
+
scanned: progress.scanned.toLocaleString(),
|
|
2300
|
+
total,
|
|
2301
|
+
})
|
|
2302
|
+
return typeof progress.path === 'string' && progress.path !== '' ? text + ' · ' + shortProgressPath(progress.path) : text
|
|
2303
|
+
}
|
|
2270
2304
|
const renderGroup = (key, label, group, extra) => {
|
|
2271
2305
|
if (!scopes[key] || group === undefined) return null
|
|
2272
2306
|
const hits = Array.isArray(group.hits) ? group.hits : []
|
|
@@ -2278,7 +2312,7 @@ self.onmessage = event => {
|
|
|
2278
2312
|
const budget = key === 'content' && group.truncated === true ? t('contentBudget') : null
|
|
2279
2313
|
const note = key === 'content'
|
|
2280
2314
|
? (matchMode === 'regex' ? t('panelRegexPaused')
|
|
2281
|
-
: contentBuilding ?
|
|
2315
|
+
: contentBuilding ? contentProgressText()
|
|
2282
2316
|
: (content?.capped ? t('contentCapped', { n: count }) : (query.trim() !== '' ? t('relevance') : null)))
|
|
2283
2317
|
: (group.deduped > 0 ? t('deduped', { n: group.deduped }) : (group.truncated ? t('showing', { n: hits.length }) : null))
|
|
2284
2318
|
const combinedNote = [note, warnings, budget].filter(value => value !== null && value !== '').join(' · ')
|
|
@@ -2441,6 +2475,9 @@ self.onmessage = event => {
|
|
|
2441
2475
|
+ (status && status.scanning ? ' · ' + t('indexing') : '')
|
|
2442
2476
|
+ (contentBuilding ? ' · ' + t('indexing') : '')),
|
|
2443
2477
|
h('span', { className: 'grow' }),
|
|
2478
|
+
rows.length > 0
|
|
2479
|
+
? h('button', { className: 'dsh-locator-dirbtn', onClick: copyAll, title: t('copyAll') }, t('copyAll'))
|
|
2480
|
+
: null,
|
|
2444
2481
|
canLoadMore
|
|
2445
2482
|
? h('button', { className: 'dsh-locator-dirbtn', disabled: loadingMore, onClick: loadMore }, loadingMore ? t('loading') : t('panelLoadMore'))
|
|
2446
2483
|
: null,
|
package/lib/combined.d.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* of a path that appears both as a body hit and a name hit.
|
|
10
10
|
* @module dsh-locator/combined
|
|
11
11
|
*/
|
|
12
|
-
import type { ContentHit, ContentState } from './content.ts';
|
|
12
|
+
import type { ContentHit, ContentProgress, ContentState } from './content.ts';
|
|
13
13
|
import type { ContentCount, ContentCountMode, ContentMatchMode, ContentSearchOptions, ContentSearchResult } from './content-search.ts';
|
|
14
14
|
import type { SearchArgs, SearchHit, SearchResult } from './runtime.ts';
|
|
15
15
|
/** Which groups a combined request asked for; every scope is on by default. */
|
|
@@ -70,6 +70,8 @@ export interface ContentGroup {
|
|
|
70
70
|
sessions: number;
|
|
71
71
|
messages: number;
|
|
72
72
|
truncated: boolean;
|
|
73
|
+
/** Live build progress while `building`; the panel shows the counters. */
|
|
74
|
+
progress?: ContentProgress;
|
|
73
75
|
/** Wall-clock time of the content lookup; 0 when it was skipped. */
|
|
74
76
|
tookMs: number;
|
|
75
77
|
error?: string;
|
package/lib/combined.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combined.d.ts","sourceRoot":"","sources":["../src/combined.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"combined.d.ts","sourceRoot":"","sources":["../src/combined.ts"],"names":[],"mappings":"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"}
|
package/lib/combined.js
CHANGED
|
@@ -200,6 +200,7 @@ async function contentGroup(deps, request, ask) {
|
|
|
200
200
|
sessions: state?.sessions ?? 0,
|
|
201
201
|
messages: state?.messages ?? 0,
|
|
202
202
|
truncated: state?.truncated ?? false,
|
|
203
|
+
...(state?.progress === undefined ? {} : { progress: state.progress }),
|
|
203
204
|
tookMs: 0,
|
|
204
205
|
};
|
|
205
206
|
};
|
|
@@ -243,6 +244,7 @@ async function contentGroup(deps, request, ask) {
|
|
|
243
244
|
sessions: state?.sessions ?? 0,
|
|
244
245
|
messages: state?.messages ?? 0,
|
|
245
246
|
truncated: state?.truncated ?? false,
|
|
247
|
+
...(state?.progress === undefined ? {} : { progress: state.progress }),
|
|
246
248
|
tookMs: Date.now() - started,
|
|
247
249
|
...(result.error === undefined ? {} : { error: result.error }),
|
|
248
250
|
};
|
package/lib/combined.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combined.js","sourceRoot":"","sources":["../src/combined.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"combined.js","sourceRoot":"","sources":["../src/combined.ts"],"names":[],"mappings":"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"}
|
package/lib/content.d.ts
CHANGED
|
@@ -31,6 +31,26 @@ export interface ContentHit {
|
|
|
31
31
|
line?: number;
|
|
32
32
|
score: number;
|
|
33
33
|
}
|
|
34
|
+
/** Which half of the content build a progress record belongs to. */
|
|
35
|
+
export type ContentProgressPhase = 'files' | 'sessions';
|
|
36
|
+
/**
|
|
37
|
+
* Live progress for the content build. It only exists while `building` is
|
|
38
|
+
* true, so the status endpoint, the Web panel and `locator_status` can show
|
|
39
|
+
* what a long first build is doing instead of a bare boolean.
|
|
40
|
+
*/
|
|
41
|
+
export interface ContentProgress {
|
|
42
|
+
phase: ContentProgressPhase;
|
|
43
|
+
/** Entries examined: engine entries for files, session logs for sessions. */
|
|
44
|
+
scanned: number;
|
|
45
|
+
/** Entries stored by this phase: indexed files or indexed session logs. */
|
|
46
|
+
indexed: number;
|
|
47
|
+
/** Known total for this phase; absent when it is not known yet. */
|
|
48
|
+
total?: number;
|
|
49
|
+
/** Most recently examined path, for a live "current item" hint. */
|
|
50
|
+
path?: string;
|
|
51
|
+
/** Epoch milliseconds when this phase started. */
|
|
52
|
+
startedAt: number;
|
|
53
|
+
}
|
|
34
54
|
export interface ContentState {
|
|
35
55
|
building: boolean;
|
|
36
56
|
files: number;
|
|
@@ -44,6 +64,8 @@ export interface ContentState {
|
|
|
44
64
|
*/
|
|
45
65
|
warnings: string[];
|
|
46
66
|
updatedAt: number;
|
|
67
|
+
/** Live build progress; absent when no build is running. */
|
|
68
|
+
progress?: ContentProgress;
|
|
47
69
|
/** Both numeric content caps are explicitly unlimited. */
|
|
48
70
|
fullIndex?: boolean;
|
|
49
71
|
/** Assistant reasoning/thinking blocks are included in session docs. */
|
|
@@ -97,6 +119,7 @@ export declare class ContentIndex {
|
|
|
97
119
|
private readonly lockToken;
|
|
98
120
|
private workerSeq;
|
|
99
121
|
private pendingStart;
|
|
122
|
+
private progress;
|
|
100
123
|
private dbIdentity;
|
|
101
124
|
/** Session id → indexed session log path, for session-scoped content search. */
|
|
102
125
|
private readonly sessionPaths;
|
|
@@ -181,6 +204,10 @@ export declare class ContentIndex {
|
|
|
181
204
|
private recoverExternal;
|
|
182
205
|
/** Whether the engine is re-scanning, which can move its dump cursor. */
|
|
183
206
|
private engineRescanning;
|
|
207
|
+
/** Remove all session documents, keeping file documents and their bytes. */
|
|
208
|
+
private clearSessions;
|
|
209
|
+
/** Whether the stored rows already respect the configured file/body caps. */
|
|
210
|
+
private capsSatisfied;
|
|
184
211
|
private readFlag;
|
|
185
212
|
private writeFlag;
|
|
186
213
|
/**
|
|
@@ -194,6 +221,16 @@ export declare class ContentIndex {
|
|
|
194
221
|
private breathe;
|
|
195
222
|
/** True when a session log has been quiet long enough to be read safely. */
|
|
196
223
|
private settled;
|
|
224
|
+
/** Start one build phase; `total` becomes the progress denominator when known. */
|
|
225
|
+
private beginPhase;
|
|
226
|
+
/** Forget live progress once a build finishes, fails or is abandoned. */
|
|
227
|
+
private clearProgress;
|
|
228
|
+
/** Count one examined entry and keep its path for the "current item" hint. */
|
|
229
|
+
private scanEntry;
|
|
230
|
+
/** Count one entry that produced a stored row. */
|
|
231
|
+
private countIndexed;
|
|
232
|
+
/** Total engine entries, used as the files-phase progress denominator. */
|
|
233
|
+
private engineEntries;
|
|
197
234
|
private finish;
|
|
198
235
|
/**
|
|
199
236
|
* Rebuild the session id → session log path map from the persisted sources.
|
package/lib/content.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAYH,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAiB,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACxG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AA8BlD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,wEAAwE;IACxE,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAClC,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,wEAAwE;IACxE,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAA;CACrD;AAcD,qBAAa,YAAY;
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}
|