dsh-prime-memory 0.26.10 → 0.26.12

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.
Files changed (55) hide show
  1. package/CHANGELOG.de.md +1638 -0
  2. package/CHANGELOG.en.md +15 -0
  3. package/CHANGELOG.es.md +1641 -0
  4. package/CHANGELOG.fr.md +1643 -0
  5. package/CHANGELOG.it.md +1643 -0
  6. package/CHANGELOG.ja.md +15 -0
  7. package/CHANGELOG.ko.md +15 -0
  8. package/CHANGELOG.md +38 -0
  9. package/CHANGELOG.ru.md +1640 -0
  10. package/INSTALL.de.md +92 -0
  11. package/INSTALL.es.md +92 -0
  12. package/INSTALL.fr.md +92 -0
  13. package/INSTALL.it.md +92 -0
  14. package/INSTALL.ru.md +92 -0
  15. package/README.de.md +1 -1
  16. package/README.en.md +3 -3
  17. package/README.es.md +1 -1
  18. package/README.fr.md +1 -1
  19. package/README.it.md +1 -1
  20. package/README.ja.md +1 -1
  21. package/README.ko.md +1 -1
  22. package/README.md +10 -3
  23. package/README.ru.md +1 -1
  24. package/dist/bench-control.js +3 -1
  25. package/dist/client.js +121 -12
  26. package/dist/clients/drsc.d.ts +34 -0
  27. package/dist/clients/drsc.js +56 -11
  28. package/dist/config.d.ts +10 -1
  29. package/dist/config.js +37 -18
  30. package/dist/contract.d.ts +48 -1
  31. package/dist/graph/gate.d.ts +17 -0
  32. package/dist/graph/gate.js +11 -0
  33. package/dist/graph/preview.d.ts +5 -0
  34. package/dist/graph/preview.js +2 -0
  35. package/dist/index.js +1 -1
  36. package/dist/pipeline/fact-source.d.ts +127 -0
  37. package/dist/pipeline/fact-source.js +192 -0
  38. package/dist/pipeline/rebuild-preserve.d.ts +31 -2
  39. package/dist/pipeline/rebuild-preserve.js +40 -14
  40. package/dist/pipeline/rebuild.d.ts +47 -13
  41. package/dist/pipeline/rebuild.js +153 -57
  42. package/dist/pipeline/runner.d.ts +4 -1
  43. package/dist/pipeline/runner.js +58 -21
  44. package/dist/pipeline/workspace-relink.js +7 -2
  45. package/dist/room-review.d.ts +1 -1
  46. package/dist/room-review.js +10 -5
  47. package/dist/settings.js +4 -0
  48. package/dist/stats.js +10 -3
  49. package/dist/store/graph-store.d.ts +20 -0
  50. package/dist/store/graph-store.js +50 -1
  51. package/dist/store/sqlite.d.ts +42 -0
  52. package/dist/store/sqlite.js +98 -0
  53. package/dist/tools/index.js +4 -3
  54. package/dsh.plugin.json +2 -2
  55. package/package.json +37 -21
package/INSTALL.de.md ADDED
@@ -0,0 +1,92 @@
1
+ # Installationsanleitung (dsh-prime-memory)
2
+
3
+ Dieses Plugin wird als **offizielles DSH-Bundle** ausgeliefert: Nach der Installation mountet die `dsh.bundle`-Schicht in `cordis.patch.yml` den Plugin-Eintrag automatisch — manuelle Profilbearbeitung ist nicht erforderlich.
4
+
5
+ ## Voraussetzungen
6
+
7
+ - Node.js ≥ 22.16 (DSH 0.2.0-rc.1 oder neuer)
8
+ - DeepSeek Harness (im Folgenden DSH) installiert, mit verfügbarem `--profile web`
9
+
10
+ ## Installation
11
+
12
+ Wählen Sie eine der folgenden Aufrufarten (das Präfix `npx` kann in jedem der folgenden Befehle `dsh` ersetzen):
13
+
14
+ ```bash
15
+ # Variante 1: offizielle CLI direkt per npx ausführen (kein vorinstalliertes dsh nötig; Version kann gepinnt werden, z. B. dsh-prime-memory@0.8.4)
16
+ npx -y @deepseek-ai/dsh plugin --profile web add dsh-prime-memory
17
+
18
+ # Variante 2: mit installierter dsh-CLI (dsh ist ein pnpm-Forwarder; falls pnpm fehlt, zuerst npm i -g pnpm)
19
+ dsh plugin --profile web add dsh-prime-memory
20
+
21
+ # Alternative Paketquellen: GitHub-Repository / lokaler Pfad (Entwicklung/Debug; link: verweist auf das Repository, npm run build + dsh-Neustart genügt)
22
+ dsh plugin --profile web add https://github.com/drscrewdriver/dsh-prime-memory
23
+ dsh plugin --profile web add /path/to/dsh-prime-memory
24
+ ```
25
+
26
+ ### Installation durch den Agenten (empfohlen)
27
+
28
+ Senden Sie die folgende Nachricht unverändert an den aktuellen Agenten (sofern er Terminalbefehle ausführen kann):
29
+
30
+ ```text
31
+ Bitte installiere das Plugin dsh-prime-memory für das Web-Profil von DeepSeek Harness.
32
+
33
+ Führe ausschließlich die beiden folgenden Befehle aus und ändere keine anderen Profile:
34
+ dsh plugin --profile web add dsh-prime-memory
35
+ dsh --profile web --dump-config
36
+
37
+ Sobald dsh-prime-memory in der Ausgabe erscheint, melde mir das Installationsergebnis.
38
+ Beende oder starte den laufenden DSH nicht selbst neu; erinnere mich nach der Installation daran, den DSH Web Host manuell neu zu starten.
39
+ ```
40
+
41
+ ## Update
42
+
43
+ ```bash
44
+ # Auf die neueste Version aktualisieren
45
+ dsh plugin --profile web update dsh-prime-memory
46
+
47
+ # Auf eine bestimmte Version aktualisieren
48
+ dsh plugin --profile web update dsh-prime-memory@0.8.11
49
+ ```
50
+
51
+ Ein Update ersetzt nur den Plugin-Code und die `dist/`-Artefakte; das Datenverzeichnis `~/.dsh/memory/` bleibt unberührt.
52
+
53
+ ## Verifikation
54
+
55
+ Prüfen Sie nach der Installation und dem Neustart des DSH Web Host:
56
+
57
+ 1. **Das Datenverzeichnis entsteht** — das Plugin wurde erfolgreich angewendet: unter `~/.dsh/memory/` erscheinen die Verzeichnisse `conversations/`, `records/`, `scenes/` sowie `memory.db`;
58
+ 2. **Die Seite „Memory" erscheint in den Einstellungen** und das Modus-Pill erscheint in der Eingabeleiste — die Client-Hälfte ist bereit;
59
+ 3. Schicken Sie eine Nachricht mit persönlichen Informationen, warten Sie die Destillation ab und fragen Sie in einem späteren Zug danach: Im Kontext sollte die Zeile „Kontextinjektion · memory" erscheinen.
60
+
61
+ Optionaler Rauchtest (Entwicklung/Fehlerdiagnose):
62
+
63
+ ```bash
64
+ npm run build
65
+ npx tsc src/smoke.ts --outDir dist-smoke --module nodenext --moduleResolution nodenext --target es2022 --strict --skipLibCheck --esModuleInterop
66
+ node dist-smoke/smoke.js
67
+ ```
68
+
69
+ ## Migration / Downgrade
70
+
71
+ - **Migration von der alten Version (vor 0.5.0 hieß das Paket `dsh-memory-plugin`)**: Das alte Datenverzeichnis ist mit dem neuen Paket inkompatibel; sichern Sie es und löschen Sie `~/.dsh/memory/` — es wird beim ersten Start des neuen Plugins neu aufgebaut. Bestehende Erinnerungen können nicht direkt übernommen werden, sie müssen neu destilliert werden.
72
+ - **Zurück zur alten Version**: Nach `dsh plugin --profile web remove dsh-prime-memory` gemäß der Dokumentation der alten Version neu installieren; das Datenverzeichnis bleibt erhalten, aber die alte Version erkennt die neue Struktur nicht — eine Bereinigung wird empfohlen.
73
+
74
+ ## Deinstallation
75
+
76
+ ```bash
77
+ dsh plugin --profile web remove dsh-prime-memory
78
+ ```
79
+
80
+ Die Daten bleiben in `~/.dsh/memory/`; löschen Sie bei Bedarf das gesamte Verzeichnis von Hand.
81
+
82
+ ## Fehlerbehebung
83
+
84
+ | Symptom | Wahrscheinliche Ursache | Lösung |
85
+ | --- | --- | --- |
86
+ | Nach der Installation fehlt die Seite „Memory" in den Einstellungen | DSH nicht neu gestartet / Bundle nicht gemountet | DSH Web Host neu starten; mit `dsh --profile web --dump-config` prüfen, dass `dsh-prime-memory` enthalten ist |
87
+ | `duplicate loader entry id` beim Neustart | ein manuell hinzugefügtes `insert:` kollidiert mit dem Bundle-Eintrag gleicher id | Das manuell hinzugefügte `insert:`-Element entfernen; das Paket bringt seine Bundle-Schicht bereits mit |
88
+ | Keine Zeile „Kontextinjektion · memory" | Destillation nicht gelaufen / Recall deaktiviert | Prüfen, dass der Modus nicht off und `recall.enabled=true` ist; in `memory.log` nach `L1 阶段完成` suchen |
89
+ | Download des lokalen Embedding-Modells hängt | Mirror direkt nicht erreichbar | `embedding.proxy` setzen, um über einen Proxy zu gehen; oder `embedding.mirror` auf das offizielle `huggingface.co` umstellen |
90
+ | Remote-Embedding meldet 401 | apiKey falsch / schlüsselloser Dienst darf keinen Key erhalten | `embedding.apiKey` prüfen; bei einem selbst gehosteten Dienst ohne Key apiKey leer lassen |
91
+
92
+ Mehr dazu in [README.md](./README.md) und [CHANGELOG.md](./CHANGELOG.md).
package/INSTALL.es.md ADDED
@@ -0,0 +1,92 @@
1
+ # Guía de instalación (dsh-prime-memory)
2
+
3
+ Este plugin se distribuye como **bundle oficial de DSH**: tras la instalación, la capa `dsh.bundle` de `cordis.patch.yml` monta automáticamente la entrada del plugin; no hace falta editar a mano ningún perfil.
4
+
5
+ ## Requisitos
6
+
7
+ - Node.js ≥ 22.16 (DSH 0.2.0-rc.1 o superior)
8
+ - DeepSeek Harness (en adelante DSH) instalado, con `--profile web` disponible
9
+
10
+ ## Instalación
11
+
12
+ Elige el modo de invocación que prefieras (el prefijo `npx` puede sustituir a `dsh` en cualquiera de los comandos siguientes):
13
+
14
+ ```bash
15
+ # Modo 1: ejecutar la CLI oficial directamente con npx (no requiere dsh preinstalado; se puede fijar la versión, p. ej. dsh-prime-memory@0.8.4)
16
+ npx -y @deepseek-ai/dsh plugin --profile web add dsh-prime-memory
17
+
18
+ # Modo 2: con la CLI dsh ya instalada (dsh es un reenviador de pnpm; si no tienes pnpm, antes npm i -g pnpm)
19
+ dsh plugin --profile web add dsh-prime-memory
20
+
21
+ # Fuentes alternativas del paquete: repositorio de GitHub / ruta local (desarrollo y depuración; link: apunta al repositorio, basta npm run build + reiniciar dsh)
22
+ dsh plugin --profile web add https://github.com/drscrewdriver/dsh-prime-memory
23
+ dsh plugin --profile web add /path/to/dsh-prime-memory
24
+ ```
25
+
26
+ ### Dejar que el agente instale (recomendado)
27
+
28
+ Envía tal cual el siguiente mensaje al agente actual (siempre que pueda ejecutar comandos de terminal):
29
+
30
+ ```text
31
+ Instala el plugin dsh-prime-memory para el perfil web de DeepSeek Harness.
32
+
33
+ Ejecuta solo los dos comandos siguientes y no modifiques otros perfiles:
34
+ dsh plugin --profile web add dsh-prime-memory
35
+ dsh --profile web --dump-config
36
+
37
+ Cuando aparezca dsh-prime-memory en la salida, infórmame del resultado de la instalación.
38
+ No cierres ni reinicies por tu cuenta el DSH en ejecución; cuando termine la instalación, recuérdame que reinicie manualmente el DSH Web Host.
39
+ ```
40
+
41
+ ## Actualización
42
+
43
+ ```bash
44
+ # Actualizar a la última versión
45
+ dsh plugin --profile web update dsh-prime-memory
46
+
47
+ # Actualizar a una versión concreta
48
+ dsh plugin --profile web update dsh-prime-memory@0.8.11
49
+ ```
50
+
51
+ La actualización solo reemplaza el código del plugin y los artefactos de `dist/`; el directorio de datos `~/.dsh/memory/` no se ve afectado.
52
+
53
+ ## Verificación
54
+
55
+ Tras instalar y reiniciar el DSH Web Host, comprueba:
56
+
57
+ 1. **Aparece el directorio de datos** — el plugin se aplicó correctamente: bajo `~/.dsh/memory/` aparecen los directorios `conversations/`, `records/`, `scenes/` y el archivo `memory.db`;
58
+ 2. **Aparece la página «Memoria» en los ajustes** y en la barra de entrada aparece la píldora de modo — la mitad cliente está lista;
59
+ 3. Envía un mensaje con información personal, espera a que termine la destilación y pregunta por ello en otro turno de conversación: en el contexto debería verse la línea «Inyección de contexto · memory».
60
+
61
+ Smoke test opcional (desarrollo/diagnóstico):
62
+
63
+ ```bash
64
+ npm run build
65
+ npx tsc src/smoke.ts --outDir dist-smoke --module nodenext --moduleResolution nodenext --target es2022 --strict --skipLibCheck --esModuleInterop
66
+ node dist-smoke/smoke.js
67
+ ```
68
+
69
+ ## Migración / retroceso
70
+
71
+ - **Migrar desde la versión antigua (antes de 0.5.0 se llamaba `dsh-memory-plugin`)**: el directorio de datos antiguo es incompatible con el paquete nuevo; haz una copia de seguridad y borra `~/.dsh/memory/`, el nuevo plugin la reconstruirá en su primer arranque. Las memorias existentes no se pueden actualizar directamente: hay que volver a destilarlas.
72
+ - **Volver a la versión antigua**: tras `dsh plugin --profile web remove dsh-prime-memory`, reinstala siguiendo la documentación de la versión antigua; el directorio de datos se conserva, pero la versión antigua no reconoce la nueva estructura; conviene limpiarlo.
73
+
74
+ ## Desinstalación
75
+
76
+ ```bash
77
+ dsh plugin --profile web remove dsh-prime-memory
78
+ ```
79
+
80
+ Los datos permanecen en `~/.dsh/memory/`; si ya no los necesitas, borra todo el directorio a mano.
81
+
82
+ ## Resolución de problemas
83
+
84
+ | Síntoma | Causa probable | Solución |
85
+ | --- | --- | --- |
86
+ | Tras la instalación no aparece la página «Memoria» en los ajustes | DSH sin reiniciar / bundle sin montar | Reinicia el DSH Web Host; con `dsh --profile web --dump-config` comprueba que aparece `dsh-prime-memory` |
87
+ | `duplicate loader entry id` al reiniciar | un `insert:` añadido a mano convive con la entrada bundle del mismo id | Elimina la entrada `insert:` añadida manualmente; el paquete ya incluye su propia capa bundle |
88
+ | No aparece la línea «Inyección de contexto · memory» | destilación sin ejecutar / recuerdo desactivado | Comprueba que el modo no es off y que `recall.enabled=true`; busca `L1 阶段完成` en `memory.log` |
89
+ | La descarga del modelo de embeddings local se queda colgada | el espejo no es accesible en conexión directa | Configura `embedding.proxy` para salir por un proxy; o cambia `embedding.mirror` al oficial `huggingface.co` |
90
+ | El embedding remoto da error 401 | apiKey errónea / servicio sin clave al que no hay que enviarla | Revisa `embedding.apiKey`; en un servicio autoalojado sin clave deja apiKey vacía |
91
+
92
+ Para más información, consulta [README.md](./README.md) y [CHANGELOG.md](./CHANGELOG.md).
package/INSTALL.fr.md ADDED
@@ -0,0 +1,92 @@
1
+ # Guide d'installation (dsh-prime-memory)
2
+
3
+ Ce plugin est distribué sous forme de **bundle officiel DSH** : après l'installation, la couche `dsh.bundle` de `cordis.patch.yml` monte automatiquement l'entrée du plugin — aucune modification manuelle du profil n'est nécessaire.
4
+
5
+ ## Prérequis
6
+
7
+ - Node.js ≥ 22.16 (DSH 0.2.0-rc.1 ou supérieur)
8
+ - DeepSeek Harness (ci-après DSH) installé, avec `--profile web` disponible
9
+
10
+ ## Installation
11
+
12
+ Choisissez librement l'un des modes d'invocation suivants (le préfixe `npx` peut remplacer `dsh` dans n'importe laquelle des commandes ci-dessous) :
13
+
14
+ ```bash
15
+ # Méthode 1 : lancer le CLI officiel directement via npx (pas besoin d'installer dsh au préalable ; la version peut être épinglée, ex. dsh-prime-memory@0.8.4)
16
+ npx -y @deepseek-ai/dsh plugin --profile web add dsh-prime-memory
17
+
18
+ # Méthode 2 : avec le CLI dsh installé (dsh est un relais pnpm ; si pnpm manque, commencez par npm i -g pnpm)
19
+ dsh plugin --profile web add dsh-prime-memory
20
+
21
+ # Sources de paquets alternatives : dépôt GitHub / chemin local (développement/débogage ; link: pointe vers le dépôt, npm run build + redémarrage de dsh suffisent)
22
+ dsh plugin --profile web add https://github.com/drscrewdriver/dsh-prime-memory
23
+ dsh plugin --profile web add /path/to/dsh-prime-memory
24
+ ```
25
+
26
+ ### Laisser l'agent installer (recommandé)
27
+
28
+ Envoyez tel quel le message ci-dessous à l'agent actuel (du moment qu'il peut exécuter des commandes de terminal) :
29
+
30
+ ```text
31
+ Veuillez installer le plugin dsh-prime-memory pour le profil web de DeepSeek Harness.
32
+
33
+ Exécutez uniquement les deux commandes suivantes, sans modifier d'autres profils :
34
+ dsh plugin --profile web add dsh-prime-memory
35
+ dsh --profile web --dump-config
36
+
37
+ Une fois que dsh-prime-memory apparaît dans la sortie, confirmez-moi le résultat de l'installation.
38
+ Ne fermez pas et ne redémarrez pas vous-même le DSH en cours d'exécution ; après l'installation, rappelez-moi de redémarrer manuellement le DSH Web Host.
39
+ ```
40
+
41
+ ## Mise à jour
42
+
43
+ ```bash
44
+ # Mettre à jour vers la dernière version
45
+ dsh plugin --profile web update dsh-prime-memory
46
+
47
+ # Mettre à jour vers une version donnée
48
+ dsh plugin --profile web update dsh-prime-memory@0.8.11
49
+ ```
50
+
51
+ La mise à jour ne remplace que le code du plugin et les artefacts de `dist/` ; le répertoire de données `~/.dsh/memory/` n'est pas affecté.
52
+
53
+ ## Vérification
54
+
55
+ Après l'installation et le redémarrage du DSH Web Host, vérifiez :
56
+
57
+ 1. **Le répertoire de données apparaît** — le plugin s'est appliqué avec succès : sous `~/.dsh/memory/` apparaissent les répertoires `conversations/`, `records/`, `scenes/` ainsi que `memory.db` ;
58
+ 2. **La page « Mémoire » apparaît dans les paramètres** et le pill de mode s'affiche dans la barre de saisie — la moitié client est prête ;
59
+ 3. Envoyez un message contenant des informations personnelles, attendez la fin de la distillation, puis demandez ces informations dans un autre tour de conversation : la ligne « Injection de contexte · memory » doit apparaître dans le contexte.
60
+
61
+ Test de fumée optionnel (développement/diagnostic) :
62
+
63
+ ```bash
64
+ npm run build
65
+ npx tsc src/smoke.ts --outDir dist-smoke --module nodenext --moduleResolution nodenext --target es2022 --strict --skipLibCheck --esModuleInterop
66
+ node dist-smoke/smoke.js
67
+ ```
68
+
69
+ ## Migration / retour à une version antérieure
70
+
71
+ - **Migration depuis l'ancienne version (nommée `dsh-memory-plugin` avant le 0.5.0)** : l'ancien répertoire de données est incompatible avec le nouveau paquet ; sauvegardez puis supprimez `~/.dsh/memory/`, il sera reconstruit au premier démarrage du nouveau plugin. Les mémoires existantes ne peuvent pas être mises à niveau directement, une re-distillation est nécessaire.
72
+ - **Revenir à l'ancienne version** : après `dsh plugin --profile web remove dsh-prime-memory`, réinstallez en suivant la documentation de l'ancienne version ; le répertoire de données est conservé, mais l'ancienne version ne reconnaît pas la nouvelle structure — un nettoyage est recommandé.
73
+
74
+ ## Désinstallation
75
+
76
+ ```bash
77
+ dsh plugin --profile web remove dsh-prime-memory
78
+ ```
79
+
80
+ Les données restent dans `~/.dsh/memory/` ; supprimez manuellement tout le répertoire si vous n'en avez plus besoin.
81
+
82
+ ## Dépannage
83
+
84
+ | Symptôme | Cause probable | Solution |
85
+ | --- | --- | --- |
86
+ | Aucune page « Mémoire » dans les paramètres après l'installation | DSH non redémarré / bundle non monté | Redémarrez le DSH Web Host ; vérifiez avec `dsh --profile web --dump-config` que `dsh-prime-memory` figure bien dans la configuration |
87
+ | `duplicate loader entry id` au redémarrage | un `insert:` ajouté manuellement coexiste avec l'entrée bundle de même id | Supprimez l'entrée `insert:` ajoutée à la main ; ce paquet embarque déjà sa couche bundle |
88
+ | Aucune ligne « Injection de contexte · memory » | distillation non exécutée / rappel désactivé | Vérifiez que le mode n'est pas off et que `recall.enabled=true` ; cherchez `L1 阶段完成` dans `memory.log` |
89
+ | Téléchargement du modèle d'embedding local bloqué | miroir inaccessible en connexion directe | Configurez `embedding.proxy` pour passer par un proxy ; ou remplacez `embedding.mirror` par l'officiel `huggingface.co` |
90
+ | Erreur 401 de l'embedding distant | apiKey erronée / service sans clé auquel il ne faut pas en envoyer | Vérifiez `embedding.apiKey` ; laissez apiKey vide pour un service auto-hébergé sans clé |
91
+
92
+ Pour aller plus loin, voir [README.md](./README.md) et [CHANGELOG.md](./CHANGELOG.md).
package/INSTALL.it.md ADDED
@@ -0,0 +1,92 @@
1
+ # Guida all'installazione (dsh-prime-memory)
2
+
3
+ Questo plugin è distribuito come **bundle ufficiale DSH**: dopo l'installazione, il livello `dsh.bundle` di `cordis.patch.yml` monta automaticamente la voce del plugin — non serve modificare a mano alcun profilo.
4
+
5
+ ## Requisiti
6
+
7
+ - Node.js ≥ 22.16 (DSH 0.2.0-rc.1 o superiore)
8
+ - DeepSeek Harness (di seguito DSH) installato, con `--profile web` disponibile
9
+
10
+ ## Installazione
11
+
12
+ Scegli liberamente uno dei modi di invocazione seguenti (il prefisso `npx` può sostituire `dsh` in qualsiasi comando qui sotto):
13
+
14
+ ```bash
15
+ # Modo 1: eseguire la CLI ufficiale direttamente con npx (niente dsh preinstallato; la versione può essere fissata, es. dsh-prime-memory@0.8.4)
16
+ npx -y @deepseek-ai/dsh plugin --profile web add dsh-prime-memory
17
+
18
+ # Modo 2: con la CLI dsh già installata (dsh è un inoltratore pnpm; se pnpm manca, prima npm i -g pnpm)
19
+ dsh plugin --profile web add dsh-prime-memory
20
+
21
+ # Sorgenti alternative del pacchetto: repository GitHub / percorso locale (sviluppo/debug; link: punta al repository, bastano npm run build + riavvio di dsh)
22
+ dsh plugin --profile web add https://github.com/drscrewdriver/dsh-prime-memory
23
+ dsh plugin --profile web add /path/to/dsh-prime-memory
24
+ ```
25
+
26
+ ### Far installare dall'agente (consigliato)
27
+
28
+ Invia tale e quale il messaggio seguente all'agente attuale (purché possa eseguire comandi da terminale):
29
+
30
+ ```text
31
+ Installa il plugin dsh-prime-memory per il profilo web di DeepSeek Harness.
32
+
33
+ Esegui solo i due comandi seguenti e non modificare altri profili:
34
+ dsh plugin --profile web add dsh-prime-memory
35
+ dsh --profile web --dump-config
36
+
37
+ Quando dsh-prime-memory compare nell'output, comunicami l'esito dell'installazione.
38
+ Non chiudere o riavviare di tua iniziativa il DSH in esecuzione; a installazione completata, ricordami di riavviare manualmente il DSH Web Host.
39
+ ```
40
+
41
+ ## Aggiornamento
42
+
43
+ ```bash
44
+ # Aggiornare all'ultima versione
45
+ dsh plugin --profile web update dsh-prime-memory
46
+
47
+ # Aggiornare a una versione specifica
48
+ dsh plugin --profile web update dsh-prime-memory@0.8.11
49
+ ```
50
+
51
+ L'aggiornamento sostituisce solo il codice del plugin e gli artefatti in `dist/`; la directory dei dati `~/.dsh/memory/` non viene toccata.
52
+
53
+ ## Verifica
54
+
55
+ Dopo l'installazione e il riavvio del DSH Web Host, controlla:
56
+
57
+ 1. **Compare la directory dei dati** — il plugin è stato applicato con successo: sotto `~/.dsh/memory/` compaiono le directory `conversations/`, `records/`, `scenes/` e il file `memory.db`;
58
+ 2. **La pagina «Memoria» compare nelle impostazioni** e il pill di modalità compare nella barra di input — la metà client è pronta;
59
+ 3. Invia un messaggio con informazioni personali, attendi la fine della distillazione e poi chiedine conto in un altro turno di conversazione: nel contesto dovrebbe comparire la riga «Iniezione di contesto · memory».
60
+
61
+ Smoke test opzionale (sviluppo/diagnostica):
62
+
63
+ ```bash
64
+ npm run build
65
+ npx tsc src/smoke.ts --outDir dist-smoke --module nodenext --moduleResolution nodenext --target es2022 --strict --skipLibCheck --esModuleInterop
66
+ node dist-smoke/smoke.js
67
+ ```
68
+
69
+ ## Migrazione / downgrade
70
+
71
+ - **Migrazione dalla vecchia versione (chiamata `dsh-memory-plugin` prima del 0.5.0)**: la vecchia directory dei dati è incompatibile col nuovo pacchetto; fai un backup e poi elimina `~/.dsh/memory/`, verrà ricostruita al primo avvio del nuovo plugin. Le memorie esistenti non possono essere aggiornate direttamente: serve una nuova distillazione.
72
+ - **Tornare alla vecchia versione**: dopo `dsh plugin --profile web remove dsh-prime-memory` reinstalla seguendo la documentazione della vecchia versione; la directory dei dati resta, ma la vecchia versione non riconosce la nuova struttura — si consiglia di ripulirla.
73
+
74
+ ## Disinstallazione
75
+
76
+ ```bash
77
+ dsh plugin --profile web remove dsh-prime-memory
78
+ ```
79
+
80
+ I dati restano in `~/.dsh/memory/`; se non servono più, elimina a mano l'intera directory.
81
+
82
+ ## Risoluzione dei problemi
83
+
84
+ | Sintomo | Causa probabile | Rimedio |
85
+ | --- | --- | --- |
86
+ | Dopo l'installazione manca la pagina «Memoria» nelle impostazioni | DSH non riavviato / bundle non montato | Riavvia il DSH Web Host; verifica con `dsh --profile web --dump-config` che ci sia `dsh-prime-memory` |
87
+ | `duplicate loader entry id` al riavvio | un `insert:` aggiunto a mano convive con la voce bundle di pari id | Elimina la voce `insert:` aggiunta manualmente; il pacchetto include già il suo livello bundle |
88
+ | Nessuna riga «Iniezione di contesto · memory» | distillazione non eseguita / richiamo disattivato | Verifica che la modalità non sia off e che `recall.enabled=true`; cerca `L1 阶段完成` in `memory.log` |
89
+ | Download del modello di embedding locale bloccato | mirror non raggiungibile in connessione diretta | Imposta `embedding.proxy` per passare da un proxy; oppure sostituisci `embedding.mirror` con l'ufficiale `huggingface.co` |
90
+ | Errore 401 dall'embedding remoto | apiKey errata / servizio senza chiave a cui non va inviata | Controlla `embedding.apiKey`; per un servizio self-hosted senza chiave lascia apiKey vuota |
91
+
92
+ Per approfondire, vedi [README.md](./README.md) e [CHANGELOG.md](./CHANGELOG.md).
package/INSTALL.ru.md ADDED
@@ -0,0 +1,92 @@
1
+ # Руководство по установке (dsh-prime-memory)
2
+
3
+ Плагин распространяется в виде **официального bundle-пакета DSH**: после установки слой `dsh.bundle` в `cordis.patch.yml` автоматически подключает запись плагина — вручную править конфигурацию профиля не нужно.
4
+
5
+ ## Требования к окружению
6
+
7
+ - Node.js ≥ 22.16 (DSH 0.2.0-rc.1 и новее)
8
+ - Установленный DeepSeek Harness (далее — DSH), доступен `--profile web`
9
+
10
+ ## Установка
11
+
12
+ Выберите любой способ вызова (префикс `npx` может заменить `dsh` в любой из команд ниже):
13
+
14
+ ```bash
15
+ # Способ 1: запустить официальный CLI напрямую через npx (предустановка dsh не нужна; можно зафиксировать версию, например dsh-prime-memory@0.8.4)
16
+ npx -y @deepseek-ai/dsh plugin --profile web add dsh-prime-memory
17
+
18
+ # Способ 2: при установленном CLI dsh (dsh — это forwarding-обёртка pnpm; если pnpm нет, сначала npm i -g pnpm)
19
+ dsh plugin --profile web add dsh-prime-memory
20
+
21
+ # Альтернативные источники пакета: репозиторий GitHub / локальный путь (разработка и отладка; link: указывает на репозиторий, достаточно npm run build + перезапуска dsh)
22
+ dsh plugin --profile web add https://github.com/drscrewdriver/dsh-prime-memory
23
+ dsh plugin --profile web add /path/to/dsh-prime-memory
24
+ ```
25
+
26
+ ### Поручить установку агенту (рекомендуется)
27
+
28
+ Отправьте текущему агенту приведённое ниже сообщение целиком и без изменений (если он умеет выполнять команды терминала):
29
+
30
+ ```text
31
+ Установи плагин dsh-prime-memory для web-профиля DeepSeek Harness.
32
+
33
+ Выполни только следующие две команды и не изменяй другие профили:
34
+ dsh plugin --profile web add dsh-prime-memory
35
+ dsh --profile web --dump-config
36
+
37
+ Когда dsh-prime-memory появится в выводе, сообщи мне результат установки.
38
+ Не закрывай и не перезапускай работающий DSH по своей инициативе; после установки напомни мне вручную перезапустить DSH Web Host.
39
+ ```
40
+
41
+ ## Обновление
42
+
43
+ ```bash
44
+ # Обновить до последней версии
45
+ dsh plugin --profile web update dsh-prime-memory
46
+
47
+ # Обновить до конкретной версии
48
+ dsh plugin --profile web update dsh-prime-memory@0.8.11
49
+ ```
50
+
51
+ Обновление заменяет только код плагина и артефакты в `dist/`; каталог данных `~/.dsh/memory/` не затрагивается.
52
+
53
+ ## Проверка
54
+
55
+ После установки и перезапуска DSH Web Host проверьте:
56
+
57
+ 1. **Появился каталог данных** — плагин успешно применён: в `~/.dsh/memory/` появляются каталоги `conversations/`, `records/`, `scenes/` и файл `memory.db`;
58
+ 2. **В настройках появилась страница «Память»** и в строке ввода появился пилюльный переключатель режимов — клиентская половина готова;
59
+ 3. Отправьте сообщение с личной информацией, дождитесь завершения дистилляции, затем спросите об этом в другом ходе беседы: в контексте должна появиться строка «Внедрение контекста · memory».
60
+
61
+ Необязательный smoke-тест (для разработки/диагностики):
62
+
63
+ ```bash
64
+ npm run build
65
+ npx tsc src/smoke.ts --outDir dist-smoke --module nodenext --moduleResolution nodenext --target es2022 --strict --skipLibCheck --esModuleInterop
66
+ node dist-smoke/smoke.js
67
+ ```
68
+
69
+ ## Миграция / откат
70
+
71
+ - **Миграция со старой версии (до 0.5.0 пакет назывался `dsh-memory-plugin`)**: старый каталог данных несовместим с новым пакетом; сделайте резервную копию и удалите `~/.dsh/memory/` — при первом запуске новый плагин пересоздаст его. Существующие воспоминания нельзя перенести напрямую, потребуется повторная дистилляция.
72
+ - **Откат на старую версию**: после `dsh plugin --profile web remove dsh-prime-memory` переустановите по документации старой версии; каталог данных сохранится, но старая версия не распознаёт новую структуру — рекомендуется его очистить.
73
+
74
+ ## Удаление
75
+
76
+ ```bash
77
+ dsh plugin --profile web remove dsh-prime-memory
78
+ ```
79
+
80
+ Данные остаются в `~/.dsh/memory/`; если они больше не нужны, удалите весь каталог вручную.
81
+
82
+ ## Поиск и устранение неисправностей
83
+
84
+ | Симптом | Вероятная причина | Решение |
85
+ | --- | --- | --- |
86
+ | После установки в настройках нет страницы «Память» | DSH не перезапущен / bundle не подключён | Перезапустите DSH Web Host; командой `dsh --profile web --dump-config` убедитесь, что `dsh-prime-memory` присутствует |
87
+ | При перезапуске ошибка `duplicate loader entry id` | в patch одновременно присутствует ручной `insert:` и добавление bundle с тем же id | Удалите добавленный вручную элемент `insert:`; пакет уже содержит собственный слой bundle |
88
+ | Нет строки «Внедрение контекста · memory» | дистилляция не запускалась / припоминание отключено | Проверьте, что режим не off и `recall.enabled=true`; найдите `L1 阶段完成` в `memory.log` |
89
+ | Загрузка локальной модели эмбеддингов зависает | зеркало недоступно по прямому соединению | Задайте `embedding.proxy` для работы через прокси; либо замените `embedding.mirror` на официальный `huggingface.co` |
90
+ | Удалённый эмбеддинг отдаёт ошибку 401 | неверная apiKey / сервис без ключа, которому ключ передавать не нужно | Проверьте `embedding.apiKey`; для собственного сервиса без ключа оставьте apiKey пустой |
91
+
92
+ Подробнее см. [README.md](./README.md) и [CHANGELOG.md](./CHANGELOG.md).
package/README.de.md CHANGED
@@ -61,7 +61,7 @@ alt="DeepSeek Harness Hero-Banner: Unterhaltungen werden automatisch zu mehrschi
61
61
  > Kompatibilitätsmechanismus: Die Settings-Registrierung durchläuft zur Laufzeit drei Zweige
62
62
  > (`register` → `installSection`-Brücke → Dauerein-Notbetrieb), siehe Eintrag 0.11.0 im
63
63
  > [CHANGELOG.md](./CHANGELOG.md). `dsh.plugin.json` deklariert
64
- > `engines.dsh` 为逐 rc 精确枚举串(0.1.0-rc.2 → 0.2.1-rc.3,18 rc).
64
+ > `engines.dsh` 为逐 rc 精确枚举串(0.1.0-rc.2 → 0.2.1-rc.4,19 rc).
65
65
 
66
66
  ## Schnellstart
67
67
 
package/README.en.md CHANGED
@@ -61,7 +61,7 @@
61
61
  > Compatibility mechanism: settings registration uses a three-way runtime branch
62
62
  > (`register` → `installSection` bridge → always-on degradation); see the 0.11.0 entry
63
63
  > in [CHANGELOG.md](./CHANGELOG.md). `dsh.plugin.json` declares
64
- > `engines.dsh` 为逐 rc 精确枚举串(0.1.0-rc.2 → 0.2.1-rc.3,18 rc).
64
+ > `engines.dsh` 为逐 rc 精确枚举串(0.1.0-rc.2 → 0.2.1-rc.4,19 rc).
65
65
 
66
66
  ## Getting Started
67
67
 
@@ -565,9 +565,9 @@ directly ("zero source-less facts" invariant: every edge traces back to live L1
565
565
  | Action | Tool | Preconditions | Notes |
566
566
  | --- | --- | --- | --- |
567
567
  | Revise one memory | `memory_update` | high-privilege mode | Read old → create new (`version+1`, new id) → old row retires via the shared soft-delete confluence with a `superseded` marker (restorable) → new version enters retrieval; then both [old, new] ids are force-reprojected so graph edges follow (edges supported only by the old source get tombstoned). Not a physical delete; the JSONL fact source is append-only and never rewritten |
568
- | Force reprojection | `memory_reproject` | `graph.enabled` | Erases the "already projected at current version" receipts and re-enqueues at top priority, bypassing the permanent `projector_version` skip. Idempotent: in-flight jobs never pile up. **Manually added/imported memories that never showed up in the graph: this is the back-fill projection channel** (non-distilled writes now auto-enqueue; the tool remains the correction path for legacy rows and post-edit freshness) |
568
+ | Force reprojection | `memory_reproject` | Overview → Knowledge graph switch, or `graph.enabled` | Erases the "already projected at current version" receipts and re-enqueues at top priority, bypassing the permanent `projector_version` skip. Idempotent: in-flight jobs never pile up. **Manually added/imported memories that never showed up in the graph: this is the back-fill projection channel** (non-distilled writes now auto-enqueue; the tool remains the correction path for legacy rows and post-edit freshness) |
569
569
  | Migrate one relation | `memory_migrate_relation` | high-privilege mode | Source-derived semantics: hard-validate that every `source_record_ids` is live and un-retired → the new relation lands through the deterministic projection branch (same (from, relation) with a new target closes the old edge) → a new L1 carrier record is written as the traceable basis (tagged `proposal_source=tool` plus a decision receipt). Old edges are not flipped back by later rejections: the reprojection batch pulls only the carrier, not sources whose text still describes the old relation |
570
- | Non-distilled writes auto-enqueue | `memory_add` / `memory_import` | `graph.enabled` | After a successful write, records join the projection queue at the same priority as distillation output (`GRAPH_PRIORITY_NEW`) — the "only distillation projects" bypass is closed |
570
+ | Non-distilled writes auto-enqueue | `memory_add` / `memory_import` | Overview → Knowledge graph switch, or `graph.enabled` | After a successful write, records join the projection queue at the same priority as distillation output (`GRAPH_PRIORITY_NEW`) — the "only distillation projects" bypass is closed |
571
571
 
572
572
  Two boundaries worth knowing:
573
573
 
package/README.es.md CHANGED
@@ -61,7 +61,7 @@ alt="Banner hero de DeepSeek Harness: las conversaciones se destilan automática
61
61
  > Mecanismo de compatibilidad: el registro de ajustes pasa en tiempo de ejecución por tres ramas
62
62
  > (`register` → puente `installSection` → degradación a siempre activado),
63
63
  > ver la entrada 0.11.0 del [CHANGELOG.md](./CHANGELOG.md). `dsh.plugin.json` declara
64
- > `engines.dsh` 为逐 rc 精确枚举串(0.1.0-rc.2 → 0.2.1-rc.3,18 rc).
64
+ > `engines.dsh` 为逐 rc 精确枚举串(0.1.0-rc.2 → 0.2.1-rc.4,19 rc).
65
65
 
66
66
  ## Inicio rápido
67
67
 
package/README.fr.md CHANGED
@@ -61,7 +61,7 @@ alt="Bannière hero de DeepSeek Harness : les conversations sont automatiquement
61
61
  > Mécanisme de compatibilité : l'enregistrement settings passe par trois branches à l'exécution
62
62
  > (`register` → pont `installSection` → dégradation en mode toujours actif),
63
63
  > voir l'entrée 0.11.0 du [CHANGELOG.md](./CHANGELOG.md). `dsh.plugin.json` déclare
64
- > `engines.dsh` 为逐 rc 精确枚举串(0.1.0-rc.2 → 0.2.1-rc.3,18 rc).
64
+ > `engines.dsh` 为逐 rc 精确枚举串(0.1.0-rc.2 → 0.2.1-rc.4,19 rc).
65
65
 
66
66
  ## Démarrage rapide
67
67
 
package/README.it.md CHANGED
@@ -61,7 +61,7 @@ alt="Banner hero di DeepSeek Harness: le conversazioni vengono distillate automa
61
61
  > Meccanismo di compatibilità: la registrazione delle impostazioni passa per tre rami a runtime
62
62
  > (`register` → ponte `installSection` → degrado a sempre-attivo),
63
63
  > vedi la voce 0.11.0 del [CHANGELOG.md](./CHANGELOG.md). `dsh.plugin.json` dichiara
64
- > `engines.dsh` 为逐 rc 精确枚举串(0.1.0-rc.2 → 0.2.1-rc.3,18 rc).
64
+ > `engines.dsh` 为逐 rc 精确枚举串(0.1.0-rc.2 → 0.2.1-rc.4,19 rc).
65
65
 
66
66
  ## Avvio rapido
67
67
 
package/README.ja.md CHANGED
@@ -62,7 +62,7 @@ alt="DeepSeek Harness ヒーロー画像:会話がバックグラウンドで
62
62
 
63
63
  > 互換メカニズム:settings 登録は 3 分岐のランタイム判定(`register` → `installSection` ブリッジ → 常時オン縮退)。
64
64
  > 詳細は [CHANGELOG.md](./CHANGELOG.md) の 0.11.0 エントリ参照。`dsh.plugin.json` は
65
- > `engines.dsh` 为逐 rc 精确枚举串(0.1.0-rc.2 → 0.2.1-rc.3,18 rc) を宣言。
65
+ > `engines.dsh` 为逐 rc 精确枚举串(0.1.0-rc.2 → 0.2.1-rc.4,19 rc) を宣言。
66
66
 
67
67
  ## クイックスタート
68
68
 
package/README.ko.md CHANGED
@@ -62,7 +62,7 @@ alt="DeepSeek Harness 히어로 이미지: 대화가 백그라운드에서 계
62
62
 
63
63
  > 호환 메커니즘: settings 등록은 3분기 런타임 분기(`register` → `installSection` 브리지 → 상시 온 강등).
64
64
  > 자세한 내용은 [CHANGELOG.md](./CHANGELOG.md)의 0.11.0 항목 참조. `dsh.plugin.json`은
65
- > `engines.dsh` 为逐 rc 精确枚举串(0.1.0-rc.2 → 0.2.1-rc.3,18 rc) 선언.
65
+ > `engines.dsh` 为逐 rc 精确枚举串(0.1.0-rc.2 → 0.2.1-rc.4,19 rc) 선언.
66
66
 
67
67
  ## 빠른 시작
68
68
 
package/README.md CHANGED
@@ -60,7 +60,7 @@ alt="DeepSeek Harness hero 横幅:对话自动分层蒸馏成记忆,模型
60
60
 
61
61
  > 兼容机制:settings 注册走运行时三分支(`register` → `installSection` 桥接 → 恒开降级),
62
62
  > 详见 [CHANGELOG.md](./CHANGELOG.md) 的 0.11.0 条目。`dsh.plugin.json` 声明
63
- > `engines.dsh` 为逐 rc 精确枚举串(0.1.0-rc.2 → 0.2.1-rc.3,18 rc)。
63
+ > `engines.dsh` 为逐 rc 精确枚举串(0.1.0-rc.2 → 0.2.1-rc.4,19 rc)。
64
64
 
65
65
  ## 快速开始
66
66
 
@@ -436,6 +436,13 @@ dsh 宿主把插件日志打到控制台;插件另把 info 级以上镜像到
436
436
  前 400 字符;所有失败告警带堆栈首帧。JSONL 事实源按轮次追加、依赖操作系统写回(不做逐条
437
437
  fsync),断电等极端崩溃最多丢最后一小段尾部,检索库可用「重建记忆」从事实源全量重导。
438
438
 
439
+ > **重建的事实源边界(0.26.11 起要说清楚)**:重建只能重蒸**事实源覆盖到的那一刻之前**的记忆。L0 正文自 T8.4 起已停写(历史面由 DRSC 供给),所以水位之后新增的记忆**不会被重新蒸馏**——它们会被**原样保留**(保留理由 `post-watermark`:来源消息不在本次快照内),不会丢。确认弹窗会直接写出「事实源覆盖到 X」与「可重造 N 条 / 原样保留 M 条」;若晚于水位的记录超过一半,启动需要二次确认(`force`)——这是**提示**而非永久拒绝(否则停写的库上重建会被永久锁死)。
440
+
441
+ > **重建的事实源可切换(`rebuild.factSource`,默认 `local`)**:
442
+ > - `local`:本地 `l0_conversations`(已停写的冻结存量),**按会话流式读**——峰值只占单会话,不再把全量正文(3 万条量级约 88MB)驻留整个重建期;
443
+ > - `drsc`(实验性):`reference-session-collector` 的投影——先枚举会话、再逐会话拉全量,**恒带 `redact=1`**(collector 的 `session` 缺省是原文臂,而捕获侧是写前脱敏)。选了 drsc 但 collector 未装配会**显式报错中止**,不静默回退本地表。
444
+ > - 注意:DRSC 无法枚举消息 id(`drsc:<sid>:<seq>` 与事实源的 `source_message_ids` 不同域),所以 `drsc` 模式下所有有来源的记忆都会被判为**不可重蒸并原样保留**(保守侧失败,不丢数据)。
445
+
439
446
  ## 与 MemoryCore 的差异
440
447
 
441
448
  - 内嵌完整管线(不依赖外部 Gateway),蒸馏复用 DSH 自己的 LLM;
@@ -513,9 +520,9 @@ fsync),断电等极端崩溃最多丢最后一小段尾部,检索库可用
513
520
  | 动作 | 工具 | 前提 | 说明 |
514
521
  | --- | --- | --- | --- |
515
522
  | 修订一条记忆 | `memory_update` | 高权限模式 | 读旧 → 造新(`version+1`,新 id)→ 旧行经退场汇流口 `superseded` 软删(可恢复)→ 新版进检索面;随后对 [旧,新] 强制重投,图谱边跟随(旧源支撑的边自动标墓碑)。不是物理删,也不覆写 JSONL 事实源 |
516
- | 强制重投 | `memory_reproject` | 配置 `graph.enabled` | 抹掉"已按当前版本投影"凭证、按高优先级重新入队——绕开 `projector_version` 的永久跳过。幂等:在途任务不堆重。**手加/导入的记忆长期不出现在图谱里,用它补投影**(非蒸馏写入现已自动入队,此工具是给存量与改后保鲜的纠正通道) |
523
+ | 强制重投 | `memory_reproject` | 概览「知识图谱」开关 或 部署 `graph.enabled` | 抹掉"已按当前版本投影"凭证、按高优先级重新入队——绕开 `projector_version` 的永久跳过。幂等:在途任务不堆重。**手加/导入的记忆长期不出现在图谱里,用它补投影**(非蒸馏写入现已自动入队,此工具是给存量与改后保鲜的纠正通道) |
517
524
  | 迁移一条关系 | `memory_migrate_relation` | 高权限模式 | 源导语义:先硬校验 `source_record_ids` 全部"现存未退场" → 新关系经确定性投影支路落库(同 (起点,关系) 换目标自动闭旧边出新边)→ 新增一条承载新关系的 L1 源记录留可回溯根据(带 `proposal_source=tool` 审计标记与决策凭证)。旧边不会因后续重投被翻回:重投批只拉载体记录,不拉描述旧关系的旧源 |
518
- | 非蒸馏写入自动入队 | `memory_add` / `memory_import` | 配置 `graph.enabled` | 落库成功后与蒸馏产出同优先级(`GRAPH_PRIORITY_NEW`)进投影队——"只有蒸馏才投影"的旁路缺口已闭合 |
525
+ | 非蒸馏写入自动入队 | `memory_add` / `memory_import` | 概览「知识图谱」开关 或 部署 `graph.enabled` | 落库成功后与蒸馏产出同优先级(`GRAPH_PRIORITY_NEW`)进投影队——"只有蒸馏才投影"的旁路缺口已闭合 |
519
526
 
520
527
  两条必须知道的边界:
521
528
 
package/README.ru.md CHANGED
@@ -61,7 +61,7 @@ alt="Баннер hero DeepSeek Harness: диалоги автоматическ
61
61
  > Механизм совместимости: регистрация настроек на этапе исполнения идёт по трём ветвям
62
62
  > (`register` → мост `installSection` → деградация в режим «всегда включено»),
63
63
  > подробнее — запись 0.11.0 в [CHANGELOG.md](./CHANGELOG.md). `dsh.plugin.json` объявляет
64
- > `engines.dsh` 为逐 rc 精确枚举串(0.1.0-rc.2 → 0.2.1-rc.3,18 rc).
64
+ > `engines.dsh` 为逐 rc 精确枚举串(0.1.0-rc.2 → 0.2.1-rc.4,19 rc).
65
65
 
66
66
  ## Быстрый старт
67
67
 
@@ -4,7 +4,9 @@ export const BENCH_CONTROL_SERVICE = 'dsh-memory-bench';
4
4
  /** 注册控制服务,返回注销函数(调用方在插件 dispose 时执行)。 */
5
5
  export function registerBenchControl(ctx, rebuild, modes, logger) {
6
6
  const surface = {
7
- rebuildStart: () => rebuild.start(),
7
+ // bench 场景自带可控数据集,需要确定性重建:水位落差的“二次确认”
8
+ // 属于人机交互护栏,不该阻断自动化赛道,故显式 force。
9
+ rebuildStart: () => rebuild.start(true),
8
10
  rebuildStatus: () => rebuild.getStatus(),
9
11
  setSessionMode: (sessionId, mode) => modes.set(sessionId, mode),
10
12
  getSessionMode: (sessionId) => modes.get(sessionId),