dsh-composer-plus 1.24.0 → 1.24.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.de.md +5 -5
- package/README.es.md +5 -5
- package/README.fr.md +5 -5
- package/README.hi.md +5 -5
- package/README.id.md +5 -5
- package/README.ja.md +5 -5
- package/README.ko.md +5 -5
- package/README.md +5 -5
- package/README.pt-BR.md +5 -5
- package/README.ru.md +5 -5
- package/README.tr.md +5 -5
- package/README.vi.md +5 -5
- package/README.zh.md +5 -5
- package/client.js +3 -3
- package/index.js +4 -3
- package/package.json +1 -1
- package/release-notes.json +14 -14
package/README.de.md
CHANGED
|
@@ -29,7 +29,7 @@ dsh plugin --profile web add dsh-composer-plus
|
|
|
29
29
|
|
|
30
30
|
Starte dsh danach neu. (Die CLI kann nicht in das Desktop-Profil installieren; dieses Profil verwaltet die App.)
|
|
31
31
|
|
|
32
|
-
> Das pnpm von dsh überspringt Versionen, die jünger als 24 Stunden sind. Gib direkt nach einem Release die Version mit an: `dsh-composer-plus@1.24.
|
|
32
|
+
> Das pnpm von dsh überspringt Versionen, die jünger als 24 Stunden sind. Gib direkt nach einem Release die Version mit an: `dsh-composer-plus@1.24.1`.
|
|
33
33
|
|
|
34
34
|
## Funktionen
|
|
35
35
|
|
|
@@ -75,7 +75,7 @@ Starte dsh danach neu. (Die CLI kann nicht in das Desktop-Profil installieren; d
|
|
|
75
75
|
| **Geschützte Dateien** | <a id="feature-protectedfiles"></a>Standardmäßig an. Die eigenen Datei-Tools des Agenten können Dateien, die zu deinen Mustern passen, weder lesen noch ändern: `read`, `read_image` und `grep` auf eine Datei werden bei Mustern mit **Lesen und Schreiben** abgelehnt, `write`, `edit` und `str_replace_editor` bei beiden Arten. Der Agent liest den Grund und wird angewiesen, dich zu fragen. Die Standardmuster sind `.env*`, `*.pem` und `*.key`. Einstellungen → Composer Plus → **Geschützte Dateien**: Füge ein Muster hinzu (zum Beispiel `published/**` oder `config/*.yml`), klicke auf seine Art, um zwischen **Lesen und Schreiben** und **nur Schreiben** zu wechseln, entferne es mit ✕ oder klicke auf **Standardwerte verwenden**. Ein Muster ohne `/` passt auf einen Dateinamen in jedem Ordner. Das ist eine Leitplanke, keine Sandbox: Ein Shell-Befehl (`cat .env`), ein Skript oder ein MCP-Tool kann die Datei trotzdem erreichen (siehe Grenzen). | <a href="assets/features/protectedFiles.webp"><img src="assets/features/protectedFiles.webp" width="160" alt="Screenshot: Geschützte Dateien"></a> |
|
|
76
76
|
| **Blockierte Befehle** | <a id="feature-blockedcommands"></a>Standardmäßig an, mit einer leeren Liste. Die Shell-Befehle des Agenten (`bash`, `pwsh`) können keinen Befehl ausführen, der zu deinen Regeln passt: Eine Regel mit **blockieren** lehnt den Aufruf ab (der Agent liest den Grund und wird angewiesen, dich zu fragen), eine Regel mit **zuerst fragen** zeigt die Genehmigungskarte von dsh, und der Befehl läuft nur, wenn du ihn zulässt. Einstellungen → Composer Plus → **Blockierte Befehle**: Gib eine Regel ein (zum Beispiel `npm publish`, `git push --force` oder `ssh *192.168.2.19`), klicke auf die Art, um zwischen **blockieren** und **zuerst fragen** zu wechseln, dann auf **Hinzufügen**; klicke auf die Art einer Regel, um sie zu ändern, und entferne sie mit ✕. Eine Regel ist ein Befehlsname und Wörter, die in dieser Reihenfolge nach ihm kommen müssen; `*` passt auf beliebigen Text. Die Funktion findet den Befehl auch nach `&&`, `;`, `\|`, innerhalb von `$(…)`, `bash -c "…"` oder `eval` sowie nach `sudo` oder `env`. Das ist eine Leitplanke, keine Sandbox: Eine Variable (`$CMD`), eine Skriptdatei oder ein anderes Programm kann den Befehl trotzdem ausführen (siehe Grenzen). | <a href="assets/features/blockedCommands.webp"><img src="assets/features/blockedCommands.webp" width="160" alt="Screenshot: Blockierte Befehle"></a> |
|
|
77
77
|
| **Aufgabentafel** | <a id="feature-taskboard"></a>Linke Seitenleiste → **Aufgabentafel**, oder drücke überall in dsh `Cmd+Shift+K` (`Strg+Shift+K` unter Windows und Linux). Eine Kanban-Tafel deiner dsh-Chats mit dem Live-Zustand, den die Seitenleiste zeigt: Ein Chat, der auf deine Genehmigung, deine Antwort oder die Prüfung eines Plans wartet, steht mit einem orangen Punkt in **In Prüfung**, ein laufender Chat steht in **In Arbeit**, ein beendeter Chat, den du noch nicht geöffnet hast, steht in **Fertig** (grün). Wenn du einen Chat öffnest, verlässt seine Karte **Fertig** von selbst; klicke unter den grünen Karten auf **Kürzlich beendet (N)**, um die beendeten Chats zu sehen, die du gelesen hast (die 10 neuesten, dann **N ältere anzeigen**; offen oder zu bleibt auf diesem Gerät). Ein Chat, der fertig wird, während er hinter der Tafel offen ist (eine **Neue Aufgabe**), bleibt grün, bis du ihn öffnest. Klicke oben auf der Tafel auf den Projektnamen, um die Projektliste zu öffnen, und wähle ein Projekt oder **Alle Projekte**; der Ordner eines Branches pro Chat zählt zu seinem Projekt. Die Liste schließt sich nach der Auswahl, mit `Esc` oder mit einem Klick außerhalb. Tippe oben in der Liste in **Projekte durchsuchen**, um ein Projekt nach seinem Namen zu finden (Groß- und Kleinschreibung und Akzente spielen keine Rolle; `Esc` leert das Feld), drücke `Enter`, um den ersten Treffer zu wählen, und klicke auf **In den letzten 2 Stunden aktiv**, um nur Projekte mit einem Chat zu zeigen, der wartet, läuft, ungesehen fertig wurde oder sich in den letzten 2 Stunden geändert hat (bleibt auf diesem Gerät gespeichert). **Neue Aufgabe** (oder `n`) öffnet den eigenen neuen Chat von dsh in dem Projekt, das die Tafel zeigt (bei **Alle Projekte** das Projekt, das Neue Sitzung von dsh wählt), damit du wie in jedem Chat Dateien hinzufügen, Befehle nutzen und das Modell wählen kannst. Wenn deine erste Nachricht abgeht, kommt die Tafel von selbst zurück. Bis dahin wartet der Chat oben in **In Arbeit** als **Neue Aufgabe**: Klicke darauf, um die erste Nachricht zu schreiben. Ein Projekt mit einem Chat, der auf dich wartet, hat in der Projektliste einen orangen Punkt (der Projektname oben hat ihn auch, solange ein Chat wartet). dsh benennt den Chat, und das Modell des Chats schreibt aus dieser Nachricht bis zu 3 Schlagwörter. Klicke auf eine Karte, um ihren Chat zu öffnen. Klicke auf eine orange Karte (oder auf ihr **Antworten**), um direkt auf der Tafel zu antworten; das Feld hat **Chat öffnen** für den ganzen Chat: **Ablehnen** oder **Einmal zulassen**, **Genehmigen** oder **Änderungen anfordern** bei einem Plan, oder die Optionen und dein eigener Text bei einer Frage. Klicke auf einer beendeten Karte auf **×**, um sie von der Tafel zu nehmen, oder öffne **Kürzlich beendet** und klicke oben in **Fertig** auf **Alle entfernen**, um diese Karten von der Tafel zu nehmen: Zuerst zeigt ein Dialog, wie viele Karten welches Projekts gehen, und ungelesene (grüne) Karten bleiben. In den 8 Sekunden danach legt **Rückgängig** die Karten zurück; **Entfernt (N)** unter **Fertig** listet die Karten, die von der Tafel genommen sind, und **Zurücklegen** zeigt eine davon wieder in **Fertig**. Kein Chat wird gelöscht: Die Chats bleiben in der Seitenleiste von dsh, die Tafel merkt sich das auch nach einem Neustart (Tether zeigt dieselbe Tafel), und ein Chat, der wieder läuft, kommt zurück. Zeige auf eine Karte in **In Arbeit** (oder setze den Tastaturfokus darauf), um ihren Fortschritt zu sehen: wie lange der Chat läuft, den Schritt seiner To-do-Liste, das Tool, das gerade läuft, und die letzte Zeile des Agenten. Unter Einstellungen → Composer Plus → Aufgabentafel wählt **Fortschritt beim Darüberfahren** zwischen **Schnell (ohne KI)** (Standard: liest nur den Chat) und **KI-Zusammenfassung** (ein kurzer Aufruf an das Modell des Chats schreibt zusätzlich ein oder zwei Sätze). | <a href="assets/features/taskBoard.webp"><img src="assets/features/taskBoard.webp" width="160" alt="Screenshot: Aufgabentafel"></a> |
|
|
78
|
-
| **Assistent** | <a id="feature-assistant"></a>Standardmäßig
|
|
78
|
+
| **Assistent** | <a id="feature-assistant"></a>Standardmäßig an (ausschalten unter **Einstellungen → Composer Plus**). Klicke in der linken Seitenleiste auf **Assistent** (direkt unter **Aufgabentafel**): Es öffnet sich ein dauerhafter Chat, den du wie einen ChatGPT- oder Grok-Chat als persönlichen Assistenten nutzt. Der erste Klick legt den Ordner `~/Assistant` an, fügt ihn als Projekt "Assistant" hinzu und startet den Chat mit dem Berechtigungsmodus workspace-write und dem Standardmodell von dsh; jeder spätere Klick öffnet denselben Chat (ein archivierter kommt zurück, ein gelöschter wird neu angelegt). Bitte ihn um eine Erinnerung („erinnere mich in 2 Minuten daran, Wasser zu trinken“): Er nutzt die geplanten Aufgaben von dsh, daher führt die Erinnerung den Chat zu dieser Zeit aus, und Tether sendet seine Benachrichtigung "Turn finished", wenn Mobile Verbindung an ist. Bitte ihn, im Web zu suchen, oder frag ihn nach deinen anderen Chats: Er kann die Chats aller Projekte auflisten (läuft, wartet auf dich oder inaktiv) und die neuesten Nachrichten eines Chats lesen. Er kann auch einem Chat eine Nachricht senden, in einem Projekt einen neuen Chat starten, einen laufenden Chat stoppen oder einen Chat archivieren: Jede dieser vier Aktionen zeigt zuerst die Genehmigungskarte von dsh (auch in Tether), und nichts passiert, bevor du auf **Einmal zulassen** klickst. Er hat kein Tool zum Löschen. Nur dieser Chat hat diese Tools und seine kurzen Anweisungen; Text, den er auf einer Webseite oder in einem anderen Chat liest, gilt als Daten, nicht als Anweisung. Speichere dein Profil im Gedächtnis dieses Projekts (**Projektgedächtnis**, Thema "profil"), statt es ihm jedes Mal zu erzählen. | <a href="assets/features/assistant.webp"><img src="assets/features/assistant.webp" width="160" alt="Screenshot: Assistent"></a> |
|
|
79
79
|
| **Projektgedächtnis** | <a id="feature-projectmemory"></a>Standardmäßig aus: Schalte die Funktion unter **Einstellungen → Composer Plus** ein. Jeder Projektordner bekommt ein eigenes Gedächtnis, das spätere Chats dieses Projekts lesen, so wie DS Bot eines pro Bot führt. Nach jeder abgeschlossenen Runde liest ein Aufruf an das Modell des Chats die neuen Nachrichten (keine zurückgenommenen), speichert deine dauerhaften Vorlieben, Entscheidungen und Fakten als kurze Notizen und ändert oder entfernt alte. Der Agent kann Notizen auch selbst speichern, entfernen und suchen (`memory_remember`, `memory_forget`, `memory_recall`). Eine Notiz kann auch global sein: Jedes Projekt liest sie. Ein neuer Chat bekommt die Notizen in seinem Systemprompt; eine später gespeicherte Notiz erscheint ab dem nächsten Chat. Die Dateien sind Markdown im dsh-Basisordner (`storages/dsh-composer-plus/memory/`), nie im Projektordner. **Gedächtnis öffnen** in derselben Zeile zeigt alle gespeicherten Notizen nach Projekt gruppiert (und das globale Gedächtnis), mit einem Filter. Schreibe in eigenen Worten, was sich ändern soll (zum Beispiel „ich nutze jetzt pnpm statt yarn“), dann **Änderungen ansehen**: Das Standardmodell von dsh schlägt die Änderungen vor, und erst **Anwenden** speichert sie. In Tether: Menü des Chat-Titels → Project memory. | <a href="assets/features/projectMemory.webp"><img src="assets/features/projectMemory.webp" width="160" alt="Screenshot: Projektgedächtnis"></a> |
|
|
80
80
|
| **Versionsverlauf des Gedächtnisses** | <a id="feature-memoryhistory"></a>Standardmäßig an, solange **Projektgedächtnis** an ist. Vor jedem Speichern des Gedächtnisses (der Agent, die Prüfung nach einem Durchgang, **Gedächtnis öffnen**) wird eine Kopie der Notizen im vorherigen Zustand behalten. Wähle in **Gedächtnis öffnen** ein Projekt oder **Globales Gedächtnis** und dann **Verlauf**: die Versionen nach Datum und wer das Gedächtnis danach geändert hat. Wähle eine Version, um als Diff zu sehen, was eine Wiederherstellung ändert, dann **Wiederherstellen**. Die Notizen vor einer Wiederherstellung werden auch behalten, sodass du sie rückgängig machen kannst. Die neuesten 50 Versionen jedes Gedächtnisses bleiben. In Tether: Menü des Chat-Titels → Project memory → History. | <a href="assets/features/memoryHistory.webp"><img src="assets/features/memoryHistory.webp" width="160" alt="Screenshot: Versionsverlauf des Gedächtnisses"></a> |
|
|
81
81
|
| **Gedächtnis nach AGENTS.md exportieren** | <a id="feature-memoryexport"></a>Wähle in **Gedächtnis öffnen** ein Projekt und dann **Nach AGENTS.md exportieren**: Die Notizen dieses Projekts kommen in einen markierten Abschnitt von `AGENTS.md` in seinem Ordner, damit du sie committen und mit deinem Team und anderen Agent-Tools teilen kannst. Du siehst die Änderung zuerst als Diff; nur **AGENTS.md schreiben** speichert sie. Der nächste Export ersetzt nur diesen Abschnitt. Globales Gedächtnis, Quellen und Daten bleiben draußen. In Tether: Menü des Chat-Titels → Project memory → Export to AGENTS.md. | <a href="assets/features/memoryExport.webp"><img src="assets/features/memoryExport.webp" width="160" alt="Screenshot: Gedächtnis nach AGENTS.md exportieren"></a> |
|
|
@@ -226,7 +226,7 @@ Getestet mit dsh `0.2.0-rc.2` (Desktop und Web) und `0.2.1-rc.2` (Web). Die CI f
|
|
|
226
226
|
- **Kein Branch-Etikett an einer Chatzeile:** Die Seitenleiste ist nicht in „In einer Liste“ (in „Arbeitsbereich“ und „Arbeitsbereichsbaum“ zeigt keine Chatzeile ein Etikett), der Chat hatte seit der Installation dieser Version keine Runde, sein Ordner ist kein git-Repository, oder **Git-Branch in Chatzeilen** ist aus. Starte dsh nach einem Update neu (die Host-Hälfte zeichnet den Branch auf).
|
|
227
227
|
- **Zielprüfung meldet, dass der Test mit Code 127 oder „not found“ beendet wurde:** Ein dsh, das aus dem Finder oder dem Dock gestartet wurde, kann einen kürzeren PATH als dein Terminal haben und findet daher `npm`, `pnpm` oder `cargo` nicht. Starte dsh aus einem Terminal, oder lege unter **Zielprüfung** → **Bearbeiten** deinen eigenen Testbefehl mit dem vollständigen Pfad fest. **Jetzt ausführen** zeigt das Ergebnis sofort.
|
|
228
228
|
- **Das Ziel schließt sich nicht und der Agent arbeitet weiter:** **Zielprüfung** hat einen fehlschlagenden Test oder fehlende Arbeit gefunden. Die Zeile unter dem Ziel zeigt den Grund (fahre mit der Maus über das Ergebnis, um die Details zu sehen). Behebe die Ursache oder den Testbefehl, oder schließe das Ziel selbst mit `/goal` oder der Zielleiste ab (das wird nicht geprüft).
|
|
229
|
-
- **Die Installation schlägt direkt nach einem Release fehl:** Gib die Version mit an (`dsh-composer-plus@1.24.
|
|
229
|
+
- **Die Installation schlägt direkt nach einem Release fehl:** Gib die Version mit an (`dsh-composer-plus@1.24.1`), siehe den Hinweis zur Installation oben.
|
|
230
230
|
- **Jetzt sichern meldet „Eine andere Sicherungsaktion läuft“:** Eine Aktion läuft in einem anderen dsh-Fenster oder in der Rettungskonsole (sie teilen sich eine Sperrdatei, `.composer-plus.lock`, im Sicherungsordner). Warte, bis sie fertig ist. Läuft keine Aktion, wird die Sperre eines beendeten Prozesses beim nächsten Klick übernommen.
|
|
231
231
|
- **Die Rettungskonsole meldet „dsh is running“:** Beende zuerst dsh. Ist dsh wirklich geschlossen, ist die in der Meldung genannte Datei von einem Absturz übrig: Entferne sie und versuche es erneut.
|
|
232
232
|
- **Nach einer Wiederherstellung startet dsh nicht oder ein Plugin fehlt:** Die Plugin-Pakete eines Profils müssen neu installiert werden. Die Rettungskonsole bietet das nach einer Wiederherstellung an; oder führe `pnpm install` in jedem Ordner unter `$DSH_HOME/profiles/` aus, den sie auflistet. Geheimnisse, die nicht im vault waren (anderer Computer), müssen neu eingegeben werden: Die Konsole listet sie auf.
|
|
@@ -350,7 +350,7 @@ Getestet mit dsh `0.2.0-rc.2` (Desktop und Web) und `0.2.1-rc.2` (Web). Die CI f
|
|
|
350
350
|
|
|
351
351
|
**Kann ich alle meine Chats als Kanban-Tafel sehen und von dort neue starten?** Ja, mit **Aufgabentafel** (standardmäßig an): Öffne sie in der linken Seitenleiste. Jeder Chat ist eine Karte in **In Arbeit**, **In Prüfung** (er wartet auf dich) oder **Fertig**. **Neue Aufgabe** öffnet den neuen Chat von dsh im Projekt, und die Tafel kommt zurück, wenn deine erste Nachricht abgeht; klicke auf einer orangen Karte auf **Antworten**, um zu antworten, ohne den Chat zu öffnen. **Alle entfernen** in **Fertig** fragt zuerst und nimmt die fertigen Karten, die du gelesen hast, von der Tafel; **Rückgängig** und **Entfernt (N)** holen sie zurück, und die Chats bleiben in dsh.
|
|
352
352
|
|
|
353
|
-
**Kann ich einen persönlichen Assistenten-Chat haben, der mich erinnert und meine anderen Chats verwaltet?** Ja, mit **Assistent** (standardmäßig
|
|
353
|
+
**Kann ich einen persönlichen Assistenten-Chat haben, der mich erinnert und meine anderen Chats verwaltet?** Ja, mit **Assistent** (standardmäßig an): Klicke in der linken Seitenleiste auf **Assistent**. Er legt Erinnerungen mit den geplanten Aufgaben von dsh an, sucht im Web, listet und liest deine Chats und sendet einem Chat eine Nachricht oder startet, stoppt oder archiviert einen Chat erst, nachdem du es genehmigt hast. Speichere dein Profil im Gedächtnis seines Projekts, Thema "profil".
|
|
354
354
|
|
|
355
355
|
**Kann dsh meine Chats und Einstellungen sichern, so wie dsh-backup?** Ja: **Einstellungen → Composer Plus → Sicherung → Jetzt sichern**. Es schreibt dasselbe Archivformat in denselben Ordner (`~/Desktop/dsh-backups`). Daher erscheinen auch die Archive von dsh-backup und lassen sich wiederherstellen, und du kannst dsh-backup entfernen. Schalte **Automatische Sicherung** ein, um nach Zeitplan zu sichern.
|
|
356
356
|
|
|
@@ -504,7 +504,7 @@ SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-queue-stop-send.mjs /pat
|
|
|
504
504
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-queue-edit.mjs /path/to/dsh/lib/bin.js
|
|
505
505
|
# Task board: New task opens dsh's new chat and comes back after the first message, AI tags, live columns, Answer on the board, × with Undo, Clear all with its question (unread cards stay), Removed and Put back (kept after a restart), the switch
|
|
506
506
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-task-board.mjs /path/to/dsh/lib/bin.js
|
|
507
|
-
# Assistant:
|
|
507
|
+
# Assistant: on by default, sidebar row under Task board, one chat in ~/Assistant (workspace-write), a reminder that runs the chat, chats_list, chat_send after its approval card, an injected chat_send rejected, no tools in other chats, automations of other chats (dsh 0.2.2+), switch off
|
|
508
508
|
SHOT=1 CHECK_DELAY=20 PLAYWRIGHT=/path/to/playwright node test/browser-assistant.mjs /path/to/dsh/lib/bin.js
|
|
509
509
|
```
|
|
510
510
|
|
package/README.es.md
CHANGED
|
@@ -29,7 +29,7 @@ dsh plugin --profile web add dsh-composer-plus
|
|
|
29
29
|
|
|
30
30
|
Después, reinicia dsh. (La CLI no puede instalar en el perfil de escritorio: de eso se encarga la app).
|
|
31
31
|
|
|
32
|
-
> El pnpm de dsh omite las versiones publicadas hace menos de 24 horas. Justo después de una versión nueva, añade la versión: `dsh-composer-plus@1.24.
|
|
32
|
+
> El pnpm de dsh omite las versiones publicadas hace menos de 24 horas. Justo después de una versión nueva, añade la versión: `dsh-composer-plus@1.24.1`.
|
|
33
33
|
|
|
34
34
|
## Funciones
|
|
35
35
|
|
|
@@ -75,7 +75,7 @@ Después, reinicia dsh. (La CLI no puede instalar en el perfil de escritorio: de
|
|
|
75
75
|
| **Archivos protegidos** | <a id="feature-protectedfiles"></a>Activado de forma predeterminada. Las herramientas de archivos propias del agente no pueden leer ni cambiar los archivos que coinciden con tus patrones: `read`, `read_image` y `grep` sobre un archivo se rechazan con los patrones de **lectura y escritura**, y `write`, `edit` y `str_replace_editor` con los dos tipos. El agente lee el motivo y se le indica que te pregunte. Los patrones predeterminados son `.env*`, `*.pem` y `*.key`. Configuración → Composer Plus → **Archivos protegidos**: añade un patrón (por ejemplo `published/**` o `config/*.yml`), haz clic en su tipo para cambiar entre **lectura y escritura** y **solo escritura**, quítalo con ✕ o haz clic en **Usar los valores predeterminados**. Un patrón sin `/` coincide con un nombre de archivo en cualquier carpeta. Es una barrera de protección, no un sandbox: un comando de shell (`cat .env`), un script o una herramienta MCP aún pueden llegar al archivo (consulta Límites). | <a href="assets/features/protectedFiles.webp"><img src="assets/features/protectedFiles.webp" width="160" alt="Captura: Archivos protegidos"></a> |
|
|
76
76
|
| **Comandos bloqueados** | <a id="feature-blockedcommands"></a>Activado de forma predeterminada, con una lista vacía. Los comandos de shell del agente (`bash`, `pwsh`) no pueden ejecutar un comando que coincida con tus reglas: una regla **bloquear** rechaza la llamada (el agente lee el motivo y se le indica que te pregunte), una regla **preguntar antes** muestra la tarjeta de aprobación de dsh, y el comando solo se ejecuta cuando tú lo permites. Configuración → Composer Plus → **Comandos bloqueados**: escribe una regla (por ejemplo `npm publish`, `git push --force` o `ssh *192.168.2.19`), haz clic en el tipo para cambiar entre **bloquear** y **preguntar antes** y luego haz clic en **Añadir**; haz clic en el tipo de una regla para cambiarlo y quítala con ✕. Una regla es un nombre de comando y palabras que deben venir después de él en este orden; `*` coincide con cualquier texto. La comprobación también encuentra el comando después de `&&`, `;`, `\|`, dentro de `$(…)`, `bash -c "…"` o `eval`, y después de `sudo` o `env`. Es una barrera de protección, no un sandbox: una variable (`$CMD`), un archivo de script u otro programa aún pueden ejecutar el comando (consulta Límites). | <a href="assets/features/blockedCommands.webp"><img src="assets/features/blockedCommands.webp" width="160" alt="Captura: Comandos bloqueados"></a> |
|
|
77
77
|
| **Tablero de tareas** | <a id="feature-taskboard"></a>Barra lateral izquierda → **Tablero de tareas**, o pulsa `Cmd+Shift+K` (`Ctrl+Shift+K` en Windows y Linux) en cualquier lugar de dsh. Un tablero kanban de tus chats de dsh con el estado en vivo que muestra la barra lateral: un chat que espera tu aprobación, tu respuesta o la revisión de un plan está en **En revisión** con un punto naranja, un chat en ejecución está en **En curso** y un chat terminado que aún no abriste está en **Hecho** (verde). Cuando abres un chat, su tarjeta sale de **Hecho** por sí sola; haz clic en **Terminados hace poco (N)**, debajo de las tarjetas verdes, para ver los chats terminados que ya leíste (los 10 más recientes y luego **Mostrar N más antiguas**; abierto o cerrado se guarda en este dispositivo). Un chat que termina mientras está abierto detrás del tablero (una **Nueva tarea**) sigue verde hasta que lo abres. Haz clic en el nombre del proyecto, arriba del tablero, para abrir la lista de proyectos y elige un proyecto o **Todos los proyectos**; una carpeta de «Una rama por chat» cuenta como su proyecto. La lista se cierra al elegir, con `Esc` o con un clic fuera de ella. Escribe en **Buscar proyectos**, arriba de la lista, para encontrar un proyecto por su nombre (no importan las mayúsculas ni los acentos; `Esc` vacía el cuadro), pulsa `Enter` para elegir la primera coincidencia y haz clic en **Activos en las últimas 2 horas** para mostrar solo los proyectos con un chat que espera, se ejecuta, terminó sin que lo vieras o cambió en las últimas 2 horas (se guarda en este dispositivo). **Nueva tarea** (o `n`) abre el propio chat nuevo de dsh en el proyecto que muestra el tablero (con **Todos los proyectos**, el proyecto que elige Nueva sesión de dsh), así que puedes añadir archivos, usar comandos y elegir el modelo como en cualquier chat. Cuando se envía tu primer mensaje, el tablero vuelve por sí solo. Hasta entonces, el chat espera en la parte superior de **En curso** como **Nueva tarea**: haz clic en él para escribir el primer mensaje. Un proyecto con un chat que te espera tiene un punto naranja en la lista de proyectos (el nombre del proyecto arriba también lo tiene mientras algún chat espera). dsh pone nombre al chat y el modelo del chat escribe hasta 3 etiquetas a partir de ese mensaje. Haz clic en una tarjeta para abrir su chat. Haz clic en una tarjeta naranja (o en su **Responder**) para responderla en el tablero; el panel tiene **Abrir chat** para ver el chat entero: **Rechazar** o **Permitir una vez**, **Aprobar** o **Solicitar cambios** para un plan, o las opciones y tu propio texto para una pregunta. Haz clic en **×** en una tarjeta terminada para quitarla del tablero, o abre **Terminados hace poco** y haz clic en **Limpiar todo**, en la parte superior de **Hecho**, para quitar esas tarjetas del tablero: primero muestra cuántas tarjetas de qué proyecto se quitan, y las tarjetas sin leer (verdes) se quedan. Durante los 8 segundos siguientes, **Deshacer** devuelve las tarjetas; **Quitadas (N)**, debajo de **Hecho**, lista las tarjetas que están fuera del tablero, y **Volver a poner** muestra una de nuevo en **Hecho**. No se borra ningún chat: los chats siguen en la barra lateral de dsh, el tablero lo recuerda después de reiniciar (Tether muestra el mismo tablero) y un chat que vuelve a ejecutarse regresa al tablero. Apunta a una tarjeta de **En curso** (o mueve el foco del teclado a ella) para ver su progreso: cuánto tiempo lleva en ejecución, el paso de su lista de tareas pendientes, la herramienta que se ejecuta ahora y la última línea del agente. En Configuración → Composer Plus → Tablero de tareas, **Progreso al pasar el cursor** elige **Rápido (sin IA)** (el predeterminado: solo lee el chat) o **Resumen con IA** (una llamada corta al modelo del chat también escribe una o dos frases). | <a href="assets/features/taskBoard.webp"><img src="assets/features/taskBoard.webp" width="160" alt="Captura: Tablero de tareas"></a> |
|
|
78
|
-
| **Asistente** | <a id="feature-assistant"></a>
|
|
78
|
+
| **Asistente** | <a id="feature-assistant"></a>Activado de forma predeterminada (desactívalo en **Configuración → Composer Plus**). Haz clic en **Asistente** en la barra lateral izquierda (justo debajo de **Tablero de tareas**): abre un chat permanente que usas como tu asistente personal, como un chat de ChatGPT o Grok. El primer clic crea la carpeta `~/Assistant`, la añade como el proyecto "Assistant" e inicia el chat con el modo de permisos workspace-write y el modelo predeterminado de dsh; cada clic posterior abre el mismo chat (uno archivado vuelve, uno eliminado se crea de nuevo). Pídele que te recuerde algo («recuérdame beber agua dentro de 2 minutos»): usa las tareas programadas de dsh, así que el recordatorio ejecuta el chat a esa hora, y Tether envía su notificación "Turn finished" cuando Conexión móvil está activada. Pídele que busque en la web o pregúntale por tus otros chats: puede listar los chats de todos los proyectos (en ejecución, esperándote o inactivos) y leer los mensajes más recientes de uno. También puede enviar un mensaje a un chat, iniciar un chat nuevo en un proyecto, detener un chat en ejecución o archivar uno: cada una de estas cuatro acciones muestra primero la tarjeta de aprobación de dsh (también en Tether), y no pasa nada hasta que haces clic en **Permitir una vez**. No tiene ninguna herramienta para eliminar. Solo este chat tiene estas herramientas y sus instrucciones breves; el texto que lee en una página web o en otro chat cuenta como datos, no como una orden. Guarda tu perfil en la memoria de este proyecto (**Memoria del proyecto**, tema "profil") en lugar de contárselo cada vez. | <a href="assets/features/assistant.webp"><img src="assets/features/assistant.webp" width="160" alt="Captura: Asistente"></a> |
|
|
79
79
|
| **Memoria del proyecto** | <a id="feature-projectmemory"></a>Desactivada de forma predeterminada: actívala en **Configuración → Composer Plus**. Cada carpeta de proyecto tiene su propia memoria, que los chats posteriores de ese proyecto leen, como DS Bot guarda una por Bot. Después de cada turno terminado, una llamada al modelo del chat lee los mensajes nuevos (no los revertidos), guarda tus preferencias, decisiones y datos duraderos como notas breves, y cambia o elimina las antiguas. El agente también puede guardar, eliminar y buscar notas por sí mismo (`memory_remember`, `memory_forget`, `memory_recall`). Una nota también puede ser global: todos los proyectos la leen. Un chat nuevo recibe las notas en su prompt de sistema; una nota guardada después aparece desde el chat siguiente. Los archivos son Markdown en la carpeta de inicio de dsh (`storages/dsh-composer-plus/memory/`), nunca en la carpeta del proyecto. **Abrir memoria**, en la misma fila, muestra todas las notas guardadas agrupadas por proyecto (y la memoria global), con un filtro. Escribe con tus palabras qué cambiar (por ejemplo "cambié yarn por pnpm") y pulsa **Vista previa de los cambios**: el modelo predeterminado de dsh propone los cambios y solo **Aplicar** los guarda. En Tether: menú del título del chat → Project memory. | <a href="assets/features/projectMemory.webp"><img src="assets/features/projectMemory.webp" width="160" alt="Captura: Memoria del proyecto"></a> |
|
|
80
80
|
| **Historial de versiones de la memoria** | <a id="feature-memoryhistory"></a>Activado por defecto mientras **Memoria del proyecto** está activada. Antes de cada guardado de la memoria (el agente, la revisión tras un turno, **Abrir memoria**), se guarda una copia de las notas tal como estaban. En **Abrir memoria**, selecciona un proyecto o **Memoria global** y luego **Historial**: las versiones por fecha y quién cambió la memoria después de cada una. Selecciona una versión para ver como diff lo que cambia una restauración y luego **Restaurar**. Las notas anteriores a una restauración también se guardan, así que puedes deshacerla. Se conservan las 50 versiones más recientes de cada memoria. En Tether: menú del título del chat → Project memory → History. | <a href="assets/features/memoryHistory.webp"><img src="assets/features/memoryHistory.webp" width="160" alt="Captura: Historial de versiones de la memoria"></a> |
|
|
81
81
|
| **Exportar la memoria a AGENTS.md** | <a id="feature-memoryexport"></a>En **Abrir memoria**, selecciona un proyecto y luego **Exportar a AGENTS.md**: las notas de ese proyecto van a una sección marcada de `AGENTS.md` en su carpeta, para que puedas confirmarlas en git y compartirlas con tu equipo y otras herramientas de agentes. Primero ves el cambio como diff; solo **Escribir AGENTS.md** lo guarda. La siguiente exportación sustituye solo esa sección. La memoria global, las fuentes y las fechas no se incluyen. En Tether: menú del título del chat → Project memory → Export to AGENTS.md. | <a href="assets/features/memoryExport.webp"><img src="assets/features/memoryExport.webp" width="160" alt="Captura: Exportar la memoria a AGENTS.md"></a> |
|
|
@@ -226,7 +226,7 @@ Probado en dsh `0.2.0-rc.2` (escritorio y web) y `0.2.1-rc.2` (web). La CI ejecu
|
|
|
226
226
|
- **No hay etiqueta de rama en una fila de chat:** la barra lateral no está en «En una sola lista» (en «Espacio de trabajo» y «Árbol de espacios de trabajo», ninguna fila de chat muestra una etiqueta), el chat no tuvo ningún turno desde que instalaste esta versión, su carpeta no es un repositorio git o **Rama de Git en las filas de chat** está desactivada. Después de una actualización, reinicia dsh (la parte Host registra la rama).
|
|
227
227
|
- **Comprobación del objetivo dice que la prueba terminó con el código 127 o «not found»:** dsh iniciado desde el Finder o el Dock puede tener un PATH más corto que tu terminal, así que no encuentra `npm`, `pnpm` ni `cargo`. Inicia dsh desde una terminal, o define tu propio comando de prueba con la ruta completa en **Comprobación del objetivo** → **Editar**. **Ejecutar ahora** muestra el resultado al momento.
|
|
228
228
|
- **El objetivo no se cierra y el agente sigue trabajando:** **Comprobación del objetivo** encontró una prueba fallida o trabajo pendiente; la fila bajo el objetivo muestra el motivo (pasa el puntero por el resultado para ver los detalles). Corrige la causa o el comando de prueba, o completa el objetivo tú mismo con `/goal` o con la barra del objetivo (eso no se comprueba).
|
|
229
|
-
- **La instalación falla justo después de una versión nueva:** añade la versión (`dsh-composer-plus@1.24.
|
|
229
|
+
- **La instalación falla justo después de una versión nueva:** añade la versión (`dsh-composer-plus@1.24.1`); consulta la nota de instalación de más arriba.
|
|
230
230
|
- **Hacer copia ahora dice «Ya hay otra acción de copia de seguridad en curso»:** hay una acción en marcha en otra ventana de dsh o en la consola de rescate (comparten un archivo de bloqueo, `.composer-plus.lock`, en la carpeta de copias de seguridad). Espera a que termine. Si no hay ninguna acción en marcha, el siguiente clic toma el bloqueo de un proceso cerrado.
|
|
231
231
|
- **La consola de rescate dice «dsh is running»:** primero sal de dsh. Si dsh está realmente cerrado, el archivo que nombra el mensaje quedó de un cierre inesperado: elimínalo y vuelve a intentarlo.
|
|
232
232
|
- **Después de una restauración, dsh no se inicia o falta un plugin:** hay que volver a instalar los paquetes de plugins de un perfil. La consola de rescate lo ofrece después de una restauración; o ejecuta `pnpm install` en cada carpeta de `$DSH_HOME/profiles/` que indique. Los secretos que no estaban en el vault (otro equipo) hay que introducirlos de nuevo: la consola los enumera.
|
|
@@ -350,7 +350,7 @@ Probado en dsh `0.2.0-rc.2` (escritorio y web) y `0.2.1-rc.2` (web). La CI ejecu
|
|
|
350
350
|
|
|
351
351
|
**¿Puedo ver todos mis chats como un tablero kanban e iniciar chats nuevos desde él?** Sí, con **Tablero de tareas** (activado de forma predeterminada): ábrelo en la barra lateral izquierda. Cada chat es una tarjeta en **En curso**, **En revisión** (te espera) o **Hecho**. **Nueva tarea** abre el chat nuevo de dsh en el proyecto, y el tablero vuelve cuando se envía tu primer mensaje; haz clic en **Responder** en una tarjeta naranja para responderla sin abrir el chat. **Limpiar todo**, en **Hecho**, pregunta primero y quita del tablero las tarjetas terminadas que ya leíste; **Deshacer** y **Quitadas (N)** las devuelven, y los chats siguen en dsh.
|
|
352
352
|
|
|
353
|
-
**¿Puedo tener un chat de asistente personal que me haga recordatorios y gestione mis otros chats?** Sí, con **Asistente** (
|
|
353
|
+
**¿Puedo tener un chat de asistente personal que me haga recordatorios y gestione mis otros chats?** Sí, con **Asistente** (activado de forma predeterminada): haz clic en **Asistente** en la barra lateral izquierda. Crea recordatorios con las tareas programadas de dsh, busca en la web, lista y lee tus chats, y envía un mensaje a un chat o inicia, detiene o archiva uno solo después de que lo apruebes. Guarda tu perfil en la memoria de su proyecto, tema "profil".
|
|
354
354
|
|
|
355
355
|
**¿Puede dsh hacer copias de seguridad de mis chats y ajustes, como dsh-backup?** Sí: **Configuración → Composer Plus → Copia de seguridad → Hacer copia ahora**. Escribe el mismo formato de archivo comprimido en la misma carpeta (`~/Desktop/dsh-backups`), así que los archivos comprimidos de dsh-backup también aparecen y se pueden restaurar, y puedes desinstalar dsh-backup. Activa **Copia de seguridad automática** para hacer copias según un horario.
|
|
356
356
|
|
|
@@ -504,7 +504,7 @@ SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-queue-stop-send.mjs /pat
|
|
|
504
504
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-queue-edit.mjs /path/to/dsh/lib/bin.js
|
|
505
505
|
# Task board: New task opens dsh's new chat and comes back after the first message, AI tags, live columns, Answer on the board, × with Undo, Clear all with its question (unread cards stay), Removed and Put back (kept after a restart), the switch
|
|
506
506
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-task-board.mjs /path/to/dsh/lib/bin.js
|
|
507
|
-
# Assistant:
|
|
507
|
+
# Assistant: on by default, sidebar row under Task board, one chat in ~/Assistant (workspace-write), a reminder that runs the chat, chats_list, chat_send after its approval card, an injected chat_send rejected, no tools in other chats, automations of other chats (dsh 0.2.2+), switch off
|
|
508
508
|
SHOT=1 CHECK_DELAY=20 PLAYWRIGHT=/path/to/playwright node test/browser-assistant.mjs /path/to/dsh/lib/bin.js
|
|
509
509
|
```
|
|
510
510
|
|
package/README.fr.md
CHANGED
|
@@ -29,7 +29,7 @@ dsh plugin --profile web add dsh-composer-plus
|
|
|
29
29
|
|
|
30
30
|
Redémarrez ensuite dsh. (La CLI ne peut pas installer dans le profil de bureau ; c’est l’app qui le gère.)
|
|
31
31
|
|
|
32
|
-
> Le pnpm de dsh ignore les versions publiées depuis moins de 24 heures. Juste après une nouvelle version, ajoutez le numéro de version : `dsh-composer-plus@1.24.
|
|
32
|
+
> Le pnpm de dsh ignore les versions publiées depuis moins de 24 heures. Juste après une nouvelle version, ajoutez le numéro de version : `dsh-composer-plus@1.24.1`.
|
|
33
33
|
|
|
34
34
|
## Fonctionnalités
|
|
35
35
|
|
|
@@ -75,7 +75,7 @@ Redémarrez ensuite dsh. (La CLI ne peut pas installer dans le profil de bureau
|
|
|
75
75
|
| **Fichiers protégés** | <a id="feature-protectedfiles"></a>Activée par défaut. Les outils de fichiers propres à l’agent ne peuvent ni lire ni modifier les fichiers qui correspondent à vos motifs : `read`, `read_image` et `grep` sur un fichier sont refusés pour les motifs **lecture et écriture**, et `write`, `edit` et `str_replace_editor` pour les deux types. L’agent lit pourquoi et on lui demande de vous consulter. Les motifs par défaut sont `.env*`, `*.pem` et `*.key`. Réglages → Composer Plus → **Fichiers protégés** : ajoutez un motif (par exemple `published/**` ou `config/*.yml`), cliquez sur son type pour basculer entre **lecture et écriture** et **écriture seule**, supprimez-le avec ✕, ou cliquez sur **Utiliser les valeurs par défaut**. Un motif sans `/` correspond à un nom de fichier dans n’importe quel dossier. C’est un garde-fou, pas un sandbox : une commande shell (`cat .env`), un script ou un outil MCP peut encore atteindre le fichier (voir Limites). | <a href="assets/features/protectedFiles.webp"><img src="assets/features/protectedFiles.webp" width="160" alt="Capture d’écran : Fichiers protégés"></a> |
|
|
76
76
|
| **Commandes bloquées** | <a id="feature-blockedcommands"></a>Activée par défaut, avec une liste vide. Les commandes shell de l’agent (`bash`, `pwsh`) ne peuvent pas exécuter une commande qui correspond à vos règles : une règle **bloquer** refuse l’appel (l’agent lit pourquoi et on lui demande de vous consulter), une règle **demander d’abord** affiche la carte d’approbation de dsh, et la commande ne s’exécute que si vous l’autorisez. Réglages → Composer Plus → **Commandes bloquées** : tapez une règle (par exemple `npm publish`, `git push --force` ou `ssh *192.168.2.19`), cliquez sur son type pour basculer entre **bloquer** et **demander d’abord**, puis cliquez sur **Ajouter** ; cliquez sur le type d’une règle pour le changer, supprimez-la avec ✕. Une règle est un nom de commande et des mots qui doivent le suivre dans cet ordre ; `*` correspond à n’importe quel texte. La vérification trouve aussi la commande après `&&`, `;`, `\|`, dans `$(…)`, `bash -c "…"` ou `eval`, et après `sudo` ou `env`. C’est un garde-fou, pas un sandbox : une variable (`$CMD`), un fichier de script ou un autre programme peut encore exécuter la commande (voir Limites). | <a href="assets/features/blockedCommands.webp"><img src="assets/features/blockedCommands.webp" width="160" alt="Capture d’écran : Commandes bloquées"></a> |
|
|
77
77
|
| **Tableau des tâches** | <a id="feature-taskboard"></a>Barre latérale gauche → **Tableau des tâches**, ou appuyez sur `Cmd+Shift+K` (`Ctrl+Shift+K` sous Windows et Linux) partout dans dsh. Un tableau kanban de vos discussions dsh, avec l’état en direct que montre la barre latérale : une discussion qui attend votre approbation, votre réponse ou la revue d’un plan est dans **En revue** avec un point orange, une discussion en cours d’exécution est dans **En cours**, une discussion terminée que vous n’avez pas encore ouverte est dans **Terminé** (en vert). Quand vous ouvrez une discussion, sa carte quitte **Terminé** d’elle-même ; cliquez sur **Terminées récemment (N)**, sous les cartes vertes, pour voir les discussions terminées que vous avez lues (les 10 plus récentes, puis **Afficher N plus anciennes** ; ouvert ou fermé reste sur cet appareil). Une discussion qui se termine alors qu’elle est ouverte derrière le tableau (une **Nouvelle tâche**) reste verte jusqu’à ce que vous l’ouvriez. Cliquez sur le nom du projet, en haut du tableau, pour ouvrir la liste des projets, puis choisissez un projet ou **Tous les projets** ; le dossier d’une branche par discussion compte comme son projet. La liste se ferme après le choix, avec `Esc` ou avec un clic en dehors. Tapez dans **Rechercher des projets**, en haut de la liste, pour trouver un projet par son nom (la casse et les accents ne comptent pas ; `Esc` vide le champ), appuyez sur `Entrée` pour choisir le premier résultat, et cliquez sur **Actifs au cours des 2 dernières heures** pour n’afficher que les projets avec une discussion qui attend, s’exécute, s’est terminée sans être vue ou a changé au cours des 2 dernières heures (réglage gardé sur cet appareil). **Nouvelle tâche** (ou `n`) ouvre la nouvelle discussion de dsh lui-même dans le projet que montre le tableau (avec **Tous les projets**, le projet que choisit Nouvelle session de dsh) : vous pouvez donc ajouter des fichiers, utiliser des commandes et choisir le modèle comme dans toute discussion. Quand votre premier message part, le tableau revient de lui-même. D’ici là, la discussion attend en haut de **En cours** sous le nom **Nouvelle tâche** : cliquez dessus pour écrire le premier message. Un projet dont une discussion vous attend a un point orange dans la liste des projets (le nom du projet en haut en a un aussi tant qu’une discussion attend). dsh nomme la discussion et le modèle de la discussion écrit jusqu’à 3 étiquettes à partir de ce message. Cliquez sur une carte pour ouvrir sa discussion. Cliquez sur une carte orange (ou sur son **Répondre**) pour y répondre depuis le tableau ; le panneau a **Ouvrir la discussion** pour voir toute la discussion : **Refuser** ou **Autoriser une fois**, **Approuver** ou **Demander des modifications** pour un plan, ou les options et votre propre texte pour une question. Cliquez sur **×** sur une carte terminée pour la retirer du tableau, ou ouvrez **Terminées récemment** et cliquez sur **Tout retirer** en haut de **Terminé** pour retirer ces cartes du tableau : une fenêtre montre d’abord combien de cartes de quel projet partent, et les cartes non lues (vertes) restent. Pendant les 8 secondes qui suivent, **Annuler** remet les cartes ; **Retirées (N)**, sous **Terminé**, liste les cartes qui sont hors du tableau, et **Remettre** affiche de nouveau l’une d’elles dans **Terminé**. Aucune discussion n’est supprimée : les discussions restent dans la barre latérale de dsh, le tableau s’en souvient après un redémarrage (Tether affiche le même tableau), et une discussion qui s’exécute de nouveau revient sur le tableau. Pointez une carte dans **En cours** (ou placez-y le focus du clavier) pour voir sa progression : depuis combien de temps la discussion s’exécute, l’étape de sa liste de tâches, l’outil qui s’exécute en ce moment et la dernière ligne de l’agent. Dans Réglages → Composer Plus → Tableau des tâches, **Progression au survol** choisit **Rapide (sans IA)** (par défaut : lit seulement la discussion) ou **Résumé par IA** (un court appel au modèle de la discussion écrit aussi une ou deux phrases). | <a href="assets/features/taskBoard.webp"><img src="assets/features/taskBoard.webp" width="160" alt="Capture d’écran : Tableau des tâches"></a> |
|
|
78
|
-
| **Assistant** | <a id="feature-assistant"></a>
|
|
78
|
+
| **Assistant** | <a id="feature-assistant"></a>Activé par défaut (désactivez-le dans **Réglages → Composer Plus**). Cliquez sur **Assistant** dans la barre latérale gauche (juste sous **Tableau des tâches**) : il ouvre une discussion durable que vous utilisez comme assistant personnel, comme une discussion ChatGPT ou Grok. Le premier clic crée le dossier `~/Assistant`, l’ajoute comme projet "Assistant" et lance la discussion avec le mode d’autorisation workspace-write et le modèle par défaut de dsh ; chaque clic suivant ouvre la même discussion (une discussion archivée revient, une discussion supprimée est recréée). Demandez-lui un rappel (« rappelle-moi de boire de l’eau dans 2 minutes ») : il utilise les tâches planifiées de dsh, donc le rappel lance la discussion à cette heure-là, et Tether envoie sa notification "Turn finished" quand Connexion mobile est activée. Demandez-lui de chercher sur le web, ou interrogez-le sur vos autres discussions : il peut lister les discussions de tous les projets (en cours, en attente de vous ou inactives) et lire les messages les plus récents de l’une d’elles. Il peut aussi envoyer un message à une discussion, lancer une nouvelle discussion dans un projet, arrêter une discussion en cours ou en archiver une : chacune de ces quatre actions affiche d’abord la carte d’approbation de dsh (aussi dans Tether), et rien ne se passe tant que vous ne cliquez pas sur **Autoriser une fois**. Il n’a aucun outil de suppression. Seule cette discussion a ces outils et ses courtes consignes ; un texte qu’il lit sur une page web ou dans une autre discussion compte comme une donnée, pas comme un ordre. Gardez votre profil dans la mémoire de ce projet (**Mémoire du projet**, sujet "profil") au lieu de le lui redire à chaque fois. | <a href="assets/features/assistant.webp"><img src="assets/features/assistant.webp" width="160" alt="Capture d’écran : Assistant"></a> |
|
|
79
79
|
| **Mémoire du projet** | <a id="feature-projectmemory"></a>Désactivée par défaut : activez-la dans **Réglages → Composer Plus**. Chaque dossier de projet a sa propre mémoire, que les discussions suivantes de ce projet lisent, comme DS Bot en garde une par Bot. Après chaque tour terminé, un appel au modèle de la discussion lit les nouveaux messages (pas ceux annulés), garde vos préférences, décisions et faits durables sous forme de notes courtes, et modifie ou supprime les anciennes. L’agent peut aussi enregistrer, supprimer et chercher des notes lui-même (`memory_remember`, `memory_forget`, `memory_recall`). Une note peut aussi être globale : tous les projets la lisent. Une nouvelle discussion reçoit les notes dans son prompt système ; une note enregistrée plus tard apparaît à partir de la discussion suivante. Les fichiers sont en Markdown dans le dossier personnel de dsh (`storages/dsh-composer-plus/memory/`), jamais dans le dossier du projet. **Ouvrir la mémoire**, sur la même ligne, montre toutes les notes enregistrées, groupées par projet (et la mémoire globale), avec un filtre. Écrivez avec vos mots ce qu’il faut changer (par exemple « je suis passé de yarn à pnpm »), puis **Aperçu des modifications** : le modèle par défaut de dsh propose les modifications, et seul **Appliquer** les enregistre. Dans Tether : menu du titre de la discussion → Project memory. | <a href="assets/features/projectMemory.webp"><img src="assets/features/projectMemory.webp" width="160" alt="Capture d’écran : Mémoire du projet"></a> |
|
|
80
80
|
| **Historique des versions de la mémoire** | <a id="feature-memoryhistory"></a>Activé par défaut tant que **Mémoire du projet** est activée. Avant chaque enregistrement de la mémoire (l’agent, la revue après un tour, **Ouvrir la mémoire**), une copie des notes telles qu’elles étaient est gardée. Dans **Ouvrir la mémoire**, sélectionnez un projet ou **Mémoire globale**, puis **Historique** : les versions par date et qui a modifié la mémoire après chacune. Sélectionnez une version pour voir sous forme de diff ce que change une restauration, puis **Restaurer**. Les notes d’avant une restauration sont aussi gardées : vous pouvez donc l’annuler. Les 50 versions les plus récentes de chaque mémoire restent. Dans Tether : menu du titre de la discussion → Project memory → History. | <a href="assets/features/memoryHistory.webp"><img src="assets/features/memoryHistory.webp" width="160" alt="Capture d’écran : Historique des versions de la mémoire"></a> |
|
|
81
81
|
| **Exporter la mémoire vers AGENTS.md** | <a id="feature-memoryexport"></a>Dans **Ouvrir la mémoire**, sélectionnez un projet, puis **Exporter vers AGENTS.md** : les notes de ce projet vont dans une section balisée de `AGENTS.md` dans son dossier, pour que vous puissiez les committer et les partager avec votre équipe et d’autres outils d’agents. Vous voyez d’abord la modification sous forme de diff ; seul **Écrire AGENTS.md** l’enregistre. L’export suivant remplace seulement cette section. La mémoire globale, les sources et les dates restent dehors. Dans Tether : menu du titre de la discussion → Project memory → Export to AGENTS.md. | <a href="assets/features/memoryExport.webp"><img src="assets/features/memoryExport.webp" width="160" alt="Capture d’écran : Exporter la mémoire vers AGENTS.md"></a> |
|
|
@@ -226,7 +226,7 @@ Testé sur dsh `0.2.0-rc.2` (bureau et web) et `0.2.1-rc.2` (web). La CI exécut
|
|
|
226
226
|
- **Pas de pastille de branche sur une ligne de discussion :** la barre latérale n’est pas en « Dans une seule liste » (dans « Espace de travail » et « Arborescence des espaces de travail », aucune ligne de discussion n’affiche de pastille), la discussion n’a eu aucun tour depuis que vous avez installé cette version, son dossier n’est pas un dépôt git, ou **Branche Git sur les lignes de discussion** est désactivée. Après une mise à jour, redémarrez dsh (la partie hôte enregistre la branche).
|
|
227
227
|
- **Vérification de l’objectif indique que le test s’est terminé avec le code 127 ou « not found » :** dsh démarré depuis le Finder ou le Dock peut avoir un PATH plus court que votre terminal : il ne trouve donc pas `npm`, `pnpm` ou `cargo`. Démarrez dsh depuis un terminal, ou définissez votre propre commande de test avec le chemin complet sous **Vérification de l’objectif** → **Modifier**. **Lancer maintenant** affiche le résultat tout de suite.
|
|
228
228
|
- **L’objectif ne se ferme pas et l’agent continue de travailler :** **Vérification de l’objectif** a trouvé un test en échec ou du travail manquant ; la ligne sous l’objectif indique pourquoi (survolez le résultat pour voir les détails). Corrigez la cause ou la commande de test, ou terminez l’objectif vous-même avec `/goal` ou la barre de l’objectif (ce n’est pas vérifié).
|
|
229
|
-
- **L’installation échoue juste après une nouvelle version :** ajoutez la version (`dsh-composer-plus@1.24.
|
|
229
|
+
- **L’installation échoue juste après une nouvelle version :** ajoutez la version (`dsh-composer-plus@1.24.1`) ; voir la note d’installation plus haut.
|
|
230
230
|
- **Sauvegarder maintenant indique « Une autre action de sauvegarde est en cours » :** une action tourne dans une autre fenêtre de dsh ou dans la console de secours (elles partagent un fichier de verrou, `.composer-plus.lock`, dans le dossier de sauvegarde). Attendez qu’elle se termine. Si aucune action ne tourne, le verrou d’un processus fermé est repris au clic suivant.
|
|
231
231
|
- **La console de secours indique « dsh is running » :** quittez d’abord dsh. Si dsh est vraiment fermé, le fichier nommé dans le message reste d’un plantage : supprimez-le et réessayez.
|
|
232
232
|
- **Après une restauration, dsh ne démarre pas ou un plugin manque :** les paquets de plugins d’un profil doivent être réinstallés. La console de secours le propose après une restauration ; sinon, exécutez `pnpm install` dans chaque dossier sous `$DSH_HOME/profiles/` qu’elle liste. Les secrets qui n’étaient pas dans le vault (autre ordinateur) doivent être saisis de nouveau : la console les liste.
|
|
@@ -350,7 +350,7 @@ Testé sur dsh `0.2.0-rc.2` (bureau et web) et `0.2.1-rc.2` (web). La CI exécut
|
|
|
350
350
|
|
|
351
351
|
**Puis-je voir toutes mes discussions sous forme de tableau kanban et en lancer de nouvelles depuis ce tableau ?** Oui, avec **Tableau des tâches** (activé par défaut) : ouvrez-le dans la barre latérale gauche. Chaque discussion est une carte dans **En cours**, **En revue** (elle vous attend) ou **Terminé**. **Nouvelle tâche** ouvre la nouvelle discussion de dsh dans le projet, et le tableau revient quand votre premier message part ; cliquez sur **Répondre** sur une carte orange pour y répondre sans ouvrir la discussion. **Tout retirer**, dans **Terminé**, demande d’abord et retire du tableau les cartes terminées que vous avez lues ; **Annuler** et **Retirées (N)** les font revenir, et les discussions restent dans dsh.
|
|
352
352
|
|
|
353
|
-
**Puis-je avoir une discussion d’assistant personnel qui me fait des rappels et gère mes autres discussions ?** Oui, avec **Assistant** (
|
|
353
|
+
**Puis-je avoir une discussion d’assistant personnel qui me fait des rappels et gère mes autres discussions ?** Oui, avec **Assistant** (activé par défaut) : cliquez sur **Assistant** dans la barre latérale gauche. Il crée des rappels avec les tâches planifiées de dsh, cherche sur le web, liste et lit vos discussions, et n’envoie un message à une discussion, ou n’en lance, n’en arrête ou n’en archive une, qu’après votre approbation. Gardez votre profil dans la mémoire de son projet, sujet "profil".
|
|
354
354
|
|
|
355
355
|
**dsh peut-il sauvegarder mes discussions et mes réglages, comme dsh-backup ?** Oui : **Réglages → Composer Plus → Sauvegarde → Sauvegarder maintenant**. Il écrit le même format d’archive dans le même dossier (`~/Desktop/dsh-backups`) : les archives de dsh-backup s’affichent donc aussi et se restaurent, et vous pouvez supprimer dsh-backup. Activez **Sauvegarde automatique** pour des sauvegardes planifiées.
|
|
356
356
|
|
|
@@ -504,7 +504,7 @@ SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-queue-stop-send.mjs /pat
|
|
|
504
504
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-queue-edit.mjs /path/to/dsh/lib/bin.js
|
|
505
505
|
# Task board: New task opens dsh's new chat and comes back after the first message, AI tags, live columns, Answer on the board, × with Undo, Clear all with its question (unread cards stay), Removed and Put back (kept after a restart), the switch
|
|
506
506
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-task-board.mjs /path/to/dsh/lib/bin.js
|
|
507
|
-
# Assistant:
|
|
507
|
+
# Assistant: on by default, sidebar row under Task board, one chat in ~/Assistant (workspace-write), a reminder that runs the chat, chats_list, chat_send after its approval card, an injected chat_send rejected, no tools in other chats, automations of other chats (dsh 0.2.2+), switch off
|
|
508
508
|
SHOT=1 CHECK_DELAY=20 PLAYWRIGHT=/path/to/playwright node test/browser-assistant.mjs /path/to/dsh/lib/bin.js
|
|
509
509
|
```
|
|
510
510
|
|
package/README.hi.md
CHANGED
|
@@ -29,7 +29,7 @@ dsh plugin --profile web add dsh-composer-plus
|
|
|
29
29
|
|
|
30
30
|
फिर dsh रीस्टार्ट करें। (CLI डेस्कटॉप प्रोफ़ाइल में इंस्टॉल नहीं कर सकता; उस प्रोफ़ाइल को ऐप खुद संभालता है।)
|
|
31
31
|
|
|
32
|
-
> dsh का pnpm 24 घंटे से नए वर्शन छोड़ देता है। रिलीज़ के तुरंत बाद वर्शन भी लिखें: `dsh-composer-plus@1.24.
|
|
32
|
+
> dsh का pnpm 24 घंटे से नए वर्शन छोड़ देता है। रिलीज़ के तुरंत बाद वर्शन भी लिखें: `dsh-composer-plus@1.24.1`।
|
|
33
33
|
|
|
34
34
|
## सुविधाएं
|
|
35
35
|
|
|
@@ -75,7 +75,7 @@ dsh plugin --profile web add dsh-composer-plus
|
|
|
75
75
|
| **सुरक्षित फ़ाइलें** | <a id="feature-protectedfiles"></a>डिफ़ॉल्ट रूप से चालू। एजेंट के अपने फ़ाइल टूल आपके पैटर्न से मेल खाने वाली फ़ाइलें न पढ़ सकते हैं, न बदल सकते हैं: **पढ़ना और लिखना** पैटर्न के लिए किसी फ़ाइल पर `read`, `read_image` और `grep` मना किए जाते हैं, और दोनों तरह के पैटर्न के लिए `write`, `edit` और `str_replace_editor`। एजेंट वजह पढ़ता है और उसे आपसे पूछने को कहा जाता है। डिफ़ॉल्ट पैटर्न `.env*`, `*.pem` और `*.key` हैं। सेटिंग → Composer Plus → **सुरक्षित फ़ाइलें**: एक पैटर्न जोड़ें (जैसे `published/**` या `config/*.yml`), **पढ़ना और लिखना** और **सिर्फ़ लिखना** के बीच बदलने के लिए उसकी तरह पर क्लिक करें, ✕ से उसे हटाएं, या **डिफ़ॉल्ट इस्तेमाल करें** पर क्लिक करें। `/` के बिना पैटर्न किसी भी फ़ोल्डर में फ़ाइल के नाम से मेल खाता है। यह एक सुरक्षा रेलिंग है, सैंडबॉक्स नहीं: शेल कमांड (`cat .env`), स्क्रिप्ट या MCP टूल फिर भी फ़ाइल तक पहुंच सकते हैं (सीमाएं देखें)। | <a href="assets/features/protectedFiles.webp"><img src="assets/features/protectedFiles.webp" width="160" alt="स्क्रीनशॉट: सुरक्षित फ़ाइलें"></a> |
|
|
76
76
|
| **ब्लॉक की गई कमांड** | <a id="feature-blockedcommands"></a>डिफ़ॉल्ट रूप से चालू, खाली सूची के साथ। एजेंट की शेल कमांड (`bash`, `pwsh`) आपके नियमों से मेल खाने वाली कमांड नहीं चला सकतीं: **ब्लॉक** नियम कॉल को मना करता है (एजेंट वजह पढ़ता है और उसे आपसे पूछने को कहा जाता है), **पहले पूछना** नियम dsh का मंज़ूरी कार्ड दिखाता है, और कमांड सिर्फ़ तब चलती है जब आप उसकी अनुमति देते हैं। सेटिंग → Composer Plus → **ब्लॉक की गई कमांड**: एक नियम टाइप करें (जैसे `npm publish`, `git push --force` या `ssh *192.168.2.19`), **ब्लॉक** और **पहले पूछना** के बीच बदलने के लिए उसकी तरह पर क्लिक करें, फिर **जोड़ें** पर क्लिक करें; किसी नियम की तरह बदलने के लिए उसकी तरह पर क्लिक करें, ✕ से नियम हटाएं। नियम एक कमांड का नाम और वे शब्द होते हैं, जो इसी क्रम में उसके बाद आने चाहिए; `*` किसी भी टेक्स्ट से मेल खाता है। यह `&&`, `;`, `\|` के बाद, `$(…)`, `bash -c "…"` या `eval` के अंदर, और `sudo` या `env` के बाद भी कमांड ढूंढता है। यह एक सुरक्षा रेलिंग है, सैंडबॉक्स नहीं: कोई वैरिएबल (`$CMD`), स्क्रिप्ट फ़ाइल या दूसरा प्रोग्राम फिर भी कमांड चला सकता है (सीमाएं देखें)। | <a href="assets/features/blockedCommands.webp"><img src="assets/features/blockedCommands.webp" width="160" alt="स्क्रीनशॉट: ब्लॉक की गई कमांड"></a> |
|
|
77
77
|
| **टास्क बोर्ड** | <a id="feature-taskboard"></a>बायां साइडबार → **टास्क बोर्ड**, या dsh में कहीं भी `Cmd+Shift+K` (Windows और Linux पर `Ctrl+Shift+K`) दबाएं। आपकी dsh चैट का कानबान बोर्ड, उसी लाइव स्थिति के साथ जो साइडबार दिखाता है: जो चैट आपकी मंज़ूरी, जवाब या प्लान रिव्यू का इंतज़ार करती है, वह नारंगी बिंदु के साथ **समीक्षा** में है, चल रही चैट **प्रगति में** है, और खत्म हुई जो चैट आपने अभी नहीं खोली, वह **पूरा हुआ** में है (हरी)। चैट खोलने पर उसका कार्ड अपने आप **पूरा हुआ** से हट जाता है; पढ़ी गई खत्म हुई चैट देखने के लिए हरे कार्डों के नीचे **हाल में पूरे हुए (N)** पर क्लिक करें (सबसे नई 10, फिर **N पुराने टास्क दिखाएं**; खुला या बंद होना इस डिवाइस पर रहता है)। जो चैट बोर्ड के पीछे खुली रहते हुए खत्म होती है (**नया टास्क**), वह आपके खोलने तक हरी रहती है। प्रोजेक्ट सूची खोलने के लिए बोर्ड के ऊपर प्रोजेक्ट के नाम पर क्लिक करें, फिर कोई प्रोजेक्ट या **सभी प्रोजेक्ट** चुनें; हर चैट की अपनी ब्रांच का फ़ोल्डर अपने प्रोजेक्ट में गिना जाता है। चुनने के बाद, `Esc` दबाने पर या सूची के बाहर क्लिक करने पर सूची बंद हो जाती है। किसी प्रोजेक्ट को उसके नाम से ढूंढने के लिए सूची में सबसे ऊपर **प्रोजेक्ट खोजें** में टाइप करें (छोटे-बड़े अक्षर और एक्सेंट मायने नहीं रखते; `Esc` बॉक्स खाली करता है), पहला मिलान चुनने के लिए `Enter` दबाएं, और सिर्फ़ वे प्रोजेक्ट दिखाने के लिए जिनमें कोई चैट इंतज़ार कर रही है, चल रही है, बिना देखे खत्म हुई है या पिछले 2 घंटों में बदली है, **पिछले 2 घंटों में सक्रिय** पर क्लिक करें (यह सेटिंग इस डिवाइस पर रहती है)। **नया टास्क** (या `n`) बोर्ड पर दिख रहे प्रोजेक्ट में dsh की अपनी नई चैट खोलता है (**सभी प्रोजेक्ट** चुने होने पर उस प्रोजेक्ट में, जिसे dsh का नया सेशन चुनता है), ताकि आप किसी भी चैट की तरह फ़ाइलें जोड़ सकें, कमांड इस्तेमाल कर सकें और मॉडल चुन सकें। आपका पहला संदेश जाते ही बोर्ड अपने-आप लौट आता है। तब तक चैट **प्रगति में** कॉलम में सबसे ऊपर **नया टास्क** के रूप में इंतज़ार करती है: पहला संदेश लिखने के लिए उस पर क्लिक करें। जिस प्रोजेक्ट में कोई चैट आपका इंतज़ार कर रही है, प्रोजेक्ट सूची में उसके आगे नारंगी बिंदु दिखता है (जब कोई भी चैट इंतज़ार कर रही हो, तब ऊपर प्रोजेक्ट के नाम के पास भी यह दिखता है)। dsh चैट को नाम देता है और चैट का मॉडल उसी संदेश से ज़्यादा से ज़्यादा 3 टैग लिखता है। चैट खोलने के लिए कार्ड पर क्लिक करें। बोर्ड पर ही जवाब देने के लिए नारंगी कार्ड (या उसके **जवाब दें**) पर क्लिक करें; पूरी चैट के लिए पैनल में **चैट खोलें** है: **अस्वीकार करें** या **एक बार अनुमति दें**, प्लान के लिए **मंज़ूर करें** या **बदलावों का अनुरोध करें**, या सवाल के लिए विकल्प और अपना टेक्स्ट। किसी खत्म हुए कार्ड को बोर्ड से हटाने के लिए उसके **×** पर क्लिक करें, या **हाल में पूरे हुए** खोलकर उन कार्डों को बोर्ड से हटाने के लिए **पूरा हुआ** के ऊपर **सब हटाएं** पर क्लिक करें: यह पहले दिखाता है कि किस प्रोजेक्ट के कितने कार्ड हटेंगे, और बिना पढ़े (हरे) कार्ड बने रहते हैं। उसके बाद 8 सेकंड तक **पहले जैसा करें** कार्ड वापस लाता है; **पूरा हुआ** के नीचे **हटाए गए (N)** बोर्ड से हटे कार्डों की सूची दिखाता है, और **बोर्ड पर वापस रखें** किसी एक कार्ड को फिर से **पूरा हुआ** में दिखाता है। कोई चैट डिलीट नहीं होती: चैट dsh के साइडबार में बनी रहती हैं, बोर्ड रीस्टार्ट के बाद भी यह याद रखता है (Tether वही बोर्ड दिखाता है), और जो चैट फिर से चलती है, वह बोर्ड पर लौट आती है। **प्रगति में** के किसी कार्ड पर पॉइंटर रखें (या कीबोर्ड फ़ोकस उस पर ले जाएं), तो उसकी प्रगति दिखती है: चैट कितनी देर से चल रही है, उसकी करने वाले कामों की सूची का चरण, अभी चल रहा टूल और एजेंट की आखिरी लाइन। सेटिंग → Composer Plus → टास्क बोर्ड में **होवर पर प्रगति** से **तेज़ (AI के बिना)** (डिफ़ॉल्ट: सिर्फ़ चैट पढ़ता है) या **AI सारांश** (चैट के मॉडल को एक छोटी कॉल एक या दो वाक्य भी लिखती है) चुनें। | <a href="assets/features/taskBoard.webp"><img src="assets/features/taskBoard.webp" width="160" alt="स्क्रीनशॉट: टास्क बोर्ड"></a> |
|
|
78
|
-
| **असिस्टेंट** | <a id="feature-assistant"></a>डिफ़ॉल्ट रूप से
|
|
78
|
+
| **असिस्टेंट** | <a id="feature-assistant"></a>डिफ़ॉल्ट रूप से चालू (इसे **सेटिंग → Composer Plus** में बंद करें)। बाएं साइडबार में **असिस्टेंट** पर क्लिक करें (**टास्क बोर्ड** के ठीक नीचे): यह एक स्थायी चैट खोलता है, जिसे आप ChatGPT या Grok चैट की तरह अपने निजी असिस्टेंट के रूप में इस्तेमाल करते हैं। पहली क्लिक `~/Assistant` फ़ोल्डर बनाती है, उसे “Assistant” प्रोजेक्ट के रूप में जोड़ती है और चैट को workspace-write अनुमति मोड और dsh के डिफ़ॉल्ट मॉडल के साथ शुरू करती है; उसके बाद हर क्लिक वही चैट खोलती है (आर्काइव की गई चैट वापस आती है, डिलीट की गई चैट फिर से बनती है)। इससे रिमाइंडर के लिए कहें (“2 मिनट में मुझे पानी पीना याद दिलाओ”): यह dsh के शेड्यूल किए गए टास्क इस्तेमाल करता है, इसलिए रिमाइंडर उस समय चैट को चलाता है, और मोबाइल कनेक्ट चालू होने पर Tether अपनी “Turn finished” सूचना भेजता है। इससे वेब पर खोजने के लिए कहें, या अपनी दूसरी चैट के बारे में पूछें: यह सभी प्रोजेक्ट की चैट की सूची दिखा सकता है (चल रही, आपका इंतज़ार कर रही या निष्क्रिय) और किसी एक चैट के सबसे नए संदेश पढ़ सकता है। यह किसी चैट को संदेश भी भेज सकता है, किसी प्रोजेक्ट में नई चैट शुरू कर सकता है, चल रही चैट रोक सकता है या किसी चैट को आर्काइव कर सकता है: इन चार कामों में से हर एक पहले dsh का मंज़ूरी कार्ड दिखाता है (Tether में भी), और जब तक आप **एक बार अनुमति दें** पर क्लिक नहीं करते, कुछ नहीं होता। इसमें डिलीट करने का कोई टूल नहीं है। ये टूल और इसके छोटे निर्देश सिर्फ़ इसी चैट में हैं; किसी वेब पेज या दूसरी चैट में पढ़ा गया टेक्स्ट डेटा माना जाता है, आदेश नहीं। हर बार बताने के बजाय अपनी प्रोफ़ाइल इस प्रोजेक्ट की मेमोरी में रखें (**प्रोजेक्ट मेमोरी**, विषय “profil”)। | <a href="assets/features/assistant.webp"><img src="assets/features/assistant.webp" width="160" alt="स्क्रीनशॉट: असिस्टेंट"></a> |
|
|
79
79
|
| **प्रोजेक्ट मेमोरी** | <a id="feature-projectmemory"></a>डिफ़ॉल्ट रूप से बंद: इसे **सेटिंग → Composer Plus** में चालू करें। हर प्रोजेक्ट फ़ोल्डर की अपनी मेमोरी होती है, जिसे उस प्रोजेक्ट की आगे की चैट पढ़ती हैं, जैसे DS Bot हर Bot के लिए एक मेमोरी रखता है। हर पूरे हुए टर्न के बाद चैट के मॉडल को एक कॉल नए संदेश पढ़ती है (रोलबैक किए गए नहीं), आपकी लंबे समय तक रहने वाली पसंद, फ़ैसले और तथ्य छोटे नोट के रूप में रखती है, और पुराने नोट बदलती या हटाती है। एजेंट खुद भी नोट सेव कर, हटा और खोज सकता है (`memory_remember`, `memory_forget`, `memory_recall`)। कोई नोट ग्लोबल भी हो सकता है: उसे हर प्रोजेक्ट पढ़ता है। नई चैट को नोट उसके सिस्टम प्रॉम्प्ट में मिलते हैं; बाद में सेव हुआ नोट अगली चैट से दिखता है। फ़ाइलें dsh के होम फ़ोल्डर में Markdown हैं (`storages/dsh-composer-plus/memory/`), कभी प्रोजेक्ट फ़ोल्डर में नहीं। उसी पंक्ति में **मेमोरी खोलें** हर सेव किया गया नोट प्रोजेक्ट के हिसाब से (और ग्लोबल मेमोरी) दिखाता है, फ़िल्टर के साथ। अपने शब्दों में लिखें कि क्या बदलना है (जैसे "मैंने yarn छोड़कर pnpm अपनाया"), फिर **बदलावों का प्रीव्यू**: dsh का डिफ़ॉल्ट मॉडल बदलाव सुझाता है, और सिर्फ़ **लागू करें** उन्हें सेव करता है। Tether में: चैट शीर्षक मेनू → Project memory। | <a href="assets/features/projectMemory.webp"><img src="assets/features/projectMemory.webp" width="160" alt="स्क्रीनशॉट: प्रोजेक्ट मेमोरी"></a> |
|
|
80
80
|
| **मेमोरी वर्शन इतिहास** | <a id="feature-memoryhistory"></a>**प्रोजेक्ट मेमोरी** चालू रहने पर डिफ़ॉल्ट रूप से चालू। मेमोरी की हर सेव से पहले (एजेंट, टर्न के बाद की समीक्षा, **मेमोरी खोलें**) नोट्स की पहले जैसी एक कॉपी रखी जाती है। **मेमोरी खोलें** में कोई प्रोजेक्ट या **ग्लोबल मेमोरी** चुनें, फिर **इतिहास**: तारीख के अनुसार वर्शन और हर वर्शन के बाद मेमोरी किसने बदली। कोई वर्शन चुनें तो रीस्टोर से क्या बदलेगा उसका diff दिखता है, फिर **रीस्टोर करें**। रीस्टोर से पहले के नोट्स भी रखे जाते हैं, इसलिए आप उसे पूर्ववत कर सकते हैं। हर मेमोरी के नवीनतम 50 वर्शन रहते हैं। Tether में: चैट शीर्षक मेनू → Project memory → History। | <a href="assets/features/memoryHistory.webp"><img src="assets/features/memoryHistory.webp" width="160" alt="स्क्रीनशॉट: मेमोरी वर्शन इतिहास"></a> |
|
|
81
81
|
| **मेमोरी को AGENTS.md में एक्सपोर्ट करें** | <a id="feature-memoryexport"></a>**मेमोरी खोलें** में कोई प्रोजेक्ट चुनें, फिर **AGENTS.md में एक्सपोर्ट करें**: उस प्रोजेक्ट के नोट्स उसके फ़ोल्डर की `AGENTS.md` के एक चिह्नित भाग में लिखे जाते हैं, ताकि आप उन्हें commit करके अपनी टीम और दूसरे एजेंट टूल के साथ साझा कर सकें। पहले बदलाव diff के रूप में दिखता है; केवल **AGENTS.md लिखें** से सेव होता है। अगला एक्सपोर्ट केवल यह भाग बदलता है। ग्लोबल मेमोरी, स्रोत और तारीखें नहीं लिखी जातीं। Tether में: चैट शीर्षक मेनू → Project memory → Export to AGENTS.md। | <a href="assets/features/memoryExport.webp"><img src="assets/features/memoryExport.webp" width="160" alt="स्क्रीनशॉट: मेमोरी को AGENTS.md में एक्सपोर्ट करें"></a> |
|
|
@@ -226,7 +226,7 @@ dsh `0.2.0-rc.2` (डेस्कटॉप और वेब) और `0.2.1-rc.2`
|
|
|
226
226
|
- **चैट पंक्ति पर ब्रांच लेबल नहीं है:** साइडबार “एक ही सूची में” व्यू में नहीं है (“वर्कस्पेस” और “वर्कस्पेस ट्री” में किसी भी चैट पंक्ति पर लेबल नहीं दिखता), यह वर्शन इंस्टॉल करने के बाद से उस चैट में कोई टर्न नहीं हुआ, उसका फ़ोल्डर git रिपॉज़िटरी नहीं है, या **चैट पंक्तियों पर Git ब्रांच** बंद है। अपडेट के बाद dsh रीस्टार्ट करें (ब्रांच Host वाला हिस्सा दर्ज करता है)।
|
|
227
227
|
- **लक्ष्य जांच बताती है कि टेस्ट कोड 127 या "not found" के साथ बंद हुआ:** Finder या Dock से शुरू किए गए dsh का PATH आपके टर्मिनल से छोटा हो सकता है, इसलिए उसे `npm`, `pnpm` या `cargo` नहीं मिलता। dsh को टर्मिनल से शुरू करें, या **लक्ष्य जांच** → **संपादित करें** में पूरे पाथ के साथ अपनी टेस्ट कमांड सेट करें। **अभी चलाएं** नतीजा तुरंत दिखाता है।
|
|
228
228
|
- **लक्ष्य बंद नहीं होता और एजेंट काम करता रहता है:** **लक्ष्य जांच** को कोई विफल टेस्ट या अधूरा काम मिला; लक्ष्य के नीचे की पंक्ति वजह दिखाती है (ब्योरा देखने के लिए नतीजे पर पॉइंटर ले जाएं)। वजह या टेस्ट कमांड ठीक करें, या `/goal` या लक्ष्य बार से लक्ष्य खुद पूरा करें (उसकी जांच नहीं होती)।
|
|
229
|
-
- **रिलीज़ के तुरंत बाद इंस्टॉल विफल होता है:** वर्शन जोड़ें (`dsh-composer-plus@1.24.
|
|
229
|
+
- **रिलीज़ के तुरंत बाद इंस्टॉल विफल होता है:** वर्शन जोड़ें (`dsh-composer-plus@1.24.1`), ऊपर इंस्टॉल वाला नोट देखें।
|
|
230
230
|
- **अभी बैकअप लें कहता है "बैकअप की दूसरी कार्रवाई चल रही है":** किसी दूसरी dsh विंडो में या रेस्क्यू कंसोल में कोई कार्रवाई चल रही है (दोनों बैकअप फ़ोल्डर में एक लॉक फ़ाइल, `.composer-plus.lock`, साझा करते हैं)। उसके पूरा होने का इंतज़ार करें। अगर कोई कार्रवाई नहीं चल रही, तो अगली क्लिक पर बंद हो चुकी प्रोसेस का लॉक ले लिया जाता है।
|
|
231
231
|
- **रेस्क्यू कंसोल कहता है "dsh is running":** पहले dsh बंद करें। अगर dsh सच में बंद है, तो संदेश में बताई गई फ़ाइल किसी क्रैश के बाद बची रह गई है: उसे हटाएं और फिर से कोशिश करें।
|
|
232
232
|
- **बहाली के बाद dsh शुरू नहीं होता या कोई प्लगइन नहीं है:** किसी प्रोफ़ाइल के प्लगइन पैकेज फिर से इंस्टॉल करने होंगे। बहाली के बाद रेस्क्यू कंसोल यह करने का विकल्प देता है; या `$DSH_HOME/profiles/` के नीचे के हर उस फ़ोल्डर में `pnpm install` चलाएं, जिसकी सूची वह दिखाता है। जो सीक्रेट vault में नहीं थे (दूसरा कंप्यूटर), उन्हें फिर से डालना होगा: कंसोल उनकी सूची दिखाता है।
|
|
@@ -350,7 +350,7 @@ dsh `0.2.0-rc.2` (डेस्कटॉप और वेब) और `0.2.1-rc.2`
|
|
|
350
350
|
|
|
351
351
|
**क्या मैं अपनी सभी चैट को कानबान बोर्ड की तरह देख सकता हूं और वहीं से नई चैट शुरू कर सकता हूं?** हां, **टास्क बोर्ड** से (डिफ़ॉल्ट रूप से चालू): इसे बाएं साइडबार में खोलें। हर चैट **प्रगति में**, **समीक्षा** (वह आपका इंतज़ार कर रही है) या **पूरा हुआ** में एक कार्ड है। **नया टास्क** प्रोजेक्ट में dsh की नई चैट खोलता है, और आपका पहला संदेश जाने पर बोर्ड लौट आता है; चैट खोले बिना जवाब देने के लिए नारंगी कार्ड पर **जवाब दें** पर क्लिक करें। **पूरा हुआ** में **सब हटाएं** पहले पूछता है और आपके पढ़े हुए खत्म हुए कार्ड बोर्ड से हटाता है; **पहले जैसा करें** और **हटाए गए (N)** उन्हें वापस लाते हैं, और चैट dsh में बनी रहती हैं।
|
|
352
352
|
|
|
353
|
-
**क्या मुझे ऐसी निजी असिस्टेंट चैट मिल सकती है जो मुझे याद दिलाए और मेरी दूसरी चैट संभाले?** हां, **असिस्टेंट** से (डिफ़ॉल्ट रूप से
|
|
353
|
+
**क्या मुझे ऐसी निजी असिस्टेंट चैट मिल सकती है जो मुझे याद दिलाए और मेरी दूसरी चैट संभाले?** हां, **असिस्टेंट** से (डिफ़ॉल्ट रूप से चालू): बाएं साइडबार में **असिस्टेंट** पर क्लिक करें। यह dsh के शेड्यूल किए गए टास्क से रिमाइंडर सेट करता है, वेब पर खोजता है, आपकी चैट की सूची दिखाता है और उन्हें पढ़ता है, और किसी चैट को संदेश भेजना या चैट शुरू करना, रोकना या आर्काइव करना सिर्फ़ आपकी मंज़ूरी के बाद करता है। अपनी प्रोफ़ाइल इसकी प्रोजेक्ट मेमोरी में, विषय “profil” में रखें।
|
|
354
354
|
|
|
355
355
|
**क्या dsh, dsh-backup की तरह, मेरी चैट और सेटिंग का बैकअप ले सकता है?** हां: **सेटिंग → Composer Plus → बैकअप → अभी बैकअप लें**। यह उसी फ़ॉर्मैट का आर्काइव उसी फ़ोल्डर (`~/Desktop/dsh-backups`) में लिखता है, इसलिए dsh-backup के आर्काइव भी दिखते हैं और बहाल हो सकते हैं, और आप dsh-backup हटा सकते हैं। तय समय पर बैकअप के लिए **अपने-आप बैकअप** चालू करें।
|
|
356
356
|
|
|
@@ -504,7 +504,7 @@ SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-queue-stop-send.mjs /pat
|
|
|
504
504
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-queue-edit.mjs /path/to/dsh/lib/bin.js
|
|
505
505
|
# Task board: New task opens dsh's new chat and comes back after the first message, AI tags, live columns, Answer on the board, × with Undo, Clear all with its question (unread cards stay), Removed and Put back (kept after a restart), the switch
|
|
506
506
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-task-board.mjs /path/to/dsh/lib/bin.js
|
|
507
|
-
# Assistant:
|
|
507
|
+
# Assistant: on by default, sidebar row under Task board, one chat in ~/Assistant (workspace-write), a reminder that runs the chat, chats_list, chat_send after its approval card, an injected chat_send rejected, no tools in other chats, automations of other chats (dsh 0.2.2+), switch off
|
|
508
508
|
SHOT=1 CHECK_DELAY=20 PLAYWRIGHT=/path/to/playwright node test/browser-assistant.mjs /path/to/dsh/lib/bin.js
|
|
509
509
|
```
|
|
510
510
|
|
package/README.id.md
CHANGED
|
@@ -29,7 +29,7 @@ dsh plugin --profile web add dsh-composer-plus
|
|
|
29
29
|
|
|
30
30
|
Lalu mulai ulang dsh. (CLI tidak dapat memasang plugin ke profil desktop; profil itu dikelola oleh aplikasi.)
|
|
31
31
|
|
|
32
|
-
> pnpm milik dsh melewati versi yang berumur kurang dari 24 jam. Tepat setelah rilis, tambahkan versinya: `dsh-composer-plus@1.24.
|
|
32
|
+
> pnpm milik dsh melewati versi yang berumur kurang dari 24 jam. Tepat setelah rilis, tambahkan versinya: `dsh-composer-plus@1.24.1`.
|
|
33
33
|
|
|
34
34
|
## Fitur
|
|
35
35
|
|
|
@@ -75,7 +75,7 @@ Lalu mulai ulang dsh. (CLI tidak dapat memasang plugin ke profil desktop; profil
|
|
|
75
75
|
| **File yang dilindungi** | <a id="feature-protectedfiles"></a>Aktif secara bawaan. Alat file milik agen sendiri tidak dapat membaca atau mengubah file yang cocok dengan pola Anda: `read`, `read_image`, dan `grep` pada file ditolak untuk pola **baca dan tulis**, sedangkan `write`, `edit`, dan `str_replace_editor` ditolak untuk kedua jenis. Agen membaca alasannya dan diminta untuk bertanya kepada Anda. Pola bawaannya `.env*`, `*.pem`, dan `*.key`. Pengaturan → Composer Plus → **File yang dilindungi**: tambahkan pola (misalnya `published/**` atau `config/*.yml`), klik jenisnya untuk beralih antara **baca dan tulis** dan **hanya tulis**, hapus dengan ✕, atau klik **Gunakan bawaan**. Pola tanpa `/` cocok dengan nama file di folder mana pun. Ini pagar pengaman, bukan sandbox: perintah shell (`cat .env`), skrip, atau alat MCP tetap dapat menjangkau file itu (lihat Batasan). | <a href="assets/features/protectedFiles.webp"><img src="assets/features/protectedFiles.webp" width="160" alt="Tangkapan layar: File yang dilindungi"></a> |
|
|
76
76
|
| **Perintah yang diblokir** | <a id="feature-blockedcommands"></a>Aktif secara bawaan, dengan daftar kosong. Perintah shell agen (`bash`, `pwsh`) tidak dapat menjalankan perintah yang cocok dengan aturan Anda: aturan **blokir** menolak panggilan itu (agen membaca alasannya dan diminta untuk bertanya kepada Anda), aturan **tanya dulu** menampilkan kartu persetujuan dsh, dan perintah hanya berjalan jika Anda mengizinkannya. Pengaturan → Composer Plus → **Perintah yang diblokir**: ketik aturan (misalnya `npm publish`, `git push --force`, atau `ssh *192.168.2.19`), klik jenisnya untuk beralih antara **blokir** dan **tanya dulu**, lalu klik **Tambah**; klik jenis sebuah aturan untuk mengubahnya, hapus aturan dengan ✕. Aturan adalah nama perintah dan kata-kata yang harus muncul sesudahnya dalam urutan ini; `*` cocok dengan teks apa pun. Fitur ini juga menemukan perintah sesudah `&&`, `;`, `\|`, di dalam `$(…)`, `bash -c "…"`, atau `eval`, dan sesudah `sudo` atau `env`. Ini pagar pengaman, bukan sandbox: variabel (`$CMD`), file skrip, atau program lain tetap dapat menjalankan perintah itu (lihat Batasan). | <a href="assets/features/blockedCommands.webp"><img src="assets/features/blockedCommands.webp" width="160" alt="Tangkapan layar: Perintah yang diblokir"></a> |
|
|
77
77
|
| **Papan tugas** | <a id="feature-taskboard"></a>Bilah samping kiri → **Papan tugas**, atau tekan `Cmd+Shift+K` (`Ctrl+Shift+K` di Windows dan Linux) di mana saja dalam dsh. Papan kanban obrolan dsh Anda dengan status langsung yang sama seperti di bilah samping: obrolan yang menunggu persetujuan, jawaban, atau tinjauan rencana Anda ada di **Ditinjau** dengan titik oranye, obrolan yang berjalan ada di **Sedang dikerjakan**, dan obrolan yang sudah selesai dan belum Anda buka ada di **Selesai** (hijau). Saat Anda membuka obrolan, kartunya keluar dari **Selesai** dengan sendirinya; klik **Baru selesai (N)** di bawah kartu hijau untuk melihat obrolan selesai yang sudah Anda baca (10 terbaru, lalu **Tampilkan N yang lebih lama**; terbuka atau tertutup disimpan di perangkat ini). Obrolan yang selesai saat terbuka di belakang papan (**Tugas baru**) tetap hijau sampai Anda membukanya. Klik nama proyek di bagian atas papan untuk membuka daftar proyek, lalu pilih proyek atau **Semua proyek**; folder branch per obrolan dihitung sebagai proyeknya. Daftar tertutup setelah Anda memilih, dengan `Esc`, atau dengan klik di luar daftar. Ketik di **Cari proyek** di bagian atas daftar untuk menemukan proyek berdasarkan namanya (huruf besar/kecil dan aksen tidak berpengaruh; `Esc` mengosongkan kotak), tekan `Enter` untuk memilih hasil pertama, dan klik **Aktif dalam 2 jam terakhir** untuk hanya menampilkan proyek dengan obrolan yang menunggu, berjalan, selesai tetapi belum dilihat, atau berubah dalam 2 jam terakhir (disimpan di perangkat ini). **Tugas baru** (atau `n`) membuka obrolan baru milik dsh sendiri di proyek yang ditampilkan papan (dengan **Semua proyek**, proyek yang dipilih Sesi Baru dsh), jadi Anda bisa menambahkan file, memakai perintah, dan memilih model seperti di obrolan mana pun. Saat pesan pertama Anda terkirim, papan kembali dengan sendirinya. Sampai saat itu, obrolan menunggu di bagian paling atas **Sedang dikerjakan** sebagai **Tugas baru**: klik obrolan itu untuk menulis pesan pertama. Proyek yang punya obrolan yang menunggu Anda memiliki titik oranye di daftar proyek (nama proyek di bagian atas juga memilikinya selama ada obrolan yang menunggu). dsh memberi nama obrolan, dan model obrolan menulis hingga 3 label dari pesan itu. Klik kartu untuk membuka obrolannya. Klik kartu oranye (atau **Jawab** di kartu itu) untuk menjawabnya di papan; panelnya punya **Buka obrolan** untuk seluruh obrolan: **Tolak** atau **Izinkan sekali**, **Setujui** atau **Minta perubahan** untuk rencana, atau pilihan dan teks Anda sendiri untuk pertanyaan. Klik **×** di kartu yang selesai untuk mengeluarkannya dari papan, atau buka **Baru selesai** lalu klik **Bersihkan semua** di bagian atas **Selesai** untuk mengeluarkan kartu-kartu itu dari papan: lebih dulu ditampilkan berapa kartu dari proyek mana yang keluar, dan kartu yang belum dibaca (hijau) tetap ada. Selama 8 detik setelahnya, **Urungkan** mengembalikan kartu-kartu itu; **Dikeluarkan (N)** di bawah **Selesai** menampilkan daftar kartu yang ada di luar papan, dan **Kembalikan** menampilkan satu kartu lagi di **Selesai**. Tidak ada obrolan yang dihapus: obrolan tetap ada di bilah samping dsh, papan mengingat hal ini setelah dimulai ulang (Tether menampilkan papan yang sama), dan obrolan yang berjalan lagi kembali ke papan. Arahkan penunjuk ke kartu di **Sedang dikerjakan** (atau pindahkan fokus keyboard ke kartu itu) untuk melihat progresnya: berapa lama obrolan berjalan, langkah dari daftar tugasnya, alat yang sedang berjalan, dan baris terakhir agen. Di Pengaturan → Composer Plus → Papan tugas, **Progres saat kursor di atas** memilih **Cepat (tanpa AI)** (default: hanya membaca obrolan) atau **Ringkasan AI** (satu panggilan singkat ke model obrolan juga menulis satu atau dua kalimat). | <a href="assets/features/taskBoard.webp"><img src="assets/features/taskBoard.webp" width="160" alt="Tangkapan layar: Papan tugas"></a> |
|
|
78
|
-
| **Asisten** | <a id="feature-assistant"></a>
|
|
78
|
+
| **Asisten** | <a id="feature-assistant"></a>Aktif secara default (nonaktifkan di **Pengaturan → Composer Plus**). Klik **Asisten** di bilah samping kiri (tepat di bawah **Papan tugas**): fitur ini membuka satu obrolan tetap yang Anda pakai sebagai asisten pribadi, seperti obrolan ChatGPT atau Grok. Klik pertama membuat folder `~/Assistant`, menambahkannya sebagai proyek “Assistant”, dan memulai obrolan dengan mode izin workspace-write dan model default dsh; setiap klik berikutnya membuka obrolan yang sama (obrolan yang diarsipkan kembali, obrolan yang dihapus dibuat lagi). Minta asisten mengingatkan Anda (“ingatkan saya minum air dalam 2 menit”): asisten memakai tugas terjadwal dsh, jadi pengingat menjalankan obrolan pada waktu itu, dan Tether mengirim notifikasi “Turn finished” saat Koneksi seluler aktif. Minta asisten mencari di web, atau tanyakan tentang obrolan Anda yang lain: asisten dapat menampilkan daftar obrolan semua proyek (berjalan, menunggu Anda, atau diam) dan membaca pesan terbaru dari satu obrolan. Asisten juga dapat mengirim pesan ke obrolan, memulai obrolan baru di proyek, menghentikan obrolan yang berjalan, atau mengarsipkan obrolan: masing-masing dari empat tindakan ini lebih dulu menampilkan kartu persetujuan dsh (juga di Tether), dan tidak ada yang terjadi sampai Anda mengklik **Izinkan sekali**. Asisten tidak punya alat hapus. Hanya obrolan ini yang memiliki alat-alat ini dan instruksi singkatnya; teks yang dibacanya di halaman web atau obrolan lain dihitung sebagai data, bukan perintah. Simpan profil Anda di memori proyek ini (**Memori proyek**, topik “profil”) daripada menyampaikannya setiap kali. | <a href="assets/features/assistant.webp"><img src="assets/features/assistant.webp" width="160" alt="Tangkapan layar: Asisten"></a> |
|
|
79
79
|
| **Memori proyek** | <a id="feature-projectmemory"></a>Nonaktif secara default: aktifkan di **Pengaturan → Composer Plus**. Setiap folder proyek mendapat memorinya sendiri, yang dibaca oleh obrolan berikutnya di proyek itu, seperti DS Bot menyimpan satu memori untuk setiap Bot. Setelah setiap giliran selesai, satu panggilan ke model obrolan membaca pesan baru (bukan yang ditarik oleh putar balik), menyimpan preferensi, keputusan, dan fakta Anda yang bertahan lama sebagai catatan singkat, serta mengubah atau menghapus catatan lama. Agen juga dapat menyimpan, menghapus, dan mencari catatan sendiri (`memory_remember`, `memory_forget`, `memory_recall`). Catatan juga bisa global: setiap proyek membacanya. Obrolan baru mendapat catatan di prompt sistemnya; catatan yang disimpan kemudian muncul mulai obrolan berikutnya. File berupa Markdown di folder home dsh (`storages/dsh-composer-plus/memory/`), tidak pernah di folder proyek. **Buka memori** di baris yang sama menampilkan semua catatan tersimpan, dikelompokkan per proyek (dan memori global), dengan saringan. Tulis dengan kata-kata Anda apa yang diubah (misalnya "saya beralih dari yarn ke pnpm"), lalu **Pratinjau perubahan**: model default dsh mengusulkan perubahan, dan hanya **Terapkan** yang menyimpannya. Di Tether: menu judul obrolan → Project memory. | <a href="assets/features/projectMemory.webp"><img src="assets/features/projectMemory.webp" width="160" alt="Tangkapan layar: Memori proyek"></a> |
|
|
80
80
|
| **Riwayat versi memori** | <a id="feature-memoryhistory"></a>Aktif secara default selama **Memori proyek** aktif. Sebelum setiap penyimpanan memori (agen, tinjauan setelah giliran, **Buka memori**), salinan catatan seperti sebelumnya disimpan. Di **Buka memori**, pilih proyek atau **Memori global**, lalu **Riwayat**: versi menurut tanggal dan siapa yang mengubah memori setelah setiap versi. Pilih versi untuk melihat sebagai diff apa yang diubah pemulihan, lalu **Pulihkan**. Catatan sebelum pemulihan juga disimpan, jadi Anda bisa membatalkannya. 50 versi terbaru dari setiap memori tetap ada. Di Tether: menu judul chat → Project memory → History. | <a href="assets/features/memoryHistory.webp"><img src="assets/features/memoryHistory.webp" width="160" alt="Tangkapan layar: Riwayat versi memori"></a> |
|
|
81
81
|
| **Ekspor memori ke AGENTS.md** | <a id="feature-memoryexport"></a>Di **Buka memori**, pilih proyek, lalu **Ekspor ke AGENTS.md**: catatan proyek itu masuk ke bagian bertanda di `AGENTS.md` di foldernya, sehingga Anda bisa meng-commit-nya dan membagikannya dengan tim serta alat agen lain. Anda melihat perubahannya sebagai diff dulu; hanya **Tulis AGENTS.md** yang menyimpannya. Ekspor berikutnya hanya mengganti bagian itu. Memori global, sumber, dan tanggal tidak ikut. Di Tether: menu judul chat → Project memory → Export to AGENTS.md. | <a href="assets/features/memoryExport.webp"><img src="assets/features/memoryExport.webp" width="160" alt="Tangkapan layar: Ekspor memori ke AGENTS.md"></a> |
|
|
@@ -226,7 +226,7 @@ Diuji pada dsh `0.2.0-rc.2` (desktop dan web) dan `0.2.1-rc.2` (web). CI menjala
|
|
|
226
226
|
- **Tidak ada label branch di baris obrolan:** bilah samping tidak dalam tampilan “Dalam satu daftar” (dalam “Ruang Kerja” dan “Pohon Ruang Kerja”, tidak ada baris obrolan yang menampilkan label), obrolan itu belum memiliki giliran sejak Anda memasang versi ini, foldernya bukan repositori git, atau **Branch Git di baris obrolan** nonaktif. Setelah pembaruan, mulai ulang dsh (bagian Host mencatat branch).
|
|
227
227
|
- **Pemeriksaan tujuan menyebut pengujian keluar dengan kode 127 atau "not found":** dsh yang dimulai dari Finder atau Dock dapat memiliki PATH yang lebih pendek daripada terminal Anda, sehingga tidak menemukan `npm`, `pnpm`, atau `cargo`. Mulai dsh dari terminal, atau atur perintah pengujian Anda sendiri dengan jalur lengkap di **Pemeriksaan tujuan** → **Edit**. **Jalankan sekarang** langsung menampilkan hasilnya.
|
|
228
228
|
- **Tujuan tidak ditutup dan agen terus bekerja:** **Pemeriksaan tujuan** menemukan pengujian yang gagal atau pekerjaan yang belum selesai; baris di bawah tujuan menampilkan alasannya (arahkan penunjuk ke hasil untuk melihat detailnya). Perbaiki penyebabnya atau perintah pengujiannya, atau selesaikan tujuan sendiri dengan `/goal` atau bilah tujuan (penyelesaian itu tidak diperiksa).
|
|
229
|
-
- **Pemasangan gagal tepat setelah rilis:** tambahkan versinya (`dsh-composer-plus@1.24.
|
|
229
|
+
- **Pemasangan gagal tepat setelah rilis:** tambahkan versinya (`dsh-composer-plus@1.24.1`), lihat catatan pemasangan di atas.
|
|
230
230
|
- **Cadangkan sekarang menyatakan "Tindakan pencadangan lain sedang berjalan":** ada tindakan yang berjalan di jendela dsh lain atau di konsol penyelamat (keduanya berbagi file kunci, `.composer-plus.lock`, di folder cadangan). Tunggu sampai tindakan itu selesai. Jika tidak ada tindakan yang berjalan, kunci milik proses yang sudah ditutup diambil alih pada klik berikutnya.
|
|
231
231
|
- **Konsol penyelamat menyatakan "dsh is running":** keluar dari dsh terlebih dahulu. Jika dsh memang sudah tertutup, file yang disebut dalam pesan itu tersisa dari crash: hapus file itu dan coba lagi.
|
|
232
232
|
- **Setelah pemulihan, dsh tidak mau dimulai atau ada plugin yang hilang:** paket plugin sebuah profil harus dipasang lagi. Konsol penyelamat menawarkannya setelah pemulihan; atau jalankan `pnpm install` di setiap folder di bawah `$DSH_HOME/profiles/` yang dicantumkannya. Rahasia yang tidak ada di vault (komputer lain) harus dimasukkan lagi: konsol mencantumkannya.
|
|
@@ -350,7 +350,7 @@ Diuji pada dsh `0.2.0-rc.2` (desktop dan web) dan `0.2.1-rc.2` (web). CI menjala
|
|
|
350
350
|
|
|
351
351
|
**Bisakah saya melihat semua obrolan saya sebagai papan kanban dan memulai obrolan baru dari sana?** Bisa, dengan **Papan tugas** (aktif secara default): buka di bilah samping kiri. Setiap obrolan adalah kartu di **Sedang dikerjakan**, **Ditinjau** (obrolan menunggu Anda), atau **Selesai**. **Tugas baru** membuka obrolan baru dsh di proyek, dan papan kembali saat pesan pertama Anda terkirim; klik **Jawab** di kartu oranye untuk menjawabnya tanpa membuka obrolan. **Bersihkan semua** di **Selesai** bertanya dulu dan mengeluarkan kartu selesai yang sudah Anda baca dari papan; **Urungkan** dan **Dikeluarkan (N)** mengembalikannya, dan obrolannya tetap ada di dsh.
|
|
352
352
|
|
|
353
|
-
**Bisakah saya punya obrolan asisten pribadi yang mengingatkan saya dan mengelola obrolan saya yang lain?** Bisa, dengan **Asisten** (
|
|
353
|
+
**Bisakah saya punya obrolan asisten pribadi yang mengingatkan saya dan mengelola obrolan saya yang lain?** Bisa, dengan **Asisten** (aktif secara default): klik **Asisten** di bilah samping kiri. Asisten membuat pengingat dengan tugas terjadwal dsh, mencari di web, menampilkan daftar dan membaca obrolan Anda, serta mengirim pesan ke obrolan atau memulai, menghentikan, atau mengarsipkan obrolan hanya setelah Anda menyetujuinya. Simpan profil Anda di memori proyeknya, topik “profil”.
|
|
354
354
|
|
|
355
355
|
**Bisakah dsh mencadangkan obrolan dan pengaturan saya, seperti dsh-backup?** Bisa: **Pengaturan → Composer Plus → Pencadangan → Cadangkan sekarang**. Fitur ini menulis format arsip yang sama ke folder yang sama (`~/Desktop/dsh-backups`), jadi arsip dsh-backup juga tampil dan dapat dipulihkan, dan Anda dapat menghapus dsh-backup. Aktifkan **Pencadangan otomatis** untuk pencadangan terjadwal.
|
|
356
356
|
|
|
@@ -504,7 +504,7 @@ SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-queue-stop-send.mjs /pat
|
|
|
504
504
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-queue-edit.mjs /path/to/dsh/lib/bin.js
|
|
505
505
|
# Task board: New task opens dsh's new chat and comes back after the first message, AI tags, live columns, Answer on the board, × with Undo, Clear all with its question (unread cards stay), Removed and Put back (kept after a restart), the switch
|
|
506
506
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-task-board.mjs /path/to/dsh/lib/bin.js
|
|
507
|
-
# Assistant:
|
|
507
|
+
# Assistant: on by default, sidebar row under Task board, one chat in ~/Assistant (workspace-write), a reminder that runs the chat, chats_list, chat_send after its approval card, an injected chat_send rejected, no tools in other chats, automations of other chats (dsh 0.2.2+), switch off
|
|
508
508
|
SHOT=1 CHECK_DELAY=20 PLAYWRIGHT=/path/to/playwright node test/browser-assistant.mjs /path/to/dsh/lib/bin.js
|
|
509
509
|
```
|
|
510
510
|
|
package/README.ja.md
CHANGED
|
@@ -29,7 +29,7 @@ dsh plugin --profile web add dsh-composer-plus
|
|
|
29
29
|
|
|
30
30
|
その後、dsh を再起動してください。(CLI はデスクトップのプロファイルにはインストールできません。デスクトップのプロファイルはアプリが管理します。)
|
|
31
31
|
|
|
32
|
-
> dsh の pnpm は、公開から 24 時間たっていないバージョンをスキップします。リリース直後は、バージョンを指定してください:`dsh-composer-plus@1.24.
|
|
32
|
+
> dsh の pnpm は、公開から 24 時間たっていないバージョンをスキップします。リリース直後は、バージョンを指定してください:`dsh-composer-plus@1.24.1`。
|
|
33
33
|
|
|
34
34
|
## 機能
|
|
35
35
|
|
|
@@ -75,7 +75,7 @@ dsh plugin --profile web add dsh-composer-plus
|
|
|
75
75
|
| **保護されたファイル** | <a id="feature-protectedfiles"></a>既定でオンです。エージェント自身のファイルツールは、指定したパターンに一致するファイルを読むことも変更することもできません。**読み取りと書き込み** のパターンでは、ファイルに対する `read`、`read_image`、`grep` が拒否され、どちらの種類でも `write`、`edit`、`str_replace_editor` が拒否されます。エージェントは理由を読み、あなたに確認するよう指示されます。既定のパターンは `.env*`、`*.pem`、`*.key` です。設定 → Composer Plus → **保護されたファイル**:パターンを追加し(例:`published/**` または `config/*.yml`)、種類をクリックして **読み取りと書き込み** と **書き込みのみ** を切り替え、✕ で削除するか、**既定値を使う** をクリックします。`/` を含まないパターンは、どのフォルダーのファイル名にも一致します。これはガードレールであり、サンドボックスではありません。シェルコマンド(`cat .env`)、スクリプト、MCP ツールからはファイルに届くことがあります(「制限事項」を参照)。 | <a href="assets/features/protectedFiles.webp"><img src="assets/features/protectedFiles.webp" width="160" alt="スクリーンショット: 保護されたファイル"></a> |
|
|
76
76
|
| **ブロックされたコマンド** | <a id="feature-blockedcommands"></a>既定でオンで、リストは空です。エージェントのシェルコマンド(`bash`、`pwsh`)は、指定したルールに一致するコマンドを実行できません。**ブロック** のルールは呼び出しを拒否し(エージェントは理由を読み、あなたに確認するよう指示されます)、**先に確認** のルールは dsh の承認カードを表示します。コマンドは、あなたが許可したときだけ実行されます。設定 → Composer Plus → **ブロックされたコマンド**:ルールを入力し(例:`npm publish`、`git push --force` または `ssh *192.168.2.19`)、種類をクリックして **ブロック** と **先に確認** を切り替えてから、**追加** をクリックします。ルールの種類をクリックすると変更でき、✕ で削除できます。ルールは、コマンド名と、その後にこの順で続く必要がある単語です。`*` は任意のテキストに一致します。`&&`、`;`、`\|` の後、`$(…)`、`bash -c "…"`、`eval` の中、`sudo` や `env` の後にあるコマンドも見つけます。これはガードレールであり、サンドボックスではありません。変数(`$CMD`)、スクリプトファイル、ほかのプログラムからはコマンドを実行できることがあります(「制限事項」を参照)。 | <a href="assets/features/blockedCommands.webp"><img src="assets/features/blockedCommands.webp" width="160" alt="スクリーンショット: ブロックされたコマンド"></a> |
|
|
77
77
|
| **タスクボード** | <a id="feature-taskboard"></a>左サイドバー → **タスクボード**。dsh のどこでも `Cmd+Shift+K`(Windows と Linux では `Ctrl+Shift+K`)でも開けます。サイドバーと同じライブの状態を表示する、dsh のチャットのカンバンボードです。承認、回答、計画のレビューを待っているチャットはオレンジの点付きで **レビュー** に、実行中のチャットは **作業中** に、まだ開いていない終わったチャットは **完了**(緑)に入ります。チャットを開くと、そのカードは **完了** から自動で外れます。緑のカードの下にある **最近完了 (N)** をクリックすると、読んだ終わったチャットを表示できます(新しい 10 件、続きは **古いタスクを N 件表示**。開閉の状態はこのデバイスに保存されます)。ボードの裏で開いたまま終わったチャット(**新しいタスク**)は、開くまで緑のままです。ボード上部のプロジェクト名をクリックするとプロジェクト一覧が開きます。そこでプロジェクトか **すべてのプロジェクト** を選びます。チャットごとのブランチのフォルダーは、そのプロジェクトとして扱われます。一覧は、選んだとき、`Esc` を押したとき、一覧の外をクリックしたときに閉じます。一覧の上部の **プロジェクトを検索** に入力すると、名前でプロジェクトを探せます(大文字と小文字、アクセント記号は区別しません。`Esc` で入力欄を空にします)。`Enter` を押すと、最初に一致したプロジェクトを選びます。**過去 2 時間以内にアクティブ** をクリックすると、待機中、実行中、未確認のまま完了、または過去 2 時間以内に変更されたチャットがあるプロジェクトだけを表示します(この設定はこのデバイスに保存されます)。**新しいタスク**(または `n`)は、ボードが表示しているプロジェクトで dsh 自身の新しいチャットを開きます(**すべてのプロジェクト** のときは、dsh の新しいセッションが選ぶプロジェクトです)。そのため、ほかのチャットと同じように、ファイルを追加し、コマンドを使い、モデルを選べます。最初のメッセージを送ると、自動でボードに戻ります。それまで、そのチャットは **作業中** の一番上で **新しいタスク** として待ちます。クリックすると、最初のメッセージを書けます。あなたを待っているチャットがあるプロジェクトには、プロジェクト一覧でオレンジの点が付きます(どれかのチャットが待っている間は、上部のプロジェクト名にも付きます)。dsh がチャットに名前を付け、チャットのモデルがそのメッセージから最大 3 個のタグを付けます。カードをクリックすると、そのチャットが開きます。オレンジのカード(またはその **回答**)をクリックすると、ボード上で回答できます。チャット全体はパネルの **チャットを開く** で開けます。承認のリクエストには **拒否** か **1回だけ許可**、計画には **承認** か **変更をリクエスト**、質問には選択肢か自分のテキストで答えます。終わったカードで **×** をクリックすると、そのカードをボードから外せます。**最近完了** を開いて **完了** の上部にある **すべてクリア** をクリックすると、それらのカードをボードから外せます。先に、どのプロジェクトのカードが何枚外れるかが表示され、未読(緑)のカードは残ります。その後 8 秒間は、**元に戻す** でカードを戻せます。**完了** の下の **外したカード (N)** には、ボードから外したカードが一覧表示され、**ボードに戻す** で 1 枚を再び **完了** に表示できます。チャットは削除されません。チャットは dsh のサイドバーに残り、ボードは再起動の後もこれを覚えています(Tether にも同じボードが表示されます)。再び実行されたチャットは、ボードに戻ります。**作業中** のカードにポインターを合わせる(またはキーボードのフォーカスを移す)と、その進行状況が表示されます。実行時間、ToDo リストのステップ、いま実行中のツール、エージェントの最後の行です。設定 → Composer Plus → タスクボード の **ホバーで進行状況を表示** で、**高速(AI なし)**(既定:チャットを読むだけです)か **AI の要約**(チャットのモデルを短く 1 回呼び出し、1〜2 文も書きます)を選びます。 | <a href="assets/features/taskBoard.webp"><img src="assets/features/taskBoard.webp" width="160" alt="スクリーンショット: タスクボード"></a> |
|
|
78
|
-
| **アシスタント** | <a id="feature-assistant"></a
|
|
78
|
+
| **アシスタント** | <a id="feature-assistant"></a>既定ではオンです(**設定 → Composer Plus** でオフにできます)。左サイドバーの **アシスタント**(**タスクボード** のすぐ下)をクリックします。ChatGPT や Grok のチャットのように、パーソナルアシスタントとして使う、長く続く 1 つのチャットが開きます。最初のクリックでフォルダー `~/Assistant` を作り、それをプロジェクト「Assistant」として追加し、workspace-write 権限モードと dsh の既定のモデルでチャットを開始します。その後のクリックでは、毎回同じチャットが開きます(アーカイブしたチャットは戻り、削除したチャットは新しく作られます)。リマインダーを頼むと(「2 分後に水を飲むようにリマインドして」)、dsh のスケジュールされたタスクを使います。そのため、その時刻にリマインダーがチャットを実行し、モバイル接続がオンのときは Tether が「Turn finished」の通知を送ります。Web の検索や、ほかのチャットについても頼めます。すべてのプロジェクトのチャット(実行中、あなたを待っている、アイドル)を一覧表示し、1 つのチャットの最新のメッセージを読めます。また、チャットへのメッセージ送信、プロジェクトでの新しいチャットの開始、実行中のチャットの停止、チャットのアーカイブもできます。この 4 つの操作は、それぞれ先に dsh の承認カードを表示し(Tether にも表示されます)、あなたが **1回だけ許可** をクリックするまで何も起きません。削除のツールはありません。これらのツールと短い指示があるのは、このチャットだけです。Web ページやほかのチャットで読んだテキストは、命令ではなくデータとして扱われます。毎回プロフィールを伝える代わりに、このプロジェクトのメモリー(**プロジェクトメモリー**、トピック「profil」)に保存してください。 | <a href="assets/features/assistant.webp"><img src="assets/features/assistant.webp" width="160" alt="スクリーンショット: アシスタント"></a> |
|
|
79
79
|
| **プロジェクトメモリー** | <a id="feature-projectmemory"></a>既定ではオフです。**設定 → Composer Plus** でオンにしてください。プロジェクトのフォルダーごとに専用のメモリーがあり、そのプロジェクトの後のチャットが読みます。DS Bot が Bot ごとにメモリーを持つのと同じです。ターンが終わるたびに、チャットのモデルを 1 回呼び出して新しいメッセージ(ロールバックしたものは除きます)を読み、長く続く好み、決定、事実を短いメモとして保存し、古いメモを変更または削除します。エージェントも自分でメモを保存、削除、検索できます(`memory_remember`、`memory_forget`、`memory_recall`)。メモはグローバルにもでき、その場合はすべてのプロジェクトが読みます。新しいチャットはシステムプロンプトでメモを受け取ります。後で保存したメモは次のチャットから表示されます。ファイルは dsh のホームフォルダーにある Markdown(`storages/dsh-composer-plus/memory/`)で、プロジェクトのフォルダーには保存されません。 同じ行の **メモリーを開く** は、保存されたすべてのメモをプロジェクトごと(とグローバルメモリー)にまとめて表示し、絞り込みもできます。変更する内容を自分の言葉で書き(例:「yarn から pnpm に変えた」)、**変更をプレビュー** を押します。dsh の既定のモデルが変更を提案し、**適用** を押したときだけ保存されます。Tether では: チャットのタイトルメニュー → Project memory。 | <a href="assets/features/projectMemory.webp"><img src="assets/features/projectMemory.webp" width="160" alt="スクリーンショット: プロジェクトメモリー"></a> |
|
|
80
80
|
| **メモリーのバージョン履歴** | <a id="feature-memoryhistory"></a>**プロジェクトメモリー** がオンの間、既定でオンです。メモリーを保存するたびに(エージェント、ターン後のレビュー、**メモリーを開く**)、保存前のメモのコピーが残ります。**メモリーを開く** でプロジェクトまたは **グローバルメモリー** を選び、**履歴** を押すと、日付順のバージョンと、それぞれの後にメモリーを変更したものが表示されます。バージョンを選ぶと復元で変わる内容が差分で表示され、**復元** できます。復元前のメモも残るので、復元は元に戻せます。各メモリーの最新 50 バージョンが残ります。Tether では:チャットのタイトルメニュー → Project memory → History。 | <a href="assets/features/memoryHistory.webp"><img src="assets/features/memoryHistory.webp" width="160" alt="スクリーンショット: メモリーのバージョン履歴"></a> |
|
|
81
81
|
| **メモリーを AGENTS.md に書き出す** | <a id="feature-memoryexport"></a>**メモリーを開く** でプロジェクトを選び、**AGENTS.md に書き出す** を押すと、そのプロジェクトのメモがフォルダー内の `AGENTS.md` の目印付きセクションに書かれます。コミットしてチームや他のエージェントツールと共有できます。まず変更が差分で表示され、**AGENTS.md に書き込む** を押したときだけ保存されます。次の書き出しはこのセクションだけを置き換えます。グローバルメモリー、出典、日付は書かれません。Tether では:チャットのタイトルメニュー → Project memory → Export to AGENTS.md。 | <a href="assets/features/memoryExport.webp"><img src="assets/features/memoryExport.webp" width="160" alt="スクリーンショット: メモリーを AGENTS.md に書き出す"></a> |
|
|
@@ -226,7 +226,7 @@ dsh `0.2.0-rc.2`(デスクトップと Web)と `0.2.1-rc.2`(Web)でテ
|
|
|
226
226
|
- **チャット行にブランチのラベルがない:** 原因は次のいずれかです。サイドバーが「1つのリスト」表示ではない(「ワークスペース」と「ワークスペースのツリー」では、どのチャット行にもラベルは表示されません)。このバージョンをインストールしてから、そのチャットにターンがない。フォルダーが git リポジトリではない。**チャット行の Git ブランチ** がオフになっている。アップデートの後は、dsh を再起動してください(ブランチはホスト側が記録します)。
|
|
227
227
|
- **目標チェックで、テストが終了コード 127 または「not found」で終了したと表示される:** Finder や Dock から起動した dsh は、ターミナルより PATH が短いことがあるため、`npm`、`pnpm`、`cargo` が見つかりません。ターミナルから dsh を起動するか、**目標チェック** → **編集** で、フルパスを使った独自のテストコマンドを設定してください。**今すぐ実行** を使うと、すぐに結果が表示されます。
|
|
228
228
|
- **目標が閉じず、エージェントが作業を続ける:** **目標チェック** が、失敗したテストまたは足りない作業を見つけました。目標の下の行に理由が表示されます(詳細は、結果にポインターを合わせると表示されます)。原因またはテストコマンドを直すか、`/goal` または目標バーで目標を自分で完了してください(その完了はチェックされません)。
|
|
229
|
-
- **リリース直後にインストールが失敗する:** バージョンを指定してください(`dsh-composer-plus@1.24.
|
|
229
|
+
- **リリース直後にインストールが失敗する:** バージョンを指定してください(`dsh-composer-plus@1.24.1`)。上のインストールの注記を参照してください。
|
|
230
230
|
- **今すぐバックアップ で「別のバックアップ操作を実行中です」と表示される:** 別の dsh のウィンドウ、またはレスキューコンソールで操作が実行中です(どちらも、バックアップフォルダーのロックファイル `.composer-plus.lock` を共有します)。完了するまで待ってください。実行中の操作がない場合は、次のクリックで、終了したプロセスのロックを引き継ぎます。
|
|
231
231
|
- **レスキューコンソールで「dsh is running」と表示される:** まず dsh を終了してください。dsh が本当に閉じている場合、メッセージに示されたファイルはクラッシュで残ったものです。そのファイルを削除して、もう一度試してください。
|
|
232
232
|
- **復元の後に dsh が起動しない、またはプラグインが見つからない:** プロファイルのプラグインパッケージを、もう一度インストールする必要があります。レスキューコンソールが、復元の後にこれを提案します。または、コンソールが一覧表示する `$DSH_HOME/profiles/` の下の各フォルダーで `pnpm install` を実行してください。vault に入っていなかったシークレット(別のコンピュータ)は、もう一度入力する必要があります。コンソールがそれらを一覧表示します。
|
|
@@ -350,7 +350,7 @@ dsh `0.2.0-rc.2`(デスクトップと Web)と `0.2.1-rc.2`(Web)でテ
|
|
|
350
350
|
|
|
351
351
|
**すべてのチャットをカンバンボードで見て、そこから新しいチャットを開始できますか?** はい、**タスクボード**(既定でオン)で可能です。左サイドバーで開きます。各チャットは、**作業中**、**レビュー**(あなたを待っています)、**完了** のいずれかの列のカードになります。**新しいタスク** はプロジェクトで dsh の新しいチャットを開き、最初のメッセージを送るとボードに戻ります。オレンジのカードで **回答** をクリックすると、チャットを開かずに回答できます。**完了** の **すべてクリア** は、先に確認してから、読んだ終わったカードをボードから外します。**元に戻す** と **外したカード (N)** でカードを戻せます。チャットは dsh に残ります。
|
|
352
352
|
|
|
353
|
-
**リマインドしてくれて、ほかのチャットも管理してくれる個人アシスタントのチャットを使えますか?**
|
|
353
|
+
**リマインドしてくれて、ほかのチャットも管理してくれる個人アシスタントのチャットを使えますか?** はい、**アシスタント**(既定でオン)で可能です。左サイドバーの **アシスタント** をクリックします。dsh のスケジュールされたタスクでリマインダーを設定し、Web を検索し、チャットを一覧表示して読みます。チャットへのメッセージ送信と、チャットの開始、停止、アーカイブは、あなたが承認した後にだけ行います。プロフィールは、そのプロジェクトメモリーのトピック「profil」に保存してください。
|
|
354
354
|
|
|
355
355
|
**dsh-backup のように、dsh でチャットや設定をバックアップできますか?** はい。**設定 → Composer Plus → バックアップ → 今すぐバックアップ** を使います。同じ形式のアーカイブを同じフォルダー(`~/Desktop/dsh-backups`)に書き込むため、dsh-backup のアーカイブも表示され、復元できます。dsh-backup は削除してかまいません。定期的にバックアップするには、**自動バックアップ** をオンにしてください。
|
|
356
356
|
|
|
@@ -504,7 +504,7 @@ SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-queue-stop-send.mjs /pat
|
|
|
504
504
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-queue-edit.mjs /path/to/dsh/lib/bin.js
|
|
505
505
|
# Task board: New task opens dsh's new chat and comes back after the first message, AI tags, live columns, Answer on the board, × with Undo, Clear all with its question (unread cards stay), Removed and Put back (kept after a restart), the switch
|
|
506
506
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-task-board.mjs /path/to/dsh/lib/bin.js
|
|
507
|
-
# Assistant:
|
|
507
|
+
# Assistant: on by default, sidebar row under Task board, one chat in ~/Assistant (workspace-write), a reminder that runs the chat, chats_list, chat_send after its approval card, an injected chat_send rejected, no tools in other chats, automations of other chats (dsh 0.2.2+), switch off
|
|
508
508
|
SHOT=1 CHECK_DELAY=20 PLAYWRIGHT=/path/to/playwright node test/browser-assistant.mjs /path/to/dsh/lib/bin.js
|
|
509
509
|
```
|
|
510
510
|
|