dsh-locator 0.8.0 → 0.8.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/CHANGELOG.md +24 -0
- package/README-es.md +6 -16
- package/README-hi.md +6 -16
- package/README-pt.md +6 -16
- package/README.en.md +7 -17
- package/README.md +8 -17
- package/client.js +165 -65
- package/lib/combined.js +7 -1
- package/lib/combined.js.map +1 -1
- package/lib/content-search.d.ts.map +1 -1
- package/lib/content-search.js +3 -0
- package/lib/content-search.js.map +1 -1
- package/lib/content.d.ts +2 -0
- package/lib/content.d.ts.map +1 -1
- package/lib/content.js +21 -6
- package/lib/content.js.map +1 -1
- package/lib/find.d.ts.map +1 -1
- package/lib/find.js +1 -0
- package/lib/find.js.map +1 -1
- package/package.json +1 -1
- package/src/combined.ts +2 -1
- package/src/content-search.ts +3 -0
- package/src/content.ts +24 -7
- package/src/find.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.8.2 — 2026-11-12
|
|
4
|
+
|
|
5
|
+
Robustness pass over the 0.8.1 review fixes.
|
|
6
|
+
|
|
7
|
+
* A cancelled jump now also drops its scroll lock: the correction timers and scroll/pointer listeners used to survive an `Esc`, a new jump or a session switch while the highlight was cleared.
|
|
8
|
+
* A detached Range self-heals: when the host re-renders the target row, the session watcher re-resolves the row and re-applies the highlight instead of silently clearing it.
|
|
9
|
+
* `conversationScope` prefers a visible conversation pane, so a hidden main pane or a sidebar copy cannot capture the highlight.
|
|
10
|
+
* The content group no longer calls `contentStatus()` outside the guard; a throwing status cannot fail the whole combined response (covered by a new test) and only the content group reports the error.
|
|
11
|
+
* Panel callbacks (reveal/open/activate/insert) no longer act on stale rows while a newer query is loading.
|
|
12
|
+
* The panel and its transient notice share one slot injection, so both are disposed together.
|
|
13
|
+
* Tests: 38.
|
|
14
|
+
|
|
15
|
+
## 0.8.1 — 2026-11-12
|
|
16
|
+
|
|
17
|
+
Pre-delivery review fixes for 0.8.0, plus an exact DOM anchor for assistant messages.
|
|
18
|
+
|
|
19
|
+
* **Exact anchors for every session hit**: the content index now stores the host's conversation node key (`13:input-message<id>` for user messages, `14:assistant-step<turn>:<step>` for assistant steps), so session jumps match the right row instead of falling back to the first phrase in the transcript. The schema moves to 3: an existing content database rebuilds once in the background after upgrading.
|
|
20
|
+
* **Highlight persists while reading**: releasing the scroll lock (wheel, touch, pointer, keys) no longer clears the highlight — only `Esc`, a new jump, a session change or plugin disposal clear it. The bounded recenter updates its expected scroll position after each correction.
|
|
21
|
+
* **Jump feedback after the panel closes**: a small shell notice reports "opened session", "could not locate the message" and the phrase fallback, instead of toasting into a closed panel.
|
|
22
|
+
* **Cancellation**: a jump can now be cancelled while it is still looking for the session/message, so a rapid second double-click, `Esc` or plugin disposal cannot leave timers, observers or highlights behind.
|
|
23
|
+
* Fixed: the combined response field is `contentEnabled` (the panel read `availableContent`), per-group errors were swallowed, stale rows stayed keyboard-activatable after unchecking a scope, loading a new query gave no visible feedback, Enter on panel buttons activated a result, `Alt+1–3` on macOS and Home/End in the search box were intercepted.
|
|
24
|
+
* Docs (five languages): the old panel section was replaced with the 0.8 scopes/grouping/highlight behaviour; the limitation note now describes the assistant node-key anchor and the one-time rebuild.
|
|
25
|
+
* Tests: 37 (session node-key assertions added); verify still checks client syntax and the combined route.
|
|
26
|
+
|
|
3
27
|
## 0.8.0 — 2026-11-12
|
|
4
28
|
|
|
5
29
|
Search and locate: all three stores in one panel, and a Word/Notepad++-style highlight in the conversation.
|
package/README-es.md
CHANGED
|
@@ -62,7 +62,7 @@ Buscar archivos tiene dos formas:
|
|
|
62
62
|
| Capacidad | Cómo se usa |
|
|
63
63
|
|---|---|
|
|
64
64
|
| Búsqueda por nombre / ruta | `locator_search`, o el modo por defecto del panel |
|
|
65
|
-
| Búsqueda en el cuerpo del archivo | `locator_find`, o el
|
|
65
|
+
| Búsqueda en el cuerpo del archivo | `locator_find`, o el ámbito **Contenido** del panel (activo por defecto) |
|
|
66
66
|
| Búsqueda en sesiones de DSH | Las mismas herramientas; los resultados llevan `sessionId` / `messageId` y el panel puede volver a la conversación |
|
|
67
67
|
| Abrir / mostrar | Las herramientas devuelven rutas; el panel abre con doble clic, `Ctrl+O` abre y `Ctrl+Enter` inserta `@"ruta"` en el compositor |
|
|
68
68
|
| Consumo externo | `locator_export` escribe una réplica SQLite de solo lectura |
|
|
@@ -162,23 +162,13 @@ La construcción ocurre dentro del proceso anfitrión de DSH, pero las lecturas
|
|
|
162
162
|
|
|
163
163
|
## Panel web
|
|
164
164
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
Pulsa `Ctrl+Shift+F` en cualquier parte de la GUI web, o haz clic en la lupa del pie de la barra lateral.
|
|
168
|
-
|
|
169
|
-
- Una consulta vacía lista las entradas modificadas más recientemente; al escribir se usa la misma sintaxis que las herramientas tras 110 ms de debounce.
|
|
170
|
-
- Haz clic en la cabecera de una columna para ordenar por nombre, tamaño, fecha de modificación o ruta.
|
|
171
|
-
- Alterna **solo archivos** / **solo directorios** para filtrar el tipo.
|
|
172
|
-
- Marca **Buscar contenido** para pasar de nombres a cuerpos de archivo y mensajes de sesión; mientras se construye el índice el pie muestra el estado y el panel vuelve a consultar.
|
|
173
|
-
- `↑`/`↓` seleccionan, `Enter` copia la ruta, `Ctrl+O` abre, `Ctrl+Enter` inserta `@"ruta"` en el compositor y `Esc` cierra.
|
|
174
|
-
- Doble clic en un archivo lo muestra en Explorer/Finder/`xdg-open`; doble clic en una sesión abre la conversación en el mensaje encontrado.
|
|
175
|
-
- El texto del panel sigue `navigator.language` (zh/en/es/pt/hi).
|
|
176
|
-
|
|
177
|
-
El panel usa rutas del mismo origen — `/dsh-locator/search`, `/dsh-locator/content`, `/dsh-locator/content/rebuild`, `/dsh-locator/combined`, `/dsh-locator/status`, `/dsh-locator/reveal`, `/dsh-locator/open` — así que no necesita otro servidor ni otro puerto. Los perfiles sin servidor web no lo montan.
|
|
165
|
+
Pulsa `Ctrl+Shift+F` en la GUI web, o haz clic en la lupa del pie de la barra lateral. El panel usa rutas del mismo origen (`search`, `content`, `content/rebuild`, `combined`, `status`, `reveal`, `open`), sin otro servidor ni otro puerto.
|
|
178
166
|
|
|
179
167
|
- **Los tres ámbitos están activos por defecto**: contenido (cuerpos + sesiones), archivos y carpetas; desmarca cualquiera para acotar. Los resultados se agrupan **contenido → archivos → carpetas** con el recuento por grupo; el contenido se ordena por relevancia y los grupos de nombres siguen el menú de orden.
|
|
180
168
|
- **Doble clic o `Enter` activa un resultado**: una sesión abre la conversación y pinta las palabras encontradas con un resaltado ámbar translúcido que sigue el desplazamiento, se centra al llegar y se limpia con `Esc`; archivos y carpetas se muestran en el gestor de archivos. `Ctrl+Shift+C` copia la ruta, `Ctrl+O` abre, `Ctrl+Enter` inserta `@file` y `Alt+1–3` alterna los ámbitos.
|
|
181
|
-
- Las consultas de contenido requieren al menos dos caracteres; las consultas vacías o de un carácter no inician la construcción
|
|
169
|
+
- Las consultas de contenido requieren al menos dos caracteres; las consultas vacías o de un carácter no inician la construcción. Mientras construye, el grupo de contenido muestra el progreso y los nombres responden al momento; la elección de ámbitos se recuerda.
|
|
170
|
+
- Teclado: `↑`/`↓`, `Home`/`End`, `PageUp`/`PageDown` mueven, `Enter` activa y `Esc` cierra; el diálogo atrapa el foco y lo restaura al cerrar. El texto sigue `navigator.language` (zh/en/es/pt/hi).
|
|
171
|
+
|
|
182
172
|
|
|
183
173
|
## Herramientas
|
|
184
174
|
|
|
@@ -388,7 +378,7 @@ DeepSeek Harness
|
|
|
388
378
|
- macOS usa FSEvents (recursivo) en los binarios publicados; una compilación con `CGO_ENABLED=0` cae a kqueue, limitado a 4.096 directorios, con cambios de contenido dependientes de la reconstrucción periódica.
|
|
389
379
|
- USN/MFT de Windows es opcional y solo se usa si el proceso puede leer el volumen y el diario está activo; si no, se usa el recorrido portátil.
|
|
390
380
|
|
|
391
|
-
- Los aciertos en el cuerpo de un archivo se muestran por ahora en el gestor de archivos (la vista por línea dentro de DSH es el siguiente paso); los mensajes del asistente se
|
|
381
|
+
- Los aciertos en el cuerpo de un archivo se muestran por ahora en el gestor de archivos (la vista por línea dentro de DSH es el siguiente paso); los mensajes del asistente ahora se anclan por su clave de nodo `turn:step`, con frase solo como reserva. Actualizar a 0.8.1 reconstruye una vez la base de contenido por el nuevo campo.
|
|
392
382
|
- El resaltado dentro de la conversación usa la API CSS Custom Highlight; los navegadores antiguos sin ella caen a un contorno de fila.
|
|
393
383
|
|
|
394
384
|
## Memoria
|
package/README-hi.md
CHANGED
|
@@ -62,7 +62,7 @@ dsh plugin --profile web add dsh-locator
|
|
|
62
62
|
| क्षमता | कैसे इस्तेमाल करें |
|
|
63
63
|
|---|---|
|
|
64
64
|
| नाम / पाथ से खोज | `locator_search`, या पैनल का डिफ़ॉल्ट मोड |
|
|
65
|
-
| फ़ाइल के अंदरूनी टेक्स्ट से खोज | `locator_find`, या पैनल
|
|
65
|
+
| फ़ाइल के अंदरूनी टेक्स्ट से खोज | `locator_find`, या पैनल का **सामग्री** क्षेत्र (डिफ़ॉल्ट रूप से चालू) |
|
|
66
66
|
| DSH सेशन की सामग्री से खोज | वही टूल; परिणाम में `sessionId` / `messageId` आते हैं और पैनल उस बातचीत पर लौट सकता है |
|
|
67
67
|
| खोलना / दिखाना | टूल पाथ लौटाते हैं; पैनल डबल-क्लिक से दिखाता है, `Ctrl+O` खोलता है, `Ctrl+Enter` कंपोज़र में `@"पाथ"` डालता है |
|
|
68
68
|
| बाहरी उपयोग | `locator_export` केवल-पढ़ने वाला SQLite मिरर लिखता है |
|
|
@@ -162,23 +162,13 @@ Everything-शैली क्वेरी जो पाथ, आकार, ब
|
|
|
162
162
|
|
|
163
163
|
## वेब पैनल
|
|
164
164
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
Web GUI में कहीं भी `Ctrl+Shift+F` दबाएँ, या साइडबार के नीचे वाले आवर्धक लेंस पर क्लिक करें।
|
|
168
|
-
|
|
169
|
-
- खाली क्वेरी हाल में बदली एंट्री दिखाती है; टाइप करने पर 110ms डिबाउंस के बाद वही Everything-शैली सिंटैक्स चलता है।
|
|
170
|
-
- नाम, आकार, बदलाव की तिथि या पाथ से क्रमबद्ध करने के लिए कॉलम हेडर पर क्लिक करें।
|
|
171
|
-
- **केवल फ़ाइलें** / **केवल डायरेक्टरी** से प्रकार फ़िल्टर करें।
|
|
172
|
-
- **सामग्री खोजें** चुनकर नाम से बॉडी/सेशन खोज पर जाएँ; बिल्ड के दौरान फुटर स्थिति दिखाता है और पैनल खुद दोबारा क्वेरी करता है।
|
|
173
|
-
- `↑`/`↓` चुनते हैं, `Enter` पाथ कॉपी करता है, `Ctrl+O` खोलता है, `Ctrl+Enter` कंपोज़र में `@"पाथ"` डालता है, `Esc` बंद करता है।
|
|
174
|
-
- फ़ाइल पर डबल-क्लिक Explorer/Finder/`xdg-open` में दिखाता है; सेशन पर डबल-क्लिक उस बातचीत को मिले संदेश पर खोलता है।
|
|
175
|
-
- पैनल का टेक्स्ट `navigator.language` का पालन करता है (zh/en/es/pt/hi)।
|
|
176
|
-
|
|
177
|
-
पैनल उसी ओरिजिन के रूट इस्तेमाल करता है — `/dsh-locator/search`, `/dsh-locator/content`, `/dsh-locator/content/rebuild`, `/dsh-locator/combined`, `/dsh-locator/status`, `/dsh-locator/reveal`, `/dsh-locator/open` — इसलिए अलग सर्वर या पोर्ट नहीं चाहिए। बिना Web सर्वर वाले प्रोफ़ाइल में यह माउंट नहीं होता।
|
|
165
|
+
Web GUI में कहीं भी `Ctrl+Shift+F` दबाएँ, या साइडबार के नीचे वाले आवर्धक लेंस पर क्लिक करें। पैनल उसी ओरिजिन के रूट (`search`, `content`, `content/rebuild`, `combined`, `status`, `reveal`, `open`) इस्तेमाल करता है — अलग सर्वर या पोर्ट नहीं चाहिए।
|
|
178
166
|
|
|
179
167
|
- **तीनों क्षेत्र डिफ़ॉल्ट रूप से चालू हैं**: सामग्री (बॉडी + सत्र), फ़ाइलें और फ़ोल्डर; किसी को हटाकर दायरा घटाएँ। परिणाम **सामग्री → फ़ाइलें → फ़ोल्डर** में समूहित होते हैं और हर समूह पर गिनती दिखती है; सामग्री प्रासंगिकता से क्रमबद्ध होती है और नाम-समूह क्रम मेन्यू का पालन करते हैं।
|
|
180
168
|
- **डबल-क्लिक या `Enter` पर परिणाम सक्रिय होता है**: सत्र परिणाम बातचीत खोलकर मिले शब्दों पर पारभासी अंबर हाइलाइट लगाता है जो स्क्रॉल के साथ चलता है, पहुँचने पर केंद्रित होता है और `Esc` से हटता है; फ़ाइल/फ़ोल्डर फ़ाइल मैनेजर में दिखते हैं। `Ctrl+Shift+C` पथ कॉपी करता है, `Ctrl+O` खोलता है, `Ctrl+Enter` `@file` डालता है और `Alt+1–3` क्षेत्र बदलता है।
|
|
181
|
-
- सामग्री खोज के लिए कम से कम दो अक्षर चाहिए; खाली या एक-अक्षर की खोज
|
|
169
|
+
- सामग्री खोज के लिए कम से कम दो अक्षर चाहिए; खाली या एक-अक्षर की खोज इंडेक्स नहीं बनाती। बनते समय सामग्री-समूह प्रगति दिखाता है और नाम-परिणाम तुरंत आते हैं; क्षेत्र का चयन याद रहता है।
|
|
170
|
+
- कीबोर्ड: `↑`/`↓`, `Home`/`End`, `PageUp`/`PageDown` चलते हैं, `Enter` सक्रिय करता है और `Esc` बंद करता है; डायलॉग फ़ोकस रोककर बंद होने पर लौटाता है। टेक्स्ट `navigator.language` का पालन करता है (zh/en/es/pt/hi)।
|
|
171
|
+
|
|
182
172
|
|
|
183
173
|
## टूल्स
|
|
184
174
|
|
|
@@ -388,7 +378,7 @@ DeepSeek Harness
|
|
|
388
378
|
- macOS भेजे गए बाइनरी में FSEvents (रिकर्सिव) इस्तेमाल करता है; `CGO_ENABLED=0` बिल्ड kqueue पर जाता है, 4,096 डायरेक्टरी सीमा के साथ, और कंटेंट बदलाव समय-समय पर रीबिल्ड पर निर्भर रहते हैं।
|
|
389
379
|
- Windows USN/MFT वैकल्पिक है और केवल तब इस्तेमाल होता है जब प्रोसेस वॉल्यूम पढ़ सके और जर्नल सक्रिय हो; वरना पोर्टेबल वॉक चलता है।
|
|
390
380
|
|
|
391
|
-
- फ़ाइल-बॉडी परिणाम अभी फ़ाइल मैनेजर में दिखते हैं (DSH के अंदर पंक्ति-स्तरीय पूर्वावलोकन अगला कदम है); असिस्टेंट संदेश फ़्रेज़ से
|
|
381
|
+
- फ़ाइल-बॉडी परिणाम अभी फ़ाइल मैनेजर में दिखते हैं (DSH के अंदर पंक्ति-स्तरीय पूर्वावलोकन अगला कदम है); असिस्टेंट संदेश अब `turn:step` नोड कुंजी से ठीक-ठीक जुड़ते हैं, वरना फ़्रेज़ fallback। 0.8.1 पर अपग्रेड करने से नए फ़ील्ड के लिए कंटेंट डेटाबेस एक बार फिर बनता है।
|
|
392
382
|
- बातचीत के अंदर हाइलाइट CSS Custom Highlight API पर निर्भर है; पुराने ब्राउज़र में पंक्ति की रूपरेखा (outline) दिखती है।
|
|
393
383
|
|
|
394
384
|
## मेमोरी
|
package/README-pt.md
CHANGED
|
@@ -62,7 +62,7 @@ O `dsh-locator` junta os dois em um único plugin:
|
|
|
62
62
|
| Recurso | Como usar |
|
|
63
63
|
|---|---|
|
|
64
64
|
| Busca por nome / caminho | `locator_search`, ou o modo padrão do painel |
|
|
65
|
-
| Busca no corpo dos arquivos | `locator_find`, ou o
|
|
65
|
+
| Busca no corpo dos arquivos | `locator_find`, ou o escopo **Conteúdo** do painel (ativo por padrão) |
|
|
66
66
|
| Busca em sessões do DSH | As mesmas ferramentas; os resultados trazem `sessionId` / `messageId` e o painel pode voltar à conversa |
|
|
67
67
|
| Abrir / revelar | As ferramentas devolvem caminhos; o painel revela com duplo clique, `Ctrl+O` abre e `Ctrl+Enter` insere `@"caminho"` no compositor |
|
|
68
68
|
| Consumo externo | `locator_export` grava um espelho SQLite somente leitura |
|
|
@@ -162,23 +162,13 @@ A construção roda dentro do processo anfitrião do DSH, mas leituras de arquiv
|
|
|
162
162
|
|
|
163
163
|
## Painel web
|
|
164
164
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
Pressione `Ctrl+Shift+F` em qualquer lugar da GUI web, ou clique na lupa no pé da barra lateral.
|
|
168
|
-
|
|
169
|
-
- Consulta vazia lista as entradas modificadas mais recentemente; ao digitar, a mesma sintaxe das ferramentas é usada após 110 ms de debounce.
|
|
170
|
-
- Clique no cabeçalho de uma coluna para ordenar por nome, tamanho, data de modificação ou caminho.
|
|
171
|
-
- Alterne **somente arquivos** / **somente diretórios** para filtrar o tipo.
|
|
172
|
-
- Marque **Buscar conteúdo** para trocar nomes por corpos de arquivo e mensagens de sessão; enquanto o índice é construído o rodapé mostra o estado e o painel consulta de novo.
|
|
173
|
-
- `↑`/`↓` selecionam, `Enter` copia o caminho, `Ctrl+O` abre, `Ctrl+Enter` insere `@"caminho"` no compositor e `Esc` fecha.
|
|
174
|
-
- Duplo clique em um arquivo revela no Explorer/Finder/`xdg-open`; duplo clique em uma sessão abre a conversa na mensagem encontrada.
|
|
175
|
-
- O texto do painel segue `navigator.language` (zh/en/es/pt/hi).
|
|
176
|
-
|
|
177
|
-
O painel usa rotas de mesma origem — `/dsh-locator/search`, `/dsh-locator/content`, `/dsh-locator/content/rebuild`, `/dsh-locator/combined`, `/dsh-locator/status`, `/dsh-locator/reveal`, `/dsh-locator/open` — então não precisa de outro servidor nem de outra porta. Perfis sem servidor web não o montam.
|
|
165
|
+
Pressione `Ctrl+Shift+F` na GUI web, ou clique na lupa no pé da barra lateral. O painel usa rotas de mesma origem (`search`, `content`, `content/rebuild`, `combined`, `status`, `reveal`, `open`), sem outro servidor nem outra porta.
|
|
178
166
|
|
|
179
167
|
- **Os três escopos vêm ativados por padrão**: conteúdo (corpos + sessões), arquivos e pastas; desmarque qualquer um para restringir. Os resultados são agrupados **conteúdo → arquivos → pastas** com a contagem por grupo; o conteúdo é ordenado por relevância e os grupos de nomes seguem o menu de ordem.
|
|
180
168
|
- **Duplo clique ou `Enter` ativa um resultado**: uma sessão abre a conversa e pinta as palavras encontradas com destaque âmbar translúcido que acompanha a rolagem, é centralizado ao chegar e é limpo com `Esc`; arquivos e pastas são mostrados no gerenciador de arquivos. `Ctrl+Shift+C` copia o caminho, `Ctrl+O` abre, `Ctrl+Enter` insere `@file` e `Alt+1–3` alterna os escopos.
|
|
181
|
-
- Consultas de conteúdo exigem pelo menos dois caracteres; consultas vazias ou de um caractere não iniciam a construção
|
|
169
|
+
- Consultas de conteúdo exigem pelo menos dois caracteres; consultas vazias ou de um caractere não iniciam a construção. Durante a construção o grupo de conteúdo mostra o progresso e os nomes respondem na hora; a escolha de escopos é lembrada.
|
|
170
|
+
- Teclado: `↑`/`↓`, `Home`/`End`, `PageUp`/`PageDown` movem, `Enter` ativa e `Esc` fecha; o diálogo prende o foco e o restaura ao fechar. O texto segue `navigator.language` (zh/en/es/pt/hi).
|
|
171
|
+
|
|
182
172
|
|
|
183
173
|
## Ferramentas
|
|
184
174
|
|
|
@@ -388,7 +378,7 @@ DeepSeek Harness
|
|
|
388
378
|
- O macOS usa FSEvents (recursivo) nos binários publicados; uma compilação com `CGO_ENABLED=0` cai para kqueue, limitado a 4.096 diretórios, com mudanças de conteúdo dependendo da reconstrução periódica.
|
|
389
379
|
- USN/MFT do Windows é opcional e só é usado se o processo puder ler o volume e o diário estiver ativo; caso contrário, usa-se a varredura portátil.
|
|
390
380
|
|
|
391
|
-
- Resultados no corpo de arquivos abrem o gerenciador de arquivos por enquanto (a visualização por linha dentro do DSH é o próximo passo); mensagens do assistente são
|
|
381
|
+
- Resultados no corpo de arquivos abrem o gerenciador de arquivos por enquanto (a visualização por linha dentro do DSH é o próximo passo); mensagens do assistente agora são ancoradas pela chave de nó `turn:step`, com frase apenas como reserva. Atualizar para 0.8.1 reconstrói uma vez o banco de conteúdo pelo novo campo.
|
|
392
382
|
- O destaque dentro da conversa usa a API CSS Custom Highlight; navegadores antigos sem ela caem para um contorno na linha.
|
|
393
383
|
|
|
394
384
|
## Memória
|
package/README.en.md
CHANGED
|
@@ -62,7 +62,7 @@ File lookup has two shapes:
|
|
|
62
62
|
| Capability | How you use it |
|
|
63
63
|
|---|---|
|
|
64
64
|
| File name / path search | `locator_search`, or the panel's default mode |
|
|
65
|
-
| File body search | `locator_find`, or the panel's **
|
|
65
|
+
| File body search | `locator_find`, or the panel's **Content** scope (on by default) |
|
|
66
66
|
| DSH session search | Same tools; hits carry `sessionId` / `messageId`, so the panel can jump back to the conversation |
|
|
67
67
|
| Open / reveal | Tools return paths; the panel double-click reveals, `Ctrl+O` opens, `Ctrl+Enter` inserts a quoted `@"path"` into the composer |
|
|
68
68
|
| External consumption | `locator_export` writes a read-only SQLite mirror |
|
|
@@ -151,7 +151,7 @@ Searches the **bodies** of text files and DSH session messages and returns snipp
|
|
|
151
151
|
|
|
152
152
|
How the content index behaves:
|
|
153
153
|
|
|
154
|
-
- **Lazy by default.** Nothing is built at plugin start; the first content search (`locator_find` or the panel's
|
|
154
|
+
- **Lazy by default.** Nothing is built at plugin start; the first content search (`locator_find` or the panel's Content scope) starts the build in the background, and `contentLazy: false` restores the eager build. The first query reports `building: true` instead of an empty result with no hint.
|
|
155
155
|
- **Restart reuses the database.** An existing database is refreshed incrementally; a full build (session logs first, then file bodies) runs only when the database is missing, has a stale schema, was left unfinished by an interrupted build, or cannot be opened.
|
|
156
156
|
- **Incremental refresh** every `contentRefreshMs` (5 minutes by default) re-reads only files and sessions whose mtime changed; `0` disables it.
|
|
157
157
|
- **Archived and active sessions.** Archived sessions are skipped unless `contentIncludeArchived: true`; a session log that is still being written is indexed after it has been quiet for `contentActiveSessionDelayMs` (2 minutes), so the current log is not decompressed on every refresh. Deleted sessions leave the index when their files disappear.
|
|
@@ -162,23 +162,13 @@ The build runs inside the DSH host process, but file reads and zstd decoding are
|
|
|
162
162
|
|
|
163
163
|
## Web panel
|
|
164
164
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
Press `Ctrl+Shift+F` anywhere in the Web GUI, or click the magnifier at the sidebar foot.
|
|
168
|
-
|
|
169
|
-
- Empty query lists the most recently modified entries; typing runs the same Everything-style syntax after a 110 ms debounce.
|
|
170
|
-
- Click a column header to sort by name, size, modification time or path.
|
|
171
|
-
- Toggle **files only** / **directories only** to filter the kind.
|
|
172
|
-
- Tick **Search content** to switch from names to file bodies and session messages; while the index builds the footer shows the state and the panel re-polls.
|
|
173
|
-
- `↑`/`↓` select, `Enter` copies the path, `Ctrl+O` opens, `Ctrl+Enter` inserts a quoted `@"path"` into the composer, `Esc` closes.
|
|
174
|
-
- Double-click a file hit to reveal it in Explorer/Finder/`xdg-open`; double-click a session hit to open the conversation at the matched message.
|
|
175
|
-
- Panel text follows `navigator.language` (zh/en/es/pt/hi).
|
|
176
|
-
|
|
177
|
-
The panel talks to same-origin host routes — `/dsh-locator/search`, `/dsh-locator/content`, `/dsh-locator/content/rebuild`, `/dsh-locator/combined`, `/dsh-locator/status`, `/dsh-locator/reveal`, `/dsh-locator/open` — so it needs no second server and no extra port. Profiles without a Web server never mount it.
|
|
165
|
+
Press `Ctrl+Shift+F` anywhere in the Web GUI, or click the magnifier at the sidebar foot. The panel uses same-origin routes (`search`, `content`, `content/rebuild`, `combined`, `status`, `reveal`, `open`), so it needs no second server and no extra port.
|
|
178
166
|
|
|
179
167
|
- **All three scopes are on by default**: content (bodies + sessions), files and folders; uncheck any scope to narrow the search. Results are grouped **content → files → folders** with a count per group; content is ranked by relevance and name groups follow the sort menu.
|
|
180
168
|
- **Double-click or `Enter` activates a hit**: a session hit opens the conversation and paints the matched words with a translucent amber highlight that follows scrolling, is centered on arrival and clears with `Esc`; file/folder hits are revealed in the file manager. `Ctrl+Shift+C` copies the path, `Ctrl+O` opens, `Ctrl+Enter` inserts `@file`, and `Alt+1–3` toggles the scopes.
|
|
181
|
-
- Content queries need at least two characters; empty and one-character queries never start the content build.
|
|
169
|
+
- Content queries need at least two characters; empty and one-character queries never start the content build. While it builds the content group shows progress and name results return immediately; the scope choice is remembered.
|
|
170
|
+
- Keyboard: `↑`/`↓`, `Home`/`End`, `PageUp`/`PageDown` move, `Enter` activates, `Esc` closes; the dialog traps focus and restores it on close. Panel text follows `navigator.language` (zh/en/es/pt/hi).
|
|
171
|
+
|
|
182
172
|
|
|
183
173
|
## Tools
|
|
184
174
|
|
|
@@ -388,7 +378,7 @@ DeepSeek Harness
|
|
|
388
378
|
- macOS uses FSEvents (recursive) in the shipped binaries; a `CGO_ENABLED=0` build falls back to kqueue, capped at 4,096 directories, with content changes relying on the periodic rebuild.
|
|
389
379
|
- Windows USN/MFT is optional and only used when the process can read the volume and the journal is active; otherwise the portable walk is used.
|
|
390
380
|
|
|
391
|
-
- File-body hits currently reveal the file in the file manager (line-level preview inside DSH is next); assistant messages
|
|
381
|
+
- File-body hits currently reveal the file in the file manager (line-level preview inside DSH is next); assistant messages now anchor exactly through their `turn:step` node key, with a phrase fallback only when that row is missing. Upgrading to 0.8.1 rebuilds the content database once for the new node-key field.
|
|
392
382
|
- In-conversation highlighting uses the CSS Custom Highlight API; older browsers without it fall back to a row outline.
|
|
393
383
|
|
|
394
384
|
## Memory
|
package/README.md
CHANGED
|
@@ -61,7 +61,7 @@ dsh plugin --profile web add dsh-locator
|
|
|
61
61
|
| 能力 | 怎么用 |
|
|
62
62
|
|---|---|
|
|
63
63
|
| 文件名 / 路径搜索 | `locator_search`,或面板默认模式 |
|
|
64
|
-
| 文件正文搜索 | `locator_find
|
|
64
|
+
| 文件正文搜索 | `locator_find`,或面板的“内容”范围(默认开启) |
|
|
65
65
|
| DSH 会话内容搜索 | 同上;命中带 `sessionId` / `messageId`,可直接跳回那次对话 |
|
|
66
66
|
| 打开 / 定位 | 工具返回路径;面板双击在文件管理器定位,`Ctrl+O` 打开,`Ctrl+Enter` 把 `@"路径"` 插进输入框 |
|
|
67
67
|
| 外部工具消费 | `locator_export` 导出只读 SQLite |
|
|
@@ -150,7 +150,7 @@ Everything 风格的查询语法,返回路径、大小、修改时间、扩展
|
|
|
150
150
|
|
|
151
151
|
内容索引的行为:
|
|
152
152
|
|
|
153
|
-
- **惰性启动**:插件启动时什么都不建;第一次搜内容(`locator_find`
|
|
153
|
+
- **惰性启动**:插件启动时什么都不建;第一次搜内容(`locator_find` 或面板的“内容”范围)才开始后台构建,`contentLazy: false` 可恢复启动即建。第一次查询会立刻返回 `building: true`,不会让你干等或误以为没结果。
|
|
154
154
|
- **重启复用**:有内容库时只做一次增量刷新,不重读全部正文;只有库不存在、结构版本不兼容、上次构建没完成或损坏时才全量重建(先会话、后文件正文)。
|
|
155
155
|
- **增量刷新**:默认每 5 分钟检查一次,只重读 mtime 变化的文件/会话;`contentRefreshMs` 可调,0 关闭。
|
|
156
156
|
- **归档与活动会话**:已归档会话默认不索引(`contentIncludeArchived: true` 才索引);正在写入的会话等它安静 `contentActiveSessionDelayMs`(默认 2 分钟)后再索引,不会每轮刷新重解压整份日志;已删除的会话随文件消失自动退出索引。
|
|
@@ -161,22 +161,13 @@ Everything 风格的查询语法,返回路径、大小、修改时间、扩展
|
|
|
161
161
|
|
|
162
162
|
## Web 面板
|
|
163
163
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
在 Web GUI 里按 `Ctrl+Shift+F`,或者点侧栏底部的放大镜。
|
|
167
|
-
|
|
168
|
-
- 空查询按修改时间列出最近的条目;输入后 110ms 防抖,和工具用同一套语法。
|
|
169
|
-
- 点列头按名称、大小、修改时间、路径排序;可勾选“只看文件”“只看目录”。
|
|
170
|
-
- 勾选“搜内容”切换到正文/会话搜索;构建期间底栏显示状态并自动重查。
|
|
171
|
-
- `↑`/`↓` 选择,`Enter` 复制路径,`Ctrl+O` 打开,`Ctrl+Enter` 把 `@"路径"` 插进输入框,`Esc` 关闭。
|
|
172
|
-
- 双击文件结果在文件管理器里定位;双击会话结果打开对应会话并尝试滚动到命中处。
|
|
173
|
-
- 面板文案跟随 `navigator.language`(中/英/西/葡/印地语)。
|
|
174
|
-
|
|
175
|
-
面板通过同源路由工作:`/dsh-locator/search`、`/dsh-locator/content`、`/dsh-locator/content/rebuild`、`/dsh-locator/combined`、`/dsh-locator/status`、`/dsh-locator/reveal`、`/dsh-locator/open`。不另起服务,也不占额外端口。
|
|
164
|
+
在 Web GUI 里按 `Ctrl+Shift+F`,或者点侧栏底部的放大镜。面板通过同源路由工作(`search`、`content`、`content/rebuild`、`combined`、`status`、`reveal`、`open`),不另起服务、不占额外端口。
|
|
176
165
|
|
|
177
166
|
- **默认同时搜索三个范围**:内容(正文 + 会话)、文件、目录,三个勾选默认全部打开;取消任一勾选即可缩小范围。结果按“内容 → 文件 → 目录”分组,组头显示数量;内容按相关度排序,文件/目录按排序菜单。
|
|
178
|
-
- **双击或 `Enter`
|
|
179
|
-
- 内容查询至少需要 2 个字符;空查询和 1
|
|
167
|
+
- **双击或 `Enter` 激活**:会话命中打开对应会话,并把命中的词用半透明琥珀色高亮(随滚动跟随、自动居中、`Esc` 清除);文件/目录在文件管理器中定位。`Ctrl+Shift+C` 复制路径,`Ctrl+O` 打开,`Ctrl+Enter` 插入 `@file`,`Alt+1–3` 切换范围。
|
|
168
|
+
- 内容查询至少需要 2 个字符;空查询和 1 个字符的查询不会启动内容索引构建。构建期间内容组显示进度,文件名/目录结果立即返回;勾选状态会记住。
|
|
169
|
+
- 键盘:`↑`/`↓`、`Home`/`End`、`PageUp`/`PageDown` 移动,`Enter` 激活,`Esc` 关闭;对话框有焦点陷阱并在关闭时还原。面板文案跟随 `navigator.language`(中/英/西/葡/印地语)。
|
|
170
|
+
|
|
180
171
|
|
|
181
172
|
## 工具一览
|
|
182
173
|
|
|
@@ -353,7 +344,7 @@ Go 引擎在 `engine/` 下,测试用 `cd engine && go test ./...`。macOS 的
|
|
|
353
344
|
- 两个 DSH 进程共享同一个 `stateDir` 时,构建锁只能串行化写入;建议各用各的缓存目录。
|
|
354
345
|
- macOS 的发布版二进制用 FSEvents;`CGO_ENABLED=0` 构建只有 kqueue,目录上限 4096,且内容变更依赖定时重建。
|
|
355
346
|
|
|
356
|
-
- 文件正文命中目前只在文件管理器里定位(在 DSH 内按行预览是下一步);assistant
|
|
347
|
+
- 文件正文命中目前只在文件管理器里定位(在 DSH 内按行预览是下一步);assistant 消息通过 `turn:step` 节点键精确定位,找不到时才退回短语匹配。升级到 0.8.1 会因新增节点键字段重建一次内容库。
|
|
357
348
|
- 会话内高亮依赖 CSS Custom Highlight API;不支持它的旧浏览器会退化为整行描边。
|
|
358
349
|
|
|
359
350
|
## 安全与隐私
|