dsh-composer-plus 1.21.0 → 1.21.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 -4
- package/README.es.md +5 -4
- package/README.fr.md +5 -4
- package/README.hi.md +5 -4
- package/README.id.md +5 -4
- package/README.ja.md +5 -4
- package/README.ko.md +5 -4
- package/README.md +5 -4
- package/README.pt-BR.md +5 -4
- package/README.ru.md +5 -4
- package/README.tr.md +5 -4
- package/README.vi.md +5 -4
- package/README.zh.md +5 -4
- package/client.js +80 -36
- package/index.js +23 -5
- package/package.json +2 -2
- 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.21.
|
|
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.21.1`.
|
|
33
33
|
|
|
34
34
|
## Funktionen
|
|
35
35
|
|
|
@@ -100,7 +100,7 @@ Starte dsh danach neu. (Die CLI kann nicht in das Desktop-Profil installieren; d
|
|
|
100
100
|
| **App-Sprache** | <a id="feature-language"></a>Einstellungen → Composer Plus → **App-Sprache** stellt die ganze dsh-Oberfläche auf Türkçe, Español, Português (Brasil), Français, Deutsch, Русский, 日本語, 한국어, Bahasa Indonesia, Tiếng Việt oder हिन्दी um (siehe unten). | <a href="assets/features/language.webp"><img src="assets/features/language.webp" width="160" alt="Screenshot: App-Sprache"></a> |
|
|
101
101
|
| **Mobile Verbindung (iPhone)** | <a id="feature-mobileconnect"></a>Nutze dsh mit der App [Tether](tether/) von deinem iPhone aus, im selben WLAN oder über [Tailscale](https://tailscale.com). Schalte die Funktion unter **Einstellungen → Composer Plus** ein (sie ist standardmäßig aus, weil sie einen Netzwerkport auf diesem Mac öffnet). Klicke dann unten links in der Seitenleiste auf **Mobile Verbindung**: Scanne den QR-Code mit der iPhone-Kamera (tippe auf **Open in Tether**) oder mit **Scan code** in Tether, tippe auf **Connect** und klicke auf **Approve**. Installiere Tether zuerst: Ohne die App kann die Kamera den Code nicht öffnen. Das Telefon zeigt deine Chats, sendet Nachrichten (mit Fotos: das **+** im Eingabefeld → Camera, Photos oder Paste image), beantwortet Genehmigungen und Fragen und wechselt Modelle und Agenten. Kopple so viele Macs, wie du willst: Mit dem Mac-Namen oben links in der App wechselst du zwischen ihnen. Das Panel **Mobile Verbindung** listet die gekoppelten iPhones mit ihrer letzten Verbindung auf: **Remove** trennt eines sofort. „Tailscale only“ lehnt das lokale Netzwerk ab (für ein geteiltes WLAN), und das Zugriffsprotokoll zeigt, wer sich verbinden wollte. In Tether sperrt „Settings → Privacy“ die App mit Face ID. | <a href="assets/features/mobileConnect.webp"><img src="assets/features/mobileConnect.webp" width="160" alt="Screenshot: Mobile Verbindung (iPhone)"></a> |
|
|
102
102
|
| **Remote-Computer** | <a id="feature-remotecomputers"></a>Öffne dsh auf deinen anderen Macs über [Tailscale](https://tailscale.com) und setze ihre Chats hier fort. Schalte die Funktion auf jedem Mac unter **Einstellungen → Composer Plus** ein (sie ist standardmäßig aus, weil sie Netzwerkports öffnet). Schalte auf dem Mac, den du öffnen willst, **Anderen Computern erlauben, diesen Mac zu öffnen** ein, klicke auf **Kopplungslink erstellen** und kopiere den Link. Wähle auf diesem Mac in der Computerauswahl links vom Chattitel **Computer hinzufügen…**, füge den Link ein und klicke auf **Verbinden**. Klicke dann auf dem anderen Mac auf **Genehmigen**. Danach listet die Auswahl **Dieser Mac** und deine Computer auf: Wähle einen, und sein dsh öffnet sich im Browser-Tab der rechten Seitenleiste (oder in einem Browserfenster), mit seinen eigenen Chats, Tools und Dateien. Im Einstellungsbereich kannst du Computer umbenennen und entfernen. Dort siehst du auch die Computer, die diesen Mac öffnen können (**Entfernen** trennt einen sofort). | <a href="assets/features/remoteComputers.webp"><img src="assets/features/remoteComputers.webp" width="160" alt="Screenshot: Remote-Computer"></a> |
|
|
103
|
-
| **Automatische Updates** | <a id="feature-autoupdate"></a>Wenn dsh startet, prüft das Plugin das [neueste GitHub-Release](https://github.com/furkancak1r/dsh-composer-plus/releases/latest). Ist es neuer und schon auf npm, installiert das Plugin genau diese Version über die eigene Plugin-Verwaltung von dsh (derselbe Weg wie Einstellungen → Plugins) und benachrichtigt dich. Starte dsh neu, um die Version zu laden. **Einstellungen → Composer Plus → Composer-Plus-Updates** zeigt die Version und hat **Nach Updates suchen** / **Jetzt aktualisieren**. Beim ersten Start von dsh mit der neuen Version zeigt ein Fenster **Neu in Composer Plus N** einmal die Release Notes dieser Version in der Sprache von **App-Sprache** (sie kommen mit der neuen Version, ohne weiteren Netzwerkaufruf; eine Sprache ohne Notes zeigt die englischen); **Schließen** oder `Esc` schließt es. | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="Screenshot: Automatische Updates"></a> |
|
|
103
|
+
| **Automatische Updates** | <a id="feature-autoupdate"></a>Wenn dsh startet, prüft das Plugin das [neueste GitHub-Release](https://github.com/furkancak1r/dsh-composer-plus/releases/latest). Ist es neuer und schon auf npm, installiert das Plugin genau diese Version über die eigene Plugin-Verwaltung von dsh (derselbe Weg wie Einstellungen → Plugins) und benachrichtigt dich. Starte dsh neu, um die Version zu laden. **Einstellungen → Composer Plus → Composer-Plus-Updates** zeigt die Version und hat **Nach Updates suchen** / **Jetzt aktualisieren**. Beim ersten Start von dsh mit der neuen Version zeigt ein Fenster **Neu in Composer Plus N** einmal die Release Notes dieser Version in der Sprache von **App-Sprache** (sie kommen mit der neuen Version, ohne weiteren Netzwerkaufruf; eine Sprache ohne Notes zeigt die englischen); **Schließen** oder `Esc` schließt es. Das Fenster erscheint auch nach einem Update über Einstellungen → Plugins oder einen kopierten Ordner, einmal je neuer Version; nicht bei der ersten Installation. **Neu in dieser Version** in der Update-Zeile öffnet es erneut. Liegt auf der Festplatte eine neuere Version als die laufende, bittet die Zeile um einen Neustart von dsh. | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="Screenshot: Automatische Updates"></a> |
|
|
104
104
|
| **Sicherung** | <a id="feature-backup"></a>Einstellungen → Composer Plus → **Sicherung** → **Jetzt sichern** schreibt dein ganzes dsh-Home (Chats, Einstellungen, Plugins, MCP, Skills) mit Prüfsumme in ein einziges Archiv in `~/Desktop/dsh-backups`. Geheimnisse werden im Archiv maskiert: Dateien mit Anmeldedaten, Schlüsseldateien (`.pem`, `.key`) und die Werte token, secret und password der yml-Einstellungen bleiben nur auf diesem Computer, im `vault` des Ordners. `cache/`, `dsh-runtimes/` und `node_modules` kommen nicht ins Archiv (dsh erstellt sie neu). Jede Sicherung in der Liste hat **Prüfen** (liest sie vollständig), **Für einen anderen Computer** (ein Ordner zum Kopieren auf den neuen Computer, mit der Rettungskonsole) und **Löschen**. Archive von dsh-backup im selben Ordner erscheinen und funktionieren auch. Zum Wiederherstellen beende dsh und nutze die Rettungskonsole. | <a href="assets/features/backup.webp"><img src="assets/features/backup.webp" width="160" alt="Screenshot: Sicherung"></a> |
|
|
105
105
|
| **Automatische Sicherung** | <a id="feature-autobackup"></a>Schalte **Automatische Sicherung** ein (standardmäßig aus: Jede Kopie ist etwa so groß wie dein dsh-Home ohne seinen Cache). Wähle, wie oft gesichert wird (**Alle**: 6 Stunden bis 7 Tage, standardmäßig 24 Stunden) und wie viele Sicherungen bleiben (**Behalten**: 3 bis 14, standardmäßig 7). Der nächste Zeitpunkt steht unter dem Schalter; eine fehlgeschlagene Sicherung erscheint dort auch und wird 30 Minuten später erneut versucht. Wenn dsh oder Composer Plus mit einer neuen Version startet, entsteht kurz nach dem Start ein Snapshot, bevor die neue Version deine Daten lange benutzt hat (die zwei neuesten bleiben, markiert mit **Vor einem Upgrade**). | <a href="assets/features/autoBackup.webp"><img src="assets/features/autoBackup.webp" width="160" alt="Screenshot: Automatische Sicherung"></a> |
|
|
106
106
|
| **Sitzungsprotokoll-Prüfung** | <a id="feature-sessiondoctor"></a>**Sitzungsprotokolle prüfen** liest das Protokoll jedes Chats und listet die auf, die dsh nicht öffnen kann (ein defekter Frame, ein abgeschnittener Datensatz, eine falsche Sequenznummer). Ein abgerissenes Ende wird nicht aufgelistet: dsh repariert es selbst. **Aus Sicherungen reparieren** legt die Kopie aus der neuesten Sicherung zurück, die eine intakte Kopie enthält, und behält die beschädigte Datei daneben (`.corrupt-<Zeit>`). Nachrichten, die nach dieser Sicherung geschrieben wurden, sind nicht in der Kopie. Ein Chat, der in diesem dsh offen ist, wird hier nicht repariert: Beende dsh und repariere ihn in der Rettungskonsole. | <a href="assets/features/sessionDoctor.webp"><img src="assets/features/sessionDoctor.webp" width="160" alt="Screenshot: Sitzungsprotokoll-Prüfung"></a> |
|
|
@@ -215,7 +215,7 @@ Getestet mit dsh `0.2.0-rc.2` (Desktop und Web) und `0.2.1-rc.2` (Web). Die CI f
|
|
|
215
215
|
- **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).
|
|
216
216
|
- **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.
|
|
217
217
|
- **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).
|
|
218
|
-
- **Die Installation schlägt direkt nach einem Release fehl:** Gib die Version mit an (`dsh-composer-plus@1.21.
|
|
218
|
+
- **Die Installation schlägt direkt nach einem Release fehl:** Gib die Version mit an (`dsh-composer-plus@1.21.1`), siehe den Hinweis zur Installation oben.
|
|
219
219
|
- **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.
|
|
220
220
|
- **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.
|
|
221
221
|
- **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.
|
|
@@ -236,6 +236,7 @@ Getestet mit dsh `0.2.0-rc.2` (Desktop und Web) und `0.2.1-rc.2` (Web). Die CI f
|
|
|
236
236
|
- Die Warteschlange von dsh hat keine `move`-Aktion. Deshalb verschiebt die Host-Hälfte des Plugins die eingereihte Nachricht selbst in der Warteschlange von dsh (eine Änderung, dieselbe Nachricht). Nachrichten mit Bildern oder Dateien lassen sich ebenfalls verschieben. Nur deine eigenen Nachrichten lassen sich verschieben: Eine Zielrunde oder eine Antwort auf eine Frage in der Warteschlange bleibt an ihrem Platz. Beginnt das Senden einer Nachricht, während du ziehst, wird nichts verschoben, und ein Hinweis meldet das.
|
|
237
237
|
- dsh 0.2.1 lädt ein Update sofort, wenn die neue Version keine Einstellungen von dsh ändert. Andernfalls und unter dsh 0.2.0 starte dsh neu, um das Update zu laden. Das Plugin startet dsh nie für dich neu. Web-/CLI-Profile ohne die Plugin-Verwaltung von dsh melden nur eine neue Version.
|
|
238
238
|
- **Neu in Composer Plus N** zeigt die Notes in der Sprache von **App-Sprache**. Eine UI-Sprache mit einer anderen Region bekommt die Notes ihrer Grundsprache (`en-GB` die englischen, `zh-TW` die chinesischen von `zh`). Eine Sprache ohne Notes (eine, die ein anderes Sprachpaket hinzufügt, oder `pt-PT`, das nicht `pt-BR` ist) zeigt die englischen Notes. Die Notes kommen mit der neuen Version. Hat die laufende Kopie keine lesbare Notes-Datei (`release-notes.json`), zeigt das Fenster die englischen Notes von GitHub.
|
|
239
|
+
- Eine Version, die installiert wird, während dsh läuft (ein Update über Einstellungen → Plugins oder einen kopierten Ordner), lädt erst nach einem Neustart von dsh. Bis dahin zeigt **Composer-Plus-Updates** die laufende Version und bittet um einen Neustart. Ihr Fenster **Neu in Composer Plus N** erscheint einmal beim ersten Start dieser Version. Der erste Start nach der Installation dieses Plugins zeigt kein Fenster; **Neu in dieser Version** öffnet die Notes der laufenden Version.
|
|
239
240
|
- **Mit Notiz ablehnen** sendet die Notiz als Nachricht in die wartende Runde und lehnt dann die Anfrage ab. dsh zeigt die Notiz im Chat als deine Nachricht. Solange das Notizfeld offen ist, zeigt die Karte nur **Abbrechen** und **Ablehnen**, sodass ein Klick die Anfrage nicht aus Versehen zulassen kann. `Esc` oder **Abbrechen** bringt die Schaltflächen von dsh zurück. Eine leere Notiz sendet nichts (nutze die eigene Schaltfläche **Ablehnen** von dsh). Schlägt die Ablehnung fehl, nachdem die Notiz gesendet wurde (zum Beispiel, weil die Anfrage inzwischen an anderer Stelle beantwortet wurde), bleibt die Notiz im Chat, und das Modell liest sie bei seinem nächsten Schritt. Die Schaltfläche kommt in das Markup der Genehmigungskarte von dsh (`data-approval-key`), weil dsh keinen Platz für Aktionen der Karte hat. Ändert ein dsh-Update dieses Markup, erscheint die Schaltfläche nicht, und die eigene Schaltfläche **Ablehnen** von dsh funktioniert wie zuvor. Eine Notiz kann höchstens 4.000 Zeichen haben.
|
|
240
241
|
- **Geheime Eingabe** verbirgt nur den genauen Text eines Werts: `[secret]` ersetzt ihn in den späteren Tool-Ergebnissen desselben Chats. Der Agent kann die Datei trotzdem mit einem Shell-Befehl lesen und den Wert in anderer Form ausgeben (base64, ein Teil davon, mit Leerzeichen), und diese Form erreicht das Modell. Die eigenen Datei-Tools des Agenten (read, grep, write, edit) können den Geheimnis-Ordner nicht öffnen. Ist der Wert auch ein häufiges Wort, zeigen andere Ergebnisse dieses Chats ebenfalls `[secret]`. Die Datei bleibt bis zum Ende des Durchgangs; beendet sich dsh währenddessen, löscht der nächste Start sie. Ein Chat kann jeweils nur eine offene Anfrage haben. Das Tool fügt jeder Modellanfrage etwa 870 Zeichen hinzu (geschätzt etwa 220 Tokens): Schalte es aus, wenn du es nicht nutzt.
|
|
241
242
|
- **In Antwort zitieren** zitiert den Text so, wie die Seite ihn zeigt: Ein Codeblock, eine Tabelle oder eine Liste kommt als einfache Zeilen, ohne Markdown-Zeichen. Eine Markierung, die in einer Antwort beginnt und in einer anderen endet oder das Nachdenken, eine Tool-Zeile oder deine eigene Nachricht berührt, zeigt keine Schaltfläche: Markiere innerhalb einer Antwort. Die Schaltfläche findet die Antwort über die Chatstruktur von dsh, weil dsh keinen Slot für eine Textmarkierung hat; ändert ein dsh-Update diese Struktur, erscheint die Schaltfläche nicht. Steht das Zitat am Ende des Felds, folgt eine weitere leere Zeile, damit die nächste getippte Zeile darunter beginnt; dsh entfernt leere Zeilen am Ende beim Senden.
|
|
@@ -423,7 +424,7 @@ SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-agentbox-ideas.mjs /path
|
|
|
423
424
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-t3code-ideas.mjs /path/to/dsh/lib/bin.js
|
|
424
425
|
# every Settings feature row shows a loading screenshot and a ? link to its README row
|
|
425
426
|
PLAYWRIGHT=/path/to/playwright node test/browser-settings-shots.mjs /path/to/dsh/lib/bin.js
|
|
426
|
-
# What's new after an update: the release notes show once, Esc and Close close them
|
|
427
|
+
# What's new after an update: the release notes show once (also after an install through another path), Esc and Close close them; Settings → What’s new in this version opens them again
|
|
427
428
|
PLAYWRIGHT=/path/to/playwright node test/browser-whats-new.mjs /path/to/dsh/lib/bin.js
|
|
428
429
|
# README feature anchors (the ? links) on github.com, headless: each #feature-… shows the start of its row
|
|
429
430
|
PLAYWRIGHT=/path/to/playwright node test/browser-readme-anchors.mjs
|
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.21.
|
|
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.21.1`.
|
|
33
33
|
|
|
34
34
|
## Funciones
|
|
35
35
|
|
|
@@ -100,7 +100,7 @@ Después, reinicia dsh. (La CLI no puede instalar en el perfil de escritorio: de
|
|
|
100
100
|
| **Idioma de la aplicación** | <a id="feature-language"></a>Configuración → Composer Plus → **Idioma de la aplicación** cambia toda la interfaz de dsh a Türkçe, Español, Português (Brasil), Français, Deutsch, Русский, 日本語, 한국어, Bahasa Indonesia, Tiếng Việt o हिन्दी (consulta más abajo). | <a href="assets/features/language.webp"><img src="assets/features/language.webp" width="160" alt="Captura: Idioma de la aplicación"></a> |
|
|
101
101
|
| **Conexión móvil (iPhone)** | <a id="feature-mobileconnect"></a>Usa dsh desde tu iPhone con la app [Tether](tether/), en la misma red Wi-Fi o a través de [Tailscale](https://tailscale.com). Actívala en **Configuración → Composer Plus** (está desactivada de forma predeterminada, porque abre un puerto de red en este Mac). Después haz clic en **Conexión móvil**, abajo a la izquierda de la barra lateral: escanea el código QR con la Cámara del iPhone (toca **Open in Tether**) o con **Scan code** en Tether, toca **Connect** y haz clic en **Approve**. Primero instala Tether: sin la app, la Cámara no puede abrir el código. El teléfono muestra tus chats, envía mensajes (con fotos: el **+** del editor → Camera, Photos o Paste image), responde aprobaciones y preguntas, y cambia de modelo y de agente. Empareja todos los Mac que quieras: el nombre del Mac, arriba a la izquierda en la app, te permite cambiar entre ellos. El panel **Conexión móvil** muestra los iPhone emparejados con su última conexión: **Remove** desconecta uno al instante. “Tailscale only” rechaza la red local (para una red Wi-Fi compartida), y el registro de accesos muestra quién intentó conectarse. En Tether, “Settings → Privacy” bloquea la app con Face ID. | <a href="assets/features/mobileConnect.webp"><img src="assets/features/mobileConnect.webp" width="160" alt="Captura: Conexión móvil (iPhone)"></a> |
|
|
102
102
|
| **Equipos remotos** | <a id="feature-remotecomputers"></a>Abre el dsh de tus otros Mac a través de [Tailscale](https://tailscale.com) y continúa sus chats aquí. Actívala en **Configuración → Composer Plus** en cada Mac (está desactivada de forma predeterminada, porque abre puertos de red). En el Mac que quieres abrir, activa **Permitir que otros equipos abran este Mac**, haz clic en **Crear enlace de emparejamiento** y copia el enlace. En este Mac, elige **Añadir un equipo…** en el selector de equipos, a la izquierda del título del chat, pega el enlace y haz clic en **Conectar**. Después haz clic en **Aprobar** en el otro Mac. Desde entonces, el selector muestra **Este Mac** y tus equipos: elige uno y su dsh se abre en la pestaña Navegador de la barra lateral derecha (o en una ventana del navegador), con sus propios chats, herramientas y archivos. El panel de Configuración cambia el nombre de los equipos y los quita, y muestra los equipos que pueden abrir este Mac (**Quitar** desconecta uno al instante). | <a href="assets/features/remoteComputers.webp"><img src="assets/features/remoteComputers.webp" width="160" alt="Captura: Equipos remotos"></a> |
|
|
103
|
-
| **Actualizaciones automáticas** | <a id="feature-autoupdate"></a>Al iniciar dsh, el plugin consulta la [última versión publicada en GitHub](https://github.com/furkancak1r/dsh-composer-plus/releases/latest). Si es más reciente y ya está en npm, instala esa versión exacta con el gestor de plugins propio de dsh (el mismo camino que Configuración → Plugins) y te avisa. Reinicia dsh para cargarla. **Configuración → Composer Plus → Actualizaciones de Composer Plus** muestra la versión y tiene los botones **Buscar actualizaciones** / **Actualizar ahora**. La primera vez que dsh se inicia con la nueva versión, una ventana **Novedades de Composer Plus N** muestra una vez las notas de esa versión en el idioma de **Idioma de la aplicación** (llegan con la nueva versión, sin otra llamada de red; un idioma sin notas muestra las notas en inglés); **Cerrar** o `Esc` la cierra. | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="Captura: Actualizaciones automáticas"></a> |
|
|
103
|
+
| **Actualizaciones automáticas** | <a id="feature-autoupdate"></a>Al iniciar dsh, el plugin consulta la [última versión publicada en GitHub](https://github.com/furkancak1r/dsh-composer-plus/releases/latest). Si es más reciente y ya está en npm, instala esa versión exacta con el gestor de plugins propio de dsh (el mismo camino que Configuración → Plugins) y te avisa. Reinicia dsh para cargarla. **Configuración → Composer Plus → Actualizaciones de Composer Plus** muestra la versión y tiene los botones **Buscar actualizaciones** / **Actualizar ahora**. La primera vez que dsh se inicia con la nueva versión, una ventana **Novedades de Composer Plus N** muestra una vez las notas de esa versión en el idioma de **Idioma de la aplicación** (llegan con la nueva versión, sin otra llamada de red; un idioma sin notas muestra las notas en inglés); **Cerrar** o `Esc` la cierra. La ventana también aparece tras una actualización desde Configuración → Plugins o una carpeta copiada, una vez por versión nueva; no en la primera instalación. **Novedades de esta versión** en la fila de actualizaciones la abre de nuevo. Si en el disco hay una versión más reciente que la que se ejecuta, la fila pide reiniciar dsh. | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="Captura: Actualizaciones automáticas"></a> |
|
|
104
104
|
| **Copia de seguridad** | <a id="feature-backup"></a>Configuración → Composer Plus → **Copia de seguridad** → **Hacer copia ahora** guarda todo tu directorio home de dsh (chats, ajustes, plugins, MCP, skills) en un único archivo comprimido en `~/Desktop/dsh-backups`, con una suma de comprobación. Los secretos se ocultan en el archivo comprimido: los archivos de credenciales, los archivos de claves (`.pem`, `.key`) y los valores token, secret y password de los ajustes yml se quedan solo en este equipo, en el `vault` de la carpeta. `cache/`, `dsh-runtimes/` y `node_modules` no entran en el archivo comprimido (dsh los vuelve a crear). Cada copia de seguridad de la lista tiene **Comprobar** (la lee completa), **Para otro equipo** (una carpeta para copiar al equipo nuevo, con la consola de rescate) y **Eliminar**. Los archivos comprimidos de dsh-backup en la misma carpeta también aparecen y funcionan. Para restaurar, sal de dsh y usa la consola de rescate. | <a href="assets/features/backup.webp"><img src="assets/features/backup.webp" width="160" alt="Captura: Copia de seguridad"></a> |
|
|
105
105
|
| **Copia de seguridad automática** | <a id="feature-autobackup"></a>Activa **Copia de seguridad automática** (desactivada de forma predeterminada: cada copia ocupa más o menos lo mismo que tu directorio home de dsh sin su caché). Elige la frecuencia (**Cada**: de 6 horas a 7 días, 24 horas de forma predeterminada) y cuántas copias de seguridad se conservan (**Conservar**: de 3 a 14, 7 de forma predeterminada). La hora de la próxima copia aparece bajo el interruptor; una copia fallida también aparece allí y se vuelve a intentar 30 minutos después. Cuando dsh o Composer Plus se inicia con una versión nueva, se toma una instantánea poco después del inicio, antes de que la versión nueva haya usado tus datos mucho tiempo (se conservan las dos más recientes, marcadas como **Antes de una actualización**). | <a href="assets/features/autoBackup.webp"><img src="assets/features/autoBackup.webp" width="160" alt="Captura: Copia de seguridad automática"></a> |
|
|
106
106
|
| **Comprobación de registros de sesión** | <a id="feature-sessiondoctor"></a>**Comprobar registros de sesión** lee el registro de cada chat y muestra los que dsh no puede abrir (un bloque roto, una entrada cortada, un número de secuencia incorrecto). Un final incompleto no aparece en la lista: dsh lo repara por sí mismo. **Reparar desde copias de seguridad** vuelve a poner la copia de la copia de seguridad más reciente que tenga una versión sana y guarda el archivo dañado a su lado (`.corrupt-<hora>`). Los mensajes escritos después de esa copia de seguridad no están en la copia. Un chat abierto en este dsh no se repara aquí: sal de dsh y repáralo en la consola de rescate. | <a href="assets/features/sessionDoctor.webp"><img src="assets/features/sessionDoctor.webp" width="160" alt="Captura: Comprobación de registros de sesión"></a> |
|
|
@@ -215,7 +215,7 @@ Probado en dsh `0.2.0-rc.2` (escritorio y web) y `0.2.1-rc.2` (web). La CI ejecu
|
|
|
215
215
|
- **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).
|
|
216
216
|
- **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.
|
|
217
217
|
- **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).
|
|
218
|
-
- **La instalación falla justo después de una versión nueva:** añade la versión (`dsh-composer-plus@1.21.
|
|
218
|
+
- **La instalación falla justo después de una versión nueva:** añade la versión (`dsh-composer-plus@1.21.1`); consulta la nota de instalación de más arriba.
|
|
219
219
|
- **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.
|
|
220
220
|
- **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.
|
|
221
221
|
- **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.
|
|
@@ -236,6 +236,7 @@ Probado en dsh `0.2.0-rc.2` (escritorio y web) y `0.2.1-rc.2` (web). La CI ejecu
|
|
|
236
236
|
- La cola de dsh no tiene una acción `move`, así que la parte Host del plugin mueve el propio mensaje dentro de la cola de dsh (un solo cambio, el mismo mensaje). Los mensajes con imágenes o archivos también se mueven. Solo se mueven tus propios mensajes: una ronda de un objetivo o una respuesta a una pregunta en la cola se queda donde está. Si un mensaje empieza a enviarse mientras arrastras, no se mueve nada y un aviso lo indica.
|
|
237
237
|
- dsh 0.2.1 carga una actualización de inmediato cuando la nueva versión no cambia ningún ajuste de dsh; en caso contrario, y en dsh 0.2.0, reinicia dsh para cargarla. El plugin nunca reinicia dsh por ti. Los perfiles web/CLI sin el gestor de plugins de dsh solo avisan de que hay una versión nueva.
|
|
238
238
|
- **Novedades de Composer Plus N** muestra las notas en el idioma de **Idioma de la aplicación**. Un idioma de interfaz con otra región recibe las notas de su idioma base (`en-GB` recibe las notas en inglés y `zh-TW`, las notas en chino de `zh`). Un idioma sin notas (uno que añade otro paquete de idioma, o `pt-PT`, que no es `pt-BR`) muestra las notas en inglés. Las notas llegan con la nueva versión. Si la copia en ejecución no tiene un archivo de notas legible (`release-notes.json`), la ventana muestra las notas en inglés de GitHub.
|
|
239
|
+
- Una versión que se instala mientras dsh se ejecuta (una actualización desde Configuración → Plugins o una carpeta copiada) se carga solo tras reiniciar dsh: hasta entonces, **Actualizaciones de Composer Plus** muestra la versión en ejecución y pide reiniciar. Su ventana **Novedades de Composer Plus N** aparece una vez en el primer inicio de esa versión. El primer inicio después de instalar este plugin no muestra ninguna ventana; **Novedades de esta versión** abre las notas de la versión en ejecución.
|
|
239
240
|
- **Rechazar con nota** envía la nota como un mensaje dentro del turno que espera y después rechaza la solicitud; dsh muestra la nota en el chat como un mensaje tuyo. Mientras el campo de la nota está abierto, la tarjeta muestra solo **Cancelar** y **Rechazar**, así que un clic no puede permitir la solicitud por error; `Esc` o **Cancelar** devuelve los botones de dsh. Una nota vacía no envía nada (usa el propio **Rechazar** de dsh). Si el rechazo falla después de enviar la nota (por ejemplo, porque mientras tanto la solicitud se respondió en otro lugar), la nota se queda en el chat y el modelo la lee en su siguiente paso. El botón va en el marcado de la tarjeta de aprobación de dsh (`data-approval-key`), porque dsh no tiene un espacio para acciones de la tarjeta; si una actualización de dsh cambia ese marcado, el botón no aparece y el propio **Rechazar** de dsh funciona como antes. Una nota puede tener como máximo 4.000 caracteres.
|
|
240
241
|
- **Entrada secreta** oculta solo el texto exacto de un valor: `[secret]` lo reemplaza en los resultados de herramienta posteriores del mismo chat. El agente aún puede leer el archivo con un comando de shell e imprimir el valor de otra forma (base64, una parte, con espacios), y esa forma llega al modelo. Las herramientas de archivos del propio agente (read, grep, write, edit) no pueden abrir la carpeta de secretos. Si el valor también es una palabra común, otros resultados de ese chat también muestran `[secret]`. El archivo se mantiene hasta que termina el turno; si dsh se cierra durante el turno, el siguiente inicio lo borra. Un chat puede tener una sola solicitud abierta a la vez. La herramienta añade unos 870 caracteres (unos 220 tokens, estimado) a cada solicitud al modelo: desactívala si no la usas.
|
|
241
242
|
- **Citar en la respuesta** cita el texto tal como lo muestra la página: un bloque de código, una tabla o una lista llegan como líneas simples, sin sus marcas de Markdown. Una selección que empieza en una respuesta y termina en otra, o que toca el razonamiento, una fila de herramienta o tu propio mensaje, no muestra el botón: selecciona dentro de una sola respuesta. El botón encuentra la respuesta por la estructura del chat de dsh, porque dsh no tiene un slot para la selección de texto; si una actualización de dsh cambia esa estructura, el botón no aparece. Cuando la cita queda al final del campo, se añade una línea vacía más para que la siguiente línea que escribas empiece debajo; dsh quita las líneas vacías del final al enviar.
|
|
@@ -423,7 +424,7 @@ SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-agentbox-ideas.mjs /path
|
|
|
423
424
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-t3code-ideas.mjs /path/to/dsh/lib/bin.js
|
|
424
425
|
# every Settings feature row shows a loading screenshot and a ? link to its README row
|
|
425
426
|
PLAYWRIGHT=/path/to/playwright node test/browser-settings-shots.mjs /path/to/dsh/lib/bin.js
|
|
426
|
-
# What's new after an update: the release notes show once, Esc and Close close them
|
|
427
|
+
# What's new after an update: the release notes show once (also after an install through another path), Esc and Close close them; Settings → What’s new in this version opens them again
|
|
427
428
|
PLAYWRIGHT=/path/to/playwright node test/browser-whats-new.mjs /path/to/dsh/lib/bin.js
|
|
428
429
|
# README feature anchors (the ? links) on github.com, headless: each #feature-… shows the start of its row
|
|
429
430
|
PLAYWRIGHT=/path/to/playwright node test/browser-readme-anchors.mjs
|
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.21.
|
|
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.21.1`.
|
|
33
33
|
|
|
34
34
|
## Fonctionnalités
|
|
35
35
|
|
|
@@ -100,7 +100,7 @@ Redémarrez ensuite dsh. (La CLI ne peut pas installer dans le profil de bureau
|
|
|
100
100
|
| **Langue de l’application** | <a id="feature-language"></a>Réglages → Composer Plus → **Langue de l’application** passe toute l’interface de dsh en Türkçe, Español, Português (Brasil), Français, Deutsch, Русский, 日本語, 한국어, Bahasa Indonesia, Tiếng Việt ou हिन्दी (voir ci-dessous). | <a href="assets/features/language.webp"><img src="assets/features/language.webp" width="160" alt="Capture d’écran : Langue de l’application"></a> |
|
|
101
101
|
| **Connexion mobile (iPhone)** | <a id="feature-mobileconnect"></a>Utilisez dsh depuis votre iPhone avec l’app [Tether](tether/), sur le même réseau Wi-Fi ou via [Tailscale](https://tailscale.com). Activez-la dans **Réglages → Composer Plus** (elle est désactivée par défaut, car elle ouvre un port réseau sur ce Mac). Cliquez ensuite sur **Connexion mobile** en bas à gauche de la barre latérale : scannez le code QR avec l’app Appareil photo de l’iPhone (touchez **Open in Tether**) ou avec **Scan code** dans Tether, touchez **Connect** et cliquez sur **Approve**. Installez d’abord Tether : sans elle, l’app Appareil photo ne peut pas ouvrir le code. Le téléphone affiche vos discussions, envoie des messages (avec des photos : le **+** de la zone de saisie → Camera, Photos ou Paste image), répond aux approbations et aux questions, et change de modèle et d’agent. Appairez autant de Mac que vous voulez : le nom du Mac, en haut à gauche de l’app, permet de passer de l’un à l’autre. Le panneau **Connexion mobile** liste les iPhone appairés avec leur dernière connexion : **Remove** en déconnecte un tout de suite. « Tailscale only » refuse le réseau local (pour un Wi-Fi partagé), et le journal d’accès montre qui a essayé de se connecter. Dans Tether, « Settings → Privacy » verrouille l’app avec Face ID. | <a href="assets/features/mobileConnect.webp"><img src="assets/features/mobileConnect.webp" width="160" alt="Capture d’écran : Connexion mobile (iPhone)"></a> |
|
|
102
102
|
| **Ordinateurs distants** | <a id="feature-remotecomputers"></a>Ouvrez le dsh de vos autres Mac via [Tailscale](https://tailscale.com) et poursuivez leurs discussions ici. Activez la fonction dans **Réglages → Composer Plus** sur chaque Mac (elle est désactivée par défaut, car elle ouvre des ports réseau). Sur le Mac que vous voulez ouvrir, activez **Autoriser d’autres ordinateurs à ouvrir ce Mac**, cliquez sur **Créer un lien d’appairage** et copiez le lien. Sur ce Mac, choisissez **Ajouter un ordinateur…** dans le sélecteur d’ordinateurs, à gauche du titre de la discussion, collez le lien et cliquez sur **Connecter**. Cliquez ensuite sur **Approuver** sur l’autre Mac. Le sélecteur liste alors **Ce Mac** et vos ordinateurs : choisissez-en un, et son dsh s’ouvre dans l’onglet Navigateur de la barre latérale droite (ou dans une fenêtre du navigateur), avec ses propres discussions, outils et fichiers. Le panneau des réglages renomme et supprime les ordinateurs, et liste les ordinateurs qui peuvent ouvrir ce Mac (**Supprimer** en déconnecte un tout de suite). | <a href="assets/features/remoteComputers.webp"><img src="assets/features/remoteComputers.webp" width="160" alt="Capture d’écran : Ordinateurs distants"></a> |
|
|
103
|
-
| **Mises à jour automatiques** | <a id="feature-autoupdate"></a>Au démarrage de dsh, le plugin vérifie la [dernière version sur GitHub](https://github.com/furkancak1r/dsh-composer-plus/releases/latest). Si elle est plus récente et déjà sur npm, il installe exactement cette version avec le gestionnaire de plugins de dsh (le même chemin que Réglages → Plugins) et vous avertit. Redémarrez dsh pour la charger. **Réglages → Composer Plus → Mises à jour de Composer Plus** affiche la version et propose **Rechercher des mises à jour** / **Mettre à jour**. Au premier démarrage de dsh avec la nouvelle version, une fenêtre **Nouveautés de Composer Plus N** affiche une fois les notes de cette version dans la langue de **Langue de l’application** (elles arrivent avec la nouvelle version, sans autre appel réseau ; une langue sans notes affiche les notes en anglais) ; **Fermer** ou `Esc` la ferme. | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="Capture d’écran : Mises à jour automatiques"></a> |
|
|
103
|
+
| **Mises à jour automatiques** | <a id="feature-autoupdate"></a>Au démarrage de dsh, le plugin vérifie la [dernière version sur GitHub](https://github.com/furkancak1r/dsh-composer-plus/releases/latest). Si elle est plus récente et déjà sur npm, il installe exactement cette version avec le gestionnaire de plugins de dsh (le même chemin que Réglages → Plugins) et vous avertit. Redémarrez dsh pour la charger. **Réglages → Composer Plus → Mises à jour de Composer Plus** affiche la version et propose **Rechercher des mises à jour** / **Mettre à jour**. Au premier démarrage de dsh avec la nouvelle version, une fenêtre **Nouveautés de Composer Plus N** affiche une fois les notes de cette version dans la langue de **Langue de l’application** (elles arrivent avec la nouvelle version, sans autre appel réseau ; une langue sans notes affiche les notes en anglais) ; **Fermer** ou `Esc` la ferme. La fenêtre s’affiche aussi après une mise à jour par Réglages → Plugins ou par un dossier copié, une fois par nouvelle version ; pas à la première installation. **Nouveautés de cette version** dans la ligne des mises à jour la rouvre. Si le disque contient une version plus récente que celle qui tourne, la ligne demande de redémarrer dsh. | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="Capture d’écran : Mises à jour automatiques"></a> |
|
|
104
104
|
| **Sauvegarde** | <a id="feature-backup"></a>Réglages → Composer Plus → **Sauvegarde** → **Sauvegarder maintenant** écrit tout votre dossier personnel de dsh (discussions, réglages, plugins, MCP, compétences) dans une seule archive dans `~/Desktop/dsh-backups`, avec une somme de contrôle. Les secrets sont masqués dans l’archive : les fichiers d’identifiants, les fichiers de clés (`.pem`, `.key`) et les valeurs token, secret et password des réglages yml restent uniquement sur cet ordinateur, dans le `vault` du dossier. `cache/`, `dsh-runtimes/` et `node_modules` ne vont pas dans l’archive (dsh les recrée). Chaque sauvegarde de la liste a **Vérifier** (la lit entièrement), **Pour un autre ordinateur** (un dossier à copier sur le nouvel ordinateur, avec la console de secours) et **Supprimer**. Les archives de dsh-backup dans le même dossier s’affichent et fonctionnent aussi. Pour restaurer, quittez dsh et utilisez la console de secours. | <a href="assets/features/backup.webp"><img src="assets/features/backup.webp" width="160" alt="Capture d’écran : Sauvegarde"></a> |
|
|
105
105
|
| **Sauvegarde automatique** | <a id="feature-autobackup"></a>Activez **Sauvegarde automatique** (désactivée par défaut : chaque copie est à peu près aussi grande que votre dossier personnel de dsh sans son cache). Choisissez la fréquence (**Toutes les** : de 6 heures à 7 jours, 24 heures par défaut) et le nombre de sauvegardes conservées (**Conserver** : de 3 à 14, 7 par défaut). L’heure de la prochaine sauvegarde s’affiche sous l’interrupteur ; une sauvegarde qui a échoué s’y affiche aussi et est relancée 30 minutes plus tard. Quand dsh ou Composer Plus démarre avec une nouvelle version, un instantané est pris peu après le démarrage, avant que la nouvelle version ait longtemps utilisé vos données (les deux plus récents restent, marqués **Avant une mise à niveau**). | <a href="assets/features/autoBackup.webp"><img src="assets/features/autoBackup.webp" width="160" alt="Capture d’écran : Sauvegarde automatique"></a> |
|
|
106
106
|
| **Vérification des journaux de session** | <a id="feature-sessiondoctor"></a>**Vérifier les journaux de session** lit le journal de chaque discussion et liste ceux que dsh ne peut pas ouvrir (une trame cassée, un enregistrement coupé, un mauvais numéro de séquence). Une fin incomplète n’est pas listée : dsh la répare lui-même. **Réparer depuis les sauvegardes** remet la copie de la sauvegarde la plus récente qui en contient une saine et garde le fichier endommagé à côté (`.corrupt-<heure>`). Les messages écrits après cette sauvegarde ne sont pas dans la copie. Une discussion ouverte dans ce dsh n’est pas réparée ici : quittez dsh et réparez-la dans la console de secours. | <a href="assets/features/sessionDoctor.webp"><img src="assets/features/sessionDoctor.webp" width="160" alt="Capture d’écran : Vérification des journaux de session"></a> |
|
|
@@ -215,7 +215,7 @@ Testé sur dsh `0.2.0-rc.2` (bureau et web) et `0.2.1-rc.2` (web). La CI exécut
|
|
|
215
215
|
- **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).
|
|
216
216
|
- **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.
|
|
217
217
|
- **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é).
|
|
218
|
-
- **L’installation échoue juste après une nouvelle version :** ajoutez la version (`dsh-composer-plus@1.21.
|
|
218
|
+
- **L’installation échoue juste après une nouvelle version :** ajoutez la version (`dsh-composer-plus@1.21.1`) ; voir la note d’installation plus haut.
|
|
219
219
|
- **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.
|
|
220
220
|
- **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.
|
|
221
221
|
- **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.
|
|
@@ -236,6 +236,7 @@ Testé sur dsh `0.2.0-rc.2` (bureau et web) et `0.2.1-rc.2` (web). La CI exécut
|
|
|
236
236
|
- La file d’attente de dsh n’a pas d’action `move` : la partie hôte du plugin déplace donc le message lui-même dans la file d’attente de dsh (une seule modification, le même message). Les messages avec des images ou des fichiers se déplacent aussi. Seuls vos propres messages se déplacent : une itération d’objectif ou une réponse à une question dans la file reste à sa place. Si l’envoi d’un message commence pendant que vous faites glisser, rien n’est déplacé et un avis le signale.
|
|
237
237
|
- dsh 0.2.1 charge une mise à jour immédiatement quand la nouvelle version ne modifie aucun réglage de dsh ; sinon, et sur dsh 0.2.0, redémarrez dsh pour la charger. Le plugin ne redémarre jamais dsh à votre place. Les profils web/CLI sans le gestionnaire de plugins de dsh signalent seulement qu’une nouvelle version existe.
|
|
238
238
|
- **Nouveautés de Composer Plus N** affiche les notes dans la langue de **Langue de l’application**. Une langue d’interface avec une autre région reçoit les notes de sa langue de base (`en-GB` reçoit les notes en anglais, `zh-TW` les notes en chinois de `zh`). Une langue sans notes (ajoutée par un autre pack de langue, ou `pt-PT`, qui n’est pas `pt-BR`) affiche les notes en anglais. Les notes arrivent avec la nouvelle version. Si la copie en cours n’a pas de fichier de notes lisible (`release-notes.json`), la fenêtre affiche les notes en anglais de GitHub.
|
|
239
|
+
- Une version installée pendant que dsh tourne (une mise à jour par Réglages → Plugins ou par un dossier copié) ne se charge qu’après un redémarrage de dsh : jusque-là, **Mises à jour de Composer Plus** affiche la version en cours et demande un redémarrage. Sa fenêtre **Nouveautés de Composer Plus N** s’affiche une fois au premier démarrage de cette version. Le premier démarrage après l’installation de ce plugin n’affiche aucune fenêtre ; **Nouveautés de cette version** ouvre les notes de la version en cours.
|
|
239
240
|
- **Refuser avec une note** envoie la note comme un message dans le tour en attente, puis refuse la demande ; dsh affiche la note dans la discussion comme votre message. Tant que le champ de la note est ouvert, la carte n’affiche que **Annuler** et **Refuser** : un clic ne peut donc pas autoriser la demande par erreur ; `Esc` ou **Annuler** fait revenir les boutons de dsh. Une note vide n’envoie rien (utilisez le propre bouton **Refuser** de dsh). Si le refus échoue après l’envoi de la note (par exemple, la demande a reçu une réponse ailleurs entre-temps), la note reste dans la discussion et le modèle la lit à sa prochaine étape. Le bouton va dans le balisage de la carte d’approbation de dsh (`data-approval-key`), car dsh n’a pas d’emplacement pour les actions de la carte ; si une mise à jour de dsh change ce balisage, le bouton ne s’affiche pas et le propre bouton **Refuser** de dsh fonctionne comme avant. Une note peut avoir au plus 4 000 caractères.
|
|
240
241
|
- **Saisie secrète** masque seulement le texte exact d’une valeur : `[secret]` la remplace dans les résultats d’outil suivants de la même discussion. L’agent peut quand même lire le fichier avec une commande shell et afficher la valeur sous une autre forme (base64, une partie, avec des espaces), et cette forme atteint le modèle. Les outils de fichiers de l’agent (read, grep, write, edit) ne peuvent pas ouvrir le dossier des secrets. Si la valeur est aussi un mot courant, d’autres résultats de cette discussion affichent aussi `[secret]`. Le fichier reste jusqu’à la fin du tour ; si dsh se ferme pendant le tour, le démarrage suivant le supprime. Une discussion peut avoir une seule demande ouverte à la fois. L’outil ajoute environ 870 caractères (environ 220 jetons, estimation) à chaque requête au modèle : désactivez-le quand vous ne l’utilisez pas.
|
|
241
242
|
- **Citer dans la réponse** cite le texte tel que la page l’affiche : un bloc de code, un tableau ou une liste arrivent en lignes simples, sans leurs marques Markdown. Une sélection qui commence dans une réponse et finit dans une autre, ou qui touche le raisonnement, une ligne d’outil ou votre propre message, n’affiche pas le bouton : sélectionnez dans une seule réponse. Le bouton trouve la réponse par la structure de discussion de dsh, car dsh n’a pas de slot pour une sélection de texte ; si une mise à jour de dsh change cette structure, le bouton ne s’affiche pas. Quand la citation termine le champ, une ligne vide de plus suit pour que la ligne suivante commence en dessous ; dsh retire les lignes vides de la fin à l’envoi.
|
|
@@ -423,7 +424,7 @@ SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-agentbox-ideas.mjs /path
|
|
|
423
424
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-t3code-ideas.mjs /path/to/dsh/lib/bin.js
|
|
424
425
|
# every Settings feature row shows a loading screenshot and a ? link to its README row
|
|
425
426
|
PLAYWRIGHT=/path/to/playwright node test/browser-settings-shots.mjs /path/to/dsh/lib/bin.js
|
|
426
|
-
# What's new after an update: the release notes show once, Esc and Close close them
|
|
427
|
+
# What's new after an update: the release notes show once (also after an install through another path), Esc and Close close them; Settings → What’s new in this version opens them again
|
|
427
428
|
PLAYWRIGHT=/path/to/playwright node test/browser-whats-new.mjs /path/to/dsh/lib/bin.js
|
|
428
429
|
# README feature anchors (the ? links) on github.com, headless: each #feature-… shows the start of its row
|
|
429
430
|
PLAYWRIGHT=/path/to/playwright node test/browser-readme-anchors.mjs
|
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.21.
|
|
32
|
+
> dsh का pnpm 24 घंटे से नए वर्शन छोड़ देता है। रिलीज़ के तुरंत बाद वर्शन भी लिखें: `dsh-composer-plus@1.21.1`।
|
|
33
33
|
|
|
34
34
|
## सुविधाएं
|
|
35
35
|
|
|
@@ -100,7 +100,7 @@ dsh plugin --profile web add dsh-composer-plus
|
|
|
100
100
|
| **ऐप्लिकेशन की भाषा** | <a id="feature-language"></a>सेटिंग → Composer Plus → **ऐप्लिकेशन की भाषा** पूरे dsh इंटरफ़ेस को Türkçe, Español, Português (Brasil), Français, Deutsch, Русский, 日本語, 한국어, Bahasa Indonesia, Tiếng Việt या हिन्दी में बदल देता है (नीचे देखें)। | <a href="assets/features/language.webp"><img src="assets/features/language.webp" width="160" alt="स्क्रीनशॉट: ऐप्लिकेशन की भाषा"></a> |
|
|
101
101
|
| **मोबाइल कनेक्ट (iPhone)** | <a id="feature-mobileconnect"></a>[Tether](tether/) ऐप से अपने iPhone पर dsh का उपयोग करें, उसी Wi-Fi पर या [Tailscale](https://tailscale.com) के ज़रिए। इसे **सेटिंग → Composer Plus** में चालू करें (यह डिफ़ॉल्ट रूप से बंद रहता है, क्योंकि यह इस Mac पर एक नेटवर्क पोर्ट खोलता है)। फिर साइडबार में नीचे बाईं ओर **मोबाइल कनेक्ट** पर क्लिक करें: iPhone के कैमरा से (**Open in Tether** पर टैप करें) या Tether में **Scan code** से QR कोड स्कैन करें, **Connect** पर टैप करें और **Approve** पर क्लिक करें। पहले Tether इंस्टॉल करें: इसके बिना कैमरा यह कोड नहीं खोल सकता। फ़ोन आपकी चैट दिखाता है, संदेश भेजता है (फ़ोटो के साथ भी: कंपोज़र का **+** → Camera, Photos या Paste image), मंज़ूरियों और सवालों के जवाब देता है, और मॉडल व एजेंट बदलता है। आप जितने चाहें उतने Mac पेयर कर सकते हैं: ऐप में ऊपर बाईं ओर Mac का नाम उनके बीच बदलता है। **मोबाइल कनेक्ट** पैनल पेयर किए गए iPhone उनके पिछले कनेक्शन के समय के साथ दिखाता है: **Remove** किसी एक को तुरंत हटा देता है। “Tailscale only” लोकल नेटवर्क से कनेक्शन मना कर देता है (साझा Wi-Fi के लिए), और एक्सेस लॉग दिखाता है कि किसने कनेक्ट करने की कोशिश की। Tether में “Settings → Privacy” ऐप को Face ID से लॉक करता है। | <a href="assets/features/mobileConnect.webp"><img src="assets/features/mobileConnect.webp" width="160" alt="स्क्रीनशॉट: मोबाइल कनेक्ट (iPhone)"></a> |
|
|
102
102
|
| **रिमोट कंप्यूटर** | <a id="feature-remotecomputers"></a>[Tailscale](https://tailscale.com) के ज़रिए अपने दूसरे Mac का dsh खोलें और उनकी चैट यहीं जारी रखें। इसे हर Mac पर **सेटिंग → Composer Plus** में चालू करें (यह डिफ़ॉल्ट रूप से बंद रहता है, क्योंकि यह नेटवर्क पोर्ट खोलता है)। जिस Mac को आप खोलना चाहते हैं, उस पर **दूसरे कंप्यूटर को यह Mac खोलने दें** चालू करें, **पेयरिंग लिंक बनाएं** पर क्लिक करें और लिंक कॉपी करें। इस Mac पर चैट के शीर्षक के बाईं ओर कंप्यूटर पिकर में **कंप्यूटर जोड़ें…** चुनें, लिंक पेस्ट करें और **कनेक्ट करें** पर क्लिक करें। फिर दूसरे Mac पर **मंज़ूर करें** पर क्लिक करें। इसके बाद पिकर में **यह Mac** और आपके कंप्यूटर दिखते हैं: किसी एक को चुनें, तो उसका dsh दाएं साइडबार के ब्राउज़र टैब में (या ब्राउज़र विंडो में) खुलता है, उसकी अपनी चैट, टूल और फ़ाइलों के साथ। सेटिंग पैनल में आप कंप्यूटर का नाम बदल सकते हैं और उन्हें हटा सकते हैं। यह पैनल उन कंप्यूटर की सूची भी दिखाता है जो यह Mac खोल सकते हैं (**हटाएं** किसी एक को तुरंत डिस्कनेक्ट कर देता है)। | <a href="assets/features/remoteComputers.webp"><img src="assets/features/remoteComputers.webp" width="160" alt="स्क्रीनशॉट: रिमोट कंप्यूटर"></a> |
|
|
103
|
-
| **अपने-आप अपडेट** | <a id="feature-autoupdate"></a>dsh शुरू होने पर प्लगइन [GitHub की नवीनतम रिलीज़](https://github.com/furkancak1r/dsh-composer-plus/releases/latest) जांचता है। अगर वह नई है और npm पर पहले से है, तो प्लगइन वही वर्शन dsh के अपने प्लगइन मैनेजर से इंस्टॉल करता है (सेटिंग → प्लगइन वाला ही रास्ता) और आपको सूचित करता है। इसे लोड करने के लिए dsh रीस्टार्ट करें। **सेटिंग → Composer Plus → Composer Plus अपडेट** वर्शन दिखाता है और उसमें **अपडेट जांचें** / **अभी अपडेट करें** बटन हैं। नए वर्शन के साथ dsh पहली बार शुरू होने पर **Composer Plus N में नया क्या है** विंडो उस वर्शन के रिलीज़ नोट्स **ऐप्लिकेशन की भाषा** में चुनी गई भाषा में एक बार दिखाती है (नोट्स नए वर्शन के साथ आते हैं, कोई अतिरिक्त नेटवर्क कॉल नहीं; जिस भाषा के नोट्स नहीं हैं, उसमें अंग्रेज़ी नोट्स दिखते हैं); **बंद करें** या `Esc` से यह बंद होती है। | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="स्क्रीनशॉट: अपने-आप अपडेट"></a> |
|
|
103
|
+
| **अपने-आप अपडेट** | <a id="feature-autoupdate"></a>dsh शुरू होने पर प्लगइन [GitHub की नवीनतम रिलीज़](https://github.com/furkancak1r/dsh-composer-plus/releases/latest) जांचता है। अगर वह नई है और npm पर पहले से है, तो प्लगइन वही वर्शन dsh के अपने प्लगइन मैनेजर से इंस्टॉल करता है (सेटिंग → प्लगइन वाला ही रास्ता) और आपको सूचित करता है। इसे लोड करने के लिए dsh रीस्टार्ट करें। **सेटिंग → Composer Plus → Composer Plus अपडेट** वर्शन दिखाता है और उसमें **अपडेट जांचें** / **अभी अपडेट करें** बटन हैं। नए वर्शन के साथ dsh पहली बार शुरू होने पर **Composer Plus N में नया क्या है** विंडो उस वर्शन के रिलीज़ नोट्स **ऐप्लिकेशन की भाषा** में चुनी गई भाषा में एक बार दिखाती है (नोट्स नए वर्शन के साथ आते हैं, कोई अतिरिक्त नेटवर्क कॉल नहीं; जिस भाषा के नोट्स नहीं हैं, उसमें अंग्रेज़ी नोट्स दिखते हैं); **बंद करें** या `Esc` से यह बंद होती है। सेटिंग → प्लगइन या कॉपी किए गए फ़ोल्डर से अपडेट करने के बाद भी यह विंडो हर नए वर्शन पर एक बार दिखती है; पहली बार इंस्टॉल करने पर नहीं। अपडेट वाली पंक्ति में **इस वर्शन में नया क्या है** इसे फिर से खोलता है। जब डिस्क पर चल रहे वर्शन से नया वर्शन हो, तो पंक्ति dsh को रीस्टार्ट करने को कहती है। | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="स्क्रीनशॉट: अपने-आप अपडेट"></a> |
|
|
104
104
|
| **बैकअप** | <a id="feature-backup"></a>सेटिंग → Composer Plus → **बैकअप** → **अभी बैकअप लें** आपके पूरे dsh होम (चैट, सेटिंग, प्लगइन, MCP, Skills) को चेकसम के साथ `~/Desktop/dsh-backups` में एक आर्काइव में लिखता है। आर्काइव में सीक्रेट मास्क किए जाते हैं: क्रेडेंशियल फ़ाइलें, की फ़ाइलें (`.pem`, `.key`) और yml सेटिंग के token, secret और password मान सिर्फ़ इसी कंप्यूटर पर, फ़ोल्डर के `vault` में रहते हैं। `cache/`, `dsh-runtimes/` और `node_modules` आर्काइव में नहीं जाते (dsh उन्हें फिर से बनाता है)। सूची के हर बैकअप में **जांचें** (उसे पूरा पढ़ता है), **दूसरे कंप्यूटर के लिए** (नए कंप्यूटर पर कॉपी करने के लिए एक फ़ोल्डर, रेस्क्यू कंसोल के साथ) और **हटाएं** हैं। उसी फ़ोल्डर में dsh-backup के आर्काइव भी दिखते हैं और काम करते हैं। बहाल करने के लिए dsh बंद करें और रेस्क्यू कंसोल का उपयोग करें। | <a href="assets/features/backup.webp"><img src="assets/features/backup.webp" width="160" alt="स्क्रीनशॉट: बैकअप"></a> |
|
|
105
105
|
| **अपने-आप बैकअप** | <a id="feature-autobackup"></a>**अपने-आप बैकअप** चालू करें (डिफ़ॉल्ट रूप से बंद: हर कॉपी लगभग उतनी बड़ी होती है जितना कैश के बिना आपका dsh होम)। चुनें कि बैकअप कितनी बार हो (**हर**: 6 घंटे से 7 दिन, डिफ़ॉल्ट 24 घंटे) और कितने बैकअप रखे जाएं (**रखें**: 3 से 14, डिफ़ॉल्ट 7)। अगला समय स्विच के नीचे दिखता है; विफल बैकअप भी वहीं दिखता है और 30 मिनट बाद फिर से आज़माया जाता है। जब dsh या Composer Plus नए वर्शन के साथ शुरू होता है, तो शुरू होने के कुछ ही देर बाद, नए वर्शन के आपके डेटा का लंबे समय तक उपयोग करने से पहले, एक स्नैपशॉट लिया जाता है (सबसे नए दो रखे जाते हैं, **अपग्रेड से पहले** के निशान के साथ)। | <a href="assets/features/autoBackup.webp"><img src="assets/features/autoBackup.webp" width="160" alt="स्क्रीनशॉट: अपने-आप बैकअप"></a> |
|
|
106
106
|
| **सेशन लॉग जांच** | <a id="feature-sessiondoctor"></a>**सेशन लॉग जांचें** हर चैट का लॉग पढ़ता है और उन लॉग की सूची दिखाता है जिन्हें dsh नहीं खोल सकता (टूटा फ़्रेम, कटा हुआ रिकॉर्ड, गलत क्रम संख्या)। अधूरा आखिरी हिस्सा सूची में नहीं आता: dsh उसे खुद ठीक करता है। **बैकअप से ठीक करें** उस सबसे नए बैकअप से कॉपी वापस रखता है जिसमें सही कॉपी है, और खराब फ़ाइल को उसके बगल में रखता है (`.corrupt-<समय>`)। उस बैकअप के बाद लिखे गए संदेश कॉपी में नहीं होते। इस dsh में खुली चैट यहां ठीक नहीं की जाती: dsh बंद करें और उसे रेस्क्यू कंसोल में ठीक करें। | <a href="assets/features/sessionDoctor.webp"><img src="assets/features/sessionDoctor.webp" width="160" alt="स्क्रीनशॉट: सेशन लॉग जांच"></a> |
|
|
@@ -215,7 +215,7 @@ dsh `0.2.0-rc.2` (डेस्कटॉप और वेब) और `0.2.1-rc.2`
|
|
|
215
215
|
- **चैट पंक्ति पर ब्रांच लेबल नहीं है:** साइडबार “एक ही सूची में” व्यू में नहीं है (“वर्कस्पेस” और “वर्कस्पेस ट्री” में किसी भी चैट पंक्ति पर लेबल नहीं दिखता), यह वर्शन इंस्टॉल करने के बाद से उस चैट में कोई टर्न नहीं हुआ, उसका फ़ोल्डर git रिपॉज़िटरी नहीं है, या **चैट पंक्तियों पर Git ब्रांच** बंद है। अपडेट के बाद dsh रीस्टार्ट करें (ब्रांच Host वाला हिस्सा दर्ज करता है)।
|
|
216
216
|
- **लक्ष्य जांच बताती है कि टेस्ट कोड 127 या "not found" के साथ बंद हुआ:** Finder या Dock से शुरू किए गए dsh का PATH आपके टर्मिनल से छोटा हो सकता है, इसलिए उसे `npm`, `pnpm` या `cargo` नहीं मिलता। dsh को टर्मिनल से शुरू करें, या **लक्ष्य जांच** → **संपादित करें** में पूरे पाथ के साथ अपनी टेस्ट कमांड सेट करें। **अभी चलाएं** नतीजा तुरंत दिखाता है।
|
|
217
217
|
- **लक्ष्य बंद नहीं होता और एजेंट काम करता रहता है:** **लक्ष्य जांच** को कोई विफल टेस्ट या अधूरा काम मिला; लक्ष्य के नीचे की पंक्ति वजह दिखाती है (ब्योरा देखने के लिए नतीजे पर पॉइंटर ले जाएं)। वजह या टेस्ट कमांड ठीक करें, या `/goal` या लक्ष्य बार से लक्ष्य खुद पूरा करें (उसकी जांच नहीं होती)।
|
|
218
|
-
- **रिलीज़ के तुरंत बाद इंस्टॉल विफल होता है:** वर्शन जोड़ें (`dsh-composer-plus@1.21.
|
|
218
|
+
- **रिलीज़ के तुरंत बाद इंस्टॉल विफल होता है:** वर्शन जोड़ें (`dsh-composer-plus@1.21.1`), ऊपर इंस्टॉल वाला नोट देखें।
|
|
219
219
|
- **अभी बैकअप लें कहता है "बैकअप की दूसरी कार्रवाई चल रही है":** किसी दूसरी dsh विंडो में या रेस्क्यू कंसोल में कोई कार्रवाई चल रही है (दोनों बैकअप फ़ोल्डर में एक लॉक फ़ाइल, `.composer-plus.lock`, साझा करते हैं)। उसके पूरा होने का इंतज़ार करें। अगर कोई कार्रवाई नहीं चल रही, तो अगली क्लिक पर बंद हो चुकी प्रोसेस का लॉक ले लिया जाता है।
|
|
220
220
|
- **रेस्क्यू कंसोल कहता है "dsh is running":** पहले dsh बंद करें। अगर dsh सच में बंद है, तो संदेश में बताई गई फ़ाइल किसी क्रैश के बाद बची रह गई है: उसे हटाएं और फिर से कोशिश करें।
|
|
221
221
|
- **बहाली के बाद dsh शुरू नहीं होता या कोई प्लगइन नहीं है:** किसी प्रोफ़ाइल के प्लगइन पैकेज फिर से इंस्टॉल करने होंगे। बहाली के बाद रेस्क्यू कंसोल यह करने का विकल्प देता है; या `$DSH_HOME/profiles/` के नीचे के हर उस फ़ोल्डर में `pnpm install` चलाएं, जिसकी सूची वह दिखाता है। जो सीक्रेट vault में नहीं थे (दूसरा कंप्यूटर), उन्हें फिर से डालना होगा: कंसोल उनकी सूची दिखाता है।
|
|
@@ -236,6 +236,7 @@ dsh `0.2.0-rc.2` (डेस्कटॉप और वेब) और `0.2.1-rc.2`
|
|
|
236
236
|
- dsh की कतार में `move` कार्रवाई नहीं है, इसलिए प्लगइन का Host वाला हिस्सा कतार वाले संदेश को ही dsh की कतार में खिसकाता है (एक बदलाव, वही संदेश)। इमेज या फ़ाइलों वाले संदेश भी खिसकते हैं। सिर्फ़ आपके अपने संदेश खिसकते हैं: कतार में कोई लक्ष्य राउंड या किसी सवाल का जवाब अपनी जगह पर रहता है। अगर आपके खींचते समय कोई संदेश भेजा जाना शुरू हो जाता है, तो कुछ नहीं खिसकता और एक सूचना यह बताती है।
|
|
237
237
|
- अगर नया वर्शन dsh की कोई सेटिंग नहीं बदलता, तो dsh 0.2.1 अपडेट तुरंत लोड करता है; बाकी मामलों में, और dsh 0.2.0 पर, इसे लोड करने के लिए dsh रीस्टार्ट करें। प्लगइन आपके लिए dsh कभी रीस्टार्ट नहीं करता। जिन वेब/CLI प्रोफ़ाइल में dsh का प्लगइन मैनेजर नहीं है, वे सिर्फ़ नए वर्शन की जानकारी देती हैं।
|
|
238
238
|
- **Composer Plus N में नया क्या है** नोट्स को **ऐप्लिकेशन की भाषा** की भाषा में दिखाता है। किसी दूसरे क्षेत्र वाली UI भाषा को उसकी मूल भाषा के नोट्स मिलते हैं (`en-GB` को अंग्रेज़ी नोट्स, `zh-TW` को `zh` के चीनी नोट्स)। जिस भाषा के नोट्स नहीं हैं (जिसे कोई दूसरा भाषा पैक जोड़ता है, या `pt-PT`, जो `pt-BR` नहीं है), उसमें अंग्रेज़ी नोट्स दिखते हैं। नोट्स नए वर्शन के साथ आते हैं। अगर चल रही कॉपी में पढ़ने लायक नोट्स फ़ाइल (`release-notes.json`) नहीं है, तो विंडो GitHub के अंग्रेज़ी नोट्स दिखाती है।
|
|
239
|
+
- dsh चलते समय इंस्टॉल हुआ वर्शन (सेटिंग → प्लगइन या कॉपी किए गए फ़ोल्डर से अपडेट) dsh को रीस्टार्ट करने के बाद ही लोड होता है: तब तक **Composer Plus अपडेट** चल रहा वर्शन दिखाता है और रीस्टार्ट करने को कहता है। उस वर्शन की **Composer Plus N में नया क्या है** विंडो उस वर्शन की पहली शुरुआत पर एक बार दिखती है। इस प्लगइन को पहली बार इंस्टॉल करने के बाद की पहली शुरुआत पर विंडो नहीं दिखती; **इस वर्शन में नया क्या है** चल रहे वर्शन के नोट्स खोलता है।
|
|
239
240
|
- **नोट के साथ अस्वीकार करें** नोट को इंतज़ार कर रहे टर्न में एक संदेश के रूप में भेजता है, फिर अनुरोध अस्वीकार करता है; dsh नोट को चैट में आपके संदेश के रूप में दिखाता है। जब नोट फ़ील्ड खुली रहती है, तब कार्ड पर सिर्फ़ **रद्द करें** और **अस्वीकार करें** दिखते हैं, इसलिए कोई क्लिक गलती से अनुरोध को अनुमति नहीं दे सकता; `Esc` या **रद्द करें** से dsh के बटन वापस आ जाते हैं। खाली नोट कुछ नहीं भेजता (dsh का अपना **अस्वीकार करें** इस्तेमाल करें)। अगर नोट जाने के बाद अस्वीकार करना विफल होता है (उदाहरण के लिए, इस बीच अनुरोध का जवाब कहीं और दे दिया गया), तो नोट चैट में रहता है और मॉडल उसे अपने अगले कदम पर पढ़ता है। बटन dsh के मंज़ूरी कार्ड के मार्कअप (`data-approval-key`) में जाता है, क्योंकि dsh में कार्ड की कार्रवाइयों के लिए कोई जगह (slot) नहीं है; अगर dsh का कोई अपडेट वह मार्कअप बदलता है, तो बटन नहीं दिखता और dsh का अपना **अस्वीकार करें** पहले की तरह काम करता है। एक नोट में ज़्यादा से ज़्यादा 4,000 अक्षर हो सकते हैं।
|
|
240
241
|
- **सीक्रेट इनपुट** मान के केवल सटीक टेक्स्ट को छिपाता है: उसी चैट के बाद के टूल परिणामों में उसकी जगह `[secret]` आता है। फिर भी एजेंट शेल कमांड से फ़ाइल पढ़कर मान को किसी दूसरे रूप में (base64, उसका एक हिस्सा, बीच में स्पेस के साथ) प्रिंट कर सकता है, और वह रूप मॉडल तक पहुँचता है। एजेंट के अपने फ़ाइल टूल (read, grep, write, edit) सीक्रेट फ़ोल्डर नहीं खोल सकते। अगर मान कोई आम शब्द भी है, तो उस चैट के दूसरे परिणामों में भी `[secret]` दिखता है। फ़ाइल टर्न खत्म होने तक रहती है; अगर टर्न के बीच dsh बंद हो जाए, तो अगली शुरुआत उसे हटा देती है। एक चैट में एक समय में केवल एक खुला अनुरोध हो सकता है। यह टूल हर मॉडल अनुरोध में लगभग 870 अक्षर (अनुमानित लगभग 220 टोकन) जोड़ता है: उपयोग न करें तो इसे बंद करें।
|
|
241
242
|
- **जवाब में उद्धरण** टेक्स्ट को वैसे ही उद्धृत करता है जैसा पेज दिखाता है: कोड ब्लॉक, तालिका या सूची बिना Markdown चिह्नों के सादी पंक्तियों के रूप में आती है। अगर चुनाव एक जवाब में शुरू होकर दूसरे में खत्म होता है, या सोच, किसी टूल पंक्ति या आपके अपने संदेश को छूता है, तो बटन नहीं दिखता: एक ही जवाब के अंदर चुनें। dsh में टेक्स्ट चुनाव के लिए कोई स्लॉट नहीं है, इसलिए बटन dsh की चैट संरचना से जवाब ढूंढता है; अगर dsh अपडेट यह संरचना बदल दे, तो बटन नहीं दिखेगा। जब उद्धरण फ़ील्ड के अंत में आता है, तो उसके बाद एक और खाली पंक्ति जुड़ती है, ताकि आपकी अगली पंक्ति उसके नीचे शुरू हो; भेजते समय dsh अंत की खाली पंक्तियां हटा देता है।
|
|
@@ -423,7 +424,7 @@ SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-agentbox-ideas.mjs /path
|
|
|
423
424
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-t3code-ideas.mjs /path/to/dsh/lib/bin.js
|
|
424
425
|
# every Settings feature row shows a loading screenshot and a ? link to its README row
|
|
425
426
|
PLAYWRIGHT=/path/to/playwright node test/browser-settings-shots.mjs /path/to/dsh/lib/bin.js
|
|
426
|
-
# What's new after an update: the release notes show once, Esc and Close close them
|
|
427
|
+
# What's new after an update: the release notes show once (also after an install through another path), Esc and Close close them; Settings → What’s new in this version opens them again
|
|
427
428
|
PLAYWRIGHT=/path/to/playwright node test/browser-whats-new.mjs /path/to/dsh/lib/bin.js
|
|
428
429
|
# README feature anchors (the ? links) on github.com, headless: each #feature-… shows the start of its row
|
|
429
430
|
PLAYWRIGHT=/path/to/playwright node test/browser-readme-anchors.mjs
|
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.21.
|
|
32
|
+
> pnpm milik dsh melewati versi yang berumur kurang dari 24 jam. Tepat setelah rilis, tambahkan versinya: `dsh-composer-plus@1.21.1`.
|
|
33
33
|
|
|
34
34
|
## Fitur
|
|
35
35
|
|
|
@@ -100,7 +100,7 @@ Lalu mulai ulang dsh. (CLI tidak dapat memasang plugin ke profil desktop; profil
|
|
|
100
100
|
| **Bahasa aplikasi** | <a id="feature-language"></a>Pengaturan → Composer Plus → **Bahasa aplikasi** mengganti seluruh antarmuka dsh ke Türkçe, Español, Português (Brasil), Français, Deutsch, Русский, 日本語, 한국어, Bahasa Indonesia, Tiếng Việt, atau हिन्दी (lihat di bawah). | <a href="assets/features/language.webp"><img src="assets/features/language.webp" width="160" alt="Tangkapan layar: Bahasa aplikasi"></a> |
|
|
101
101
|
| **Koneksi seluler (iPhone)** | <a id="feature-mobileconnect"></a>Gunakan dsh dari iPhone Anda dengan aplikasi [Tether](tether/), di Wi-Fi yang sama atau melalui [Tailscale](https://tailscale.com). Aktifkan di **Pengaturan → Composer Plus** (nonaktif secara default karena membuka port jaringan di Mac ini). Lalu klik **Koneksi seluler** di kiri bawah bilah samping: pindai kode QR dengan Kamera iPhone (ketuk **Open in Tether**) atau dengan **Scan code** di Tether, ketuk **Connect**, lalu klik **Approve**. Instal Tether terlebih dahulu: tanpa aplikasi itu, Kamera tidak dapat membuka kode tersebut. Ponsel menampilkan obrolan Anda, mengirim pesan (dengan foto: **+** di kotak pesan → Camera, Photos, atau Paste image), menjawab persetujuan dan pertanyaan, serta mengganti model dan agen. Pasangkan Mac sebanyak yang Anda mau: nama Mac di kiri atas aplikasi berpindah di antara Mac tersebut. Panel **Koneksi seluler** menampilkan iPhone yang dipasangkan beserta koneksi terakhirnya: **Remove** langsung memutus salah satunya. “Tailscale only” menolak jaringan lokal (untuk Wi-Fi bersama), dan log akses menampilkan siapa yang mencoba terhubung. Di Tether, “Settings → Privacy” mengunci aplikasi dengan Face ID. | <a href="assets/features/mobileConnect.webp"><img src="assets/features/mobileConnect.webp" width="160" alt="Tangkapan layar: Koneksi seluler (iPhone)"></a> |
|
|
102
102
|
| **Komputer jarak jauh** | <a id="feature-remotecomputers"></a>Buka dsh di Mac Anda yang lain melalui [Tailscale](https://tailscale.com) dan lanjutkan obrolannya di sini. Aktifkan di **Pengaturan → Composer Plus** pada setiap Mac (nonaktif secara default karena membuka port jaringan). Di Mac yang ingin Anda buka, aktifkan **Izinkan komputer lain membuka Mac ini**, klik **Buat tautan pemasangan**, lalu salin tautannya. Di Mac ini, pilih **Tambahkan komputer…** di pemilih komputer di sebelah kiri judul obrolan, tempel tautannya, lalu klik **Hubungkan**. Setelah itu, klik **Setujui** di Mac yang lain. Pemilih lalu menampilkan **Mac ini** dan komputer Anda: pilih salah satu, dan dsh-nya terbuka di tab Browser pada bilah samping kanan (atau di jendela browser), dengan obrolan, alat, dan file miliknya sendiri. Panel Pengaturan dapat mengganti nama dan menghapus komputer, serta menampilkan komputer yang dapat membuka Mac ini (**Hapus** langsung memutus salah satunya). | <a href="assets/features/remoteComputers.webp"><img src="assets/features/remoteComputers.webp" width="160" alt="Tangkapan layar: Komputer jarak jauh"></a> |
|
|
103
|
-
| **Pembaruan otomatis** | <a id="feature-autoupdate"></a>Saat dsh dimulai, plugin memeriksa [rilis GitHub terbaru](https://github.com/furkancak1r/dsh-composer-plus/releases/latest). Jika rilis itu lebih baru dan sudah ada di npm, plugin memasang versi persis itu melalui pengelola plugin bawaan dsh (jalur yang sama dengan Pengaturan → Plugin) dan memberi tahu Anda. Mulai ulang dsh untuk memuatnya. **Pengaturan → Composer Plus → Pembaruan Composer Plus** menampilkan versi dan memiliki **Periksa pembaruan** / **Perbarui sekarang**. Saat dsh pertama kali dimulai dengan versi baru, jendela **Yang baru di Composer Plus N** menampilkan catatan rilis versi itu satu kali dalam bahasa **Bahasa aplikasi** (catatan ikut bersama versi baru, tanpa panggilan jaringan lain; bahasa tanpa catatan menampilkan catatan berbahasa Inggris); **Tutup** atau `Esc` menutupnya. | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="Tangkapan layar: Pembaruan otomatis"></a> |
|
|
103
|
+
| **Pembaruan otomatis** | <a id="feature-autoupdate"></a>Saat dsh dimulai, plugin memeriksa [rilis GitHub terbaru](https://github.com/furkancak1r/dsh-composer-plus/releases/latest). Jika rilis itu lebih baru dan sudah ada di npm, plugin memasang versi persis itu melalui pengelola plugin bawaan dsh (jalur yang sama dengan Pengaturan → Plugin) dan memberi tahu Anda. Mulai ulang dsh untuk memuatnya. **Pengaturan → Composer Plus → Pembaruan Composer Plus** menampilkan versi dan memiliki **Periksa pembaruan** / **Perbarui sekarang**. Saat dsh pertama kali dimulai dengan versi baru, jendela **Yang baru di Composer Plus N** menampilkan catatan rilis versi itu satu kali dalam bahasa **Bahasa aplikasi** (catatan ikut bersama versi baru, tanpa panggilan jaringan lain; bahasa tanpa catatan menampilkan catatan berbahasa Inggris); **Tutup** atau `Esc` menutupnya. Jendela ini juga muncul setelah pembaruan lewat Pengaturan → Plugin atau folder yang disalin, sekali untuk setiap versi baru; tidak pada pemasangan pertama. **Yang baru di versi ini** di baris pembaruan membukanya lagi. Jika di disk ada versi yang lebih baru daripada yang berjalan, baris itu meminta Anda memulai ulang dsh. | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="Tangkapan layar: Pembaruan otomatis"></a> |
|
|
104
104
|
| **Pencadangan** | <a id="feature-backup"></a>Pengaturan → Composer Plus → **Pencadangan** → **Cadangkan sekarang** menulis seluruh dsh home Anda (obrolan, pengaturan, plugin, MCP, skill) ke dalam satu arsip di `~/Desktop/dsh-backups`, beserta checksum. Rahasia disamarkan di dalam arsip: file kredensial, file kunci (`.pem`, `.key`), serta nilai token, secret, dan password di pengaturan yml hanya tetap ada di komputer ini, di `vault` folder tersebut. `cache/`, `dsh-runtimes/`, dan `node_modules` tidak masuk ke arsip (dsh membuatnya lagi). Setiap cadangan dalam daftar memiliki **Periksa** (membacanya sampai habis), **Untuk komputer lain** (folder untuk disalin ke komputer baru, beserta konsol penyelamat), dan **Hapus**. Arsip dsh-backup di folder yang sama juga tampil dan dapat dipakai. Untuk memulihkan, keluar dari dsh dan gunakan konsol penyelamat. | <a href="assets/features/backup.webp"><img src="assets/features/backup.webp" width="160" alt="Tangkapan layar: Pencadangan"></a> |
|
|
105
105
|
| **Pencadangan otomatis** | <a id="feature-autobackup"></a>Aktifkan **Pencadangan otomatis** (nonaktif secara default: setiap salinan kira-kira sebesar dsh home Anda tanpa cache-nya). Pilih seberapa sering (**Setiap**: 6 jam sampai 7 hari, default 24 jam) dan berapa banyak cadangan yang disimpan (**Simpan**: 3 sampai 14, default 7). Waktu berikutnya tampil di bawah sakelar; pencadangan yang gagal juga tampil di sana dan dicoba lagi 30 menit kemudian. Saat dsh atau Composer Plus dimulai dengan versi baru, snapshot dibuat segera setelah dimulai, sebelum versi baru lama memakai data Anda (dua yang terbaru disimpan, ditandai **Sebelum peningkatan**). | <a href="assets/features/autoBackup.webp"><img src="assets/features/autoBackup.webp" width="160" alt="Tangkapan layar: Pencadangan otomatis"></a> |
|
|
106
106
|
| **Pemeriksaan log sesi** | <a id="feature-sessiondoctor"></a>**Periksa log sesi** membaca log setiap obrolan dan menampilkan log yang tidak dapat dibuka dsh (frame rusak, catatan terpotong, nomor urut salah). Bagian akhir yang tidak lengkap tidak ditampilkan: dsh memperbaikinya sendiri. **Perbaiki dari cadangan** mengembalikan salinan dari cadangan terbaru yang memiliki salinan sehat, dan menyimpan file yang rusak di sebelahnya (`.corrupt-<waktu>`). Pesan yang ditulis setelah cadangan itu tidak ada di salinan. Obrolan yang terbuka di dsh ini tidak diperbaiki di sini: keluar dari dsh dan perbaiki obrolan itu di konsol penyelamat. | <a href="assets/features/sessionDoctor.webp"><img src="assets/features/sessionDoctor.webp" width="160" alt="Tangkapan layar: Pemeriksaan log sesi"></a> |
|
|
@@ -215,7 +215,7 @@ Diuji pada dsh `0.2.0-rc.2` (desktop dan web) dan `0.2.1-rc.2` (web). CI menjala
|
|
|
215
215
|
- **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).
|
|
216
216
|
- **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.
|
|
217
217
|
- **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).
|
|
218
|
-
- **Pemasangan gagal tepat setelah rilis:** tambahkan versinya (`dsh-composer-plus@1.21.
|
|
218
|
+
- **Pemasangan gagal tepat setelah rilis:** tambahkan versinya (`dsh-composer-plus@1.21.1`), lihat catatan pemasangan di atas.
|
|
219
219
|
- **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.
|
|
220
220
|
- **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.
|
|
221
221
|
- **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.
|
|
@@ -236,6 +236,7 @@ Diuji pada dsh `0.2.0-rc.2` (desktop dan web) dan `0.2.1-rc.2` (web). CI menjala
|
|
|
236
236
|
- Antrean dsh tidak memiliki tindakan `move`, jadi bagian Host plugin memindahkan pesan antrean itu sendiri di dalam antrean dsh (satu perubahan, pesan yang sama). Pesan dengan gambar atau file juga dapat dipindahkan. Hanya pesan Anda sendiri yang dapat dipindahkan: putaran tujuan atau balasan pertanyaan di antrean tetap di tempatnya. Jika sebuah pesan mulai dikirim saat Anda menyeret, tidak ada yang dipindahkan dan muncul pemberitahuan tentang hal itu.
|
|
237
237
|
- dsh 0.2.1 langsung memuat pembaruan jika versi baru tidak mengubah pengaturan dsh apa pun; dalam kasus lain, dan pada dsh 0.2.0, mulai ulang dsh untuk memuatnya. Plugin tidak pernah memulai ulang dsh untuk Anda. Profil web/CLI tanpa pengelola plugin dsh hanya melaporkan adanya versi baru.
|
|
238
238
|
- **Yang baru di Composer Plus N** menampilkan catatan dalam bahasa **Bahasa aplikasi**. Bahasa antarmuka dengan wilayah lain mendapat catatan bahasa dasarnya (`en-GB` mendapat catatan bahasa Inggris, `zh-TW` catatan bahasa Tionghoa dari `zh`). Bahasa tanpa catatan (bahasa yang ditambahkan paket bahasa lain, atau `pt-PT`, yang bukan `pt-BR`) menampilkan catatan bahasa Inggris. Catatan ikut bersama versi baru. Jika salinan yang berjalan tidak memiliki berkas catatan yang dapat dibaca (`release-notes.json`), jendela menampilkan catatan bahasa Inggris dari GitHub.
|
|
239
|
+
- Versi yang terpasang saat dsh berjalan (pembaruan lewat Pengaturan → Plugin atau folder yang disalin) baru dimuat setelah dsh dimulai ulang: sampai saat itu, **Pembaruan Composer Plus** menampilkan versi yang berjalan dan meminta mulai ulang. Jendela **Yang baru di Composer Plus N** versi itu muncul sekali pada awal pertama versi tersebut. Awal pertama setelah plugin ini dipasang tidak menampilkan jendela; **Yang baru di versi ini** membuka catatan versi yang berjalan.
|
|
239
240
|
- **Tolak dengan catatan** mengirim catatan sebagai pesan ke giliran yang menunggu, lalu menolak permintaan; dsh menampilkan catatan itu di obrolan sebagai pesan Anda. Selama kolom catatan terbuka, kartu hanya menampilkan **Batal** dan **Tolak**, jadi satu klik tidak dapat mengizinkan permintaan secara tidak sengaja; `Esc` atau **Batal** mengembalikan tombol-tombol dsh. Catatan kosong tidak mengirim apa pun (gunakan **Tolak** milik dsh sendiri). Jika penolakan gagal setelah catatan terkirim (misalnya, permintaan itu sementara itu sudah dijawab di tempat lain), catatan tetap ada di obrolan dan model membacanya di langkah berikutnya. Tombol ini masuk ke markup kartu persetujuan dsh (`data-approval-key`), karena dsh tidak punya slot untuk tindakan kartu; jika pembaruan dsh mengubah markup itu, tombol tidak tampil dan **Tolak** milik dsh sendiri tetap berfungsi seperti sebelumnya. Satu catatan paling banyak berisi 4.000 karakter.
|
|
240
241
|
- **Input rahasia** hanya menyembunyikan teks persis dari sebuah nilai: `[secret]` menggantikannya di hasil alat berikutnya dalam obrolan yang sama. Agen tetap dapat membaca file dengan perintah shell dan mencetak nilai dalam bentuk lain (base64, sebagian, dengan spasi), dan bentuk itu sampai ke model. Alat file milik agen (read, grep, write, edit) tidak dapat membuka folder rahasia. Jika nilai itu juga kata yang umum, hasil lain dalam obrolan itu juga menampilkan `[secret]`. File tetap ada sampai giliran berakhir; jika dsh tertutup selama giliran, start berikutnya menghapusnya. Satu obrolan hanya dapat punya satu permintaan terbuka pada satu waktu. Alat ini menambahkan sekitar 870 karakter (sekitar 220 token, perkiraan) ke setiap permintaan model: nonaktifkan jika tidak dipakai.
|
|
241
242
|
- **Kutip dalam balasan** mengutip teks seperti yang ditampilkan halaman: blok kode, tabel, atau daftar menjadi baris biasa tanpa tanda Markdown. Pilihan yang mulai di satu jawaban dan berakhir di jawaban lain, atau yang menyentuh proses berpikir, baris alat, atau pesan Anda sendiri, tidak menampilkan tombol: pilih di dalam satu jawaban saja. Tombol menemukan jawaban lewat struktur obrolan dsh, karena dsh tidak punya slot untuk pilihan teks; jika pembaruan dsh mengubah struktur itu, tombol tidak muncul. Jika kutipan berada di akhir kolom, satu baris kosong lagi ditambahkan agar baris berikutnya yang Anda ketik mulai di bawahnya; dsh menghapus baris kosong di akhir saat mengirim.
|
|
@@ -423,7 +424,7 @@ SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-agentbox-ideas.mjs /path
|
|
|
423
424
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-t3code-ideas.mjs /path/to/dsh/lib/bin.js
|
|
424
425
|
# every Settings feature row shows a loading screenshot and a ? link to its README row
|
|
425
426
|
PLAYWRIGHT=/path/to/playwright node test/browser-settings-shots.mjs /path/to/dsh/lib/bin.js
|
|
426
|
-
# What's new after an update: the release notes show once, Esc and Close close them
|
|
427
|
+
# What's new after an update: the release notes show once (also after an install through another path), Esc and Close close them; Settings → What’s new in this version opens them again
|
|
427
428
|
PLAYWRIGHT=/path/to/playwright node test/browser-whats-new.mjs /path/to/dsh/lib/bin.js
|
|
428
429
|
# README feature anchors (the ? links) on github.com, headless: each #feature-… shows the start of its row
|
|
429
430
|
PLAYWRIGHT=/path/to/playwright node test/browser-readme-anchors.mjs
|
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.21.
|
|
32
|
+
> dsh の pnpm は、公開から 24 時間たっていないバージョンをスキップします。リリース直後は、バージョンを指定してください:`dsh-composer-plus@1.21.1`。
|
|
33
33
|
|
|
34
34
|
## 機能
|
|
35
35
|
|
|
@@ -100,7 +100,7 @@ dsh plugin --profile web add dsh-composer-plus
|
|
|
100
100
|
| **アプリケーションの言語** | <a id="feature-language"></a>設定 → Composer Plus → **アプリケーションの言語** で、dsh のインターフェース全体を Türkçe、Español、Português (Brasil)、Français、Deutsch、Русский、日本語、한국어、Bahasa Indonesia、Tiếng Việt、हिन्दी のいずれかに切り替えます(下記を参照)。 | <a href="assets/features/language.webp"><img src="assets/features/language.webp" width="160" alt="スクリーンショット: アプリケーションの言語"></a> |
|
|
101
101
|
| **モバイル接続(iPhone)** | <a id="feature-mobileconnect"></a>[Tether](tether/) アプリを使うと、同じ Wi-Fi で、または [Tailscale](https://tailscale.com) 経由で、iPhone から dsh を使えます。**設定 → Composer Plus** でオンにしてください(この Mac でネットワークポートを開くため、既定ではオフです)。次に、サイドバーの左下にある **モバイル接続** をクリックします。iPhone のカメラ(**Open in Tether** をタップ)または Tether の **Scan code** で QR コードを読み取り、**Connect** をタップして、**Approve** をクリックします。先に Tether をインストールしてください。Tether がないと、カメラはこのコードを開けません。スマートフォンでは、チャットの表示、メッセージの送信(写真付き:入力欄の **+** → Camera、Photos、Paste image)、承認と質問への回答、モデルとエージェントの切り替えができます。ペアリングできる Mac の数に制限はありません。アプリの左上にある Mac の名前で、Mac を切り替えます。**モバイル接続** パネルには、ペアリング済みの iPhone が最後の接続日時とともに表示され、**Remove** でその iPhone をすぐに切断できます。「Tailscale only」はローカルネットワークからの接続を拒否し(共有の Wi-Fi 向け)、アクセスログには接続を試みた相手が表示されます。Tether では、「Settings → Privacy」で Face ID によるアプリのロックを設定できます。 | <a href="assets/features/mobileConnect.webp"><img src="assets/features/mobileConnect.webp" width="160" alt="スクリーンショット: モバイル接続(iPhone)"></a> |
|
|
102
102
|
| **リモートコンピュータ** | <a id="feature-remotecomputers"></a>[Tailscale](https://tailscale.com) 経由でほかの Mac の dsh を開き、そのチャットをここで続けられます。各 Mac の **設定 → Composer Plus** でオンにしてください(ネットワークポートを開くため、既定ではオフです)。開きたい Mac で **ほかのコンピュータからこの Mac を開けるようにする** をオンにし、**ペアリングリンクを作成** をクリックして、リンクをコピーします。この Mac では、チャットのタイトルの左にあるコンピュータの選択メニューで **コンピュータを追加…** を選び、リンクを貼り付けて **接続** をクリックします。次に、もう一方の Mac で **承認** をクリックします。以後、選択メニューには **この Mac** とあなたのコンピュータが表示されます。1 台を選ぶと、その dsh が右サイドバーのブラウザタブ(またはブラウザのウインドウ)で開き、そのコンピュータ自身のチャット、ツール、ファイルを使えます。設定パネルでは、コンピュータの名前の変更と削除ができ、この Mac を開けるコンピュータの一覧も表示されます(**削除** でその 1 台をすぐに切断できます)。 | <a href="assets/features/remoteComputers.webp"><img src="assets/features/remoteComputers.webp" width="160" alt="スクリーンショット: リモートコンピュータ"></a> |
|
|
103
|
-
| **自動アップデート** | <a id="feature-autoupdate"></a>dsh の起動時に、プラグインは [GitHub の最新リリース](https://github.com/furkancak1r/dsh-composer-plus/releases/latest) を確認します。そのリリースのほうが新しく、すでに npm にある場合は、dsh 標準のプラグインマネージャー(設定 → プラグインと同じ経路)でそのバージョンをインストールし、通知します。読み込むには、dsh を再起動してください。**設定 → Composer Plus → Composer Plus のアップデート** にはバージョンが表示され、**アップデートを確認** / **今すぐアップデート** のボタンがあります。新しいバージョンで dsh を初めて起動すると、**Composer Plus N の新機能** ウィンドウにそのバージョンのリリースノートが **アプリケーションの言語** で選んだ言語で 1 回だけ表示されます(ノートは新しいバージョンに含まれていて、追加の通信はありません。その言語のノートがない場合は英語のノートが表示されます)。**閉じる** または `Esc` で閉じます。 | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="スクリーンショット: 自動アップデート"></a> |
|
|
103
|
+
| **自動アップデート** | <a id="feature-autoupdate"></a>dsh の起動時に、プラグインは [GitHub の最新リリース](https://github.com/furkancak1r/dsh-composer-plus/releases/latest) を確認します。そのリリースのほうが新しく、すでに npm にある場合は、dsh 標準のプラグインマネージャー(設定 → プラグインと同じ経路)でそのバージョンをインストールし、通知します。読み込むには、dsh を再起動してください。**設定 → Composer Plus → Composer Plus のアップデート** にはバージョンが表示され、**アップデートを確認** / **今すぐアップデート** のボタンがあります。新しいバージョンで dsh を初めて起動すると、**Composer Plus N の新機能** ウィンドウにそのバージョンのリリースノートが **アプリケーションの言語** で選んだ言語で 1 回だけ表示されます(ノートは新しいバージョンに含まれていて、追加の通信はありません。その言語のノートがない場合は英語のノートが表示されます)。**閉じる** または `Esc` で閉じます。 設定 → プラグイン やコピーしたフォルダーで更新した後も、新しいバージョンごとに 1 回このウィンドウが表示されます。最初のインストール時には表示されません。更新の行にある **このバージョンの新機能** で再び開けます。実行中のバージョンより新しいバージョンがディスクにある場合、行に dsh を再起動するよう表示されます。 | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="スクリーンショット: 自動アップデート"></a> |
|
|
104
104
|
| **バックアップ** | <a id="feature-backup"></a>設定 → Composer Plus → **バックアップ** → **今すぐバックアップ** で、dsh のホーム全体(チャット、設定、プラグイン、MCP、スキル)を、チェックサム付きで `~/Desktop/dsh-backups` 内の 1 つのアーカイブに書き込みます。アーカイブ内のシークレットはマスクされます。認証情報ファイル、鍵ファイル(`.pem`、`.key`)、yml 設定の token、secret、password の値は、このコンピュータ上のフォルダーの `vault` にだけ残ります。`cache/`、`dsh-runtimes/`、`node_modules` はアーカイブに入りません(dsh が作り直します)。一覧の各バックアップには、**チェック**(全体を読み取ります)、**別のコンピュータ用**(新しいコンピュータにコピーするフォルダーで、レスキューコンソールを含みます)、**削除** があります。同じフォルダーにある dsh-backup のアーカイブも表示され、使えます。復元するには、dsh を終了してレスキューコンソールを使います。 | <a href="assets/features/backup.webp"><img src="assets/features/backup.webp" width="160" alt="スクリーンショット: バックアップ"></a> |
|
|
105
105
|
| **自動バックアップ** | <a id="feature-autobackup"></a>**自動バックアップ** をオンにします(既定ではオフです。各コピーは、キャッシュを除いた dsh のホームとほぼ同じ大きさになります)。頻度(**間隔**:6 時間から 7 日、既定は 24 時間)と、残すバックアップの数(**保持**:3 から 14、既定は 7)を選びます。次回の時刻はスイッチの下に表示されます。失敗したバックアップもそこに表示され、30 分後に再試行されます。dsh または Composer Plus が新しいバージョンで起動すると、起動後まもなく、新しいバージョンがデータを長く使う前にスナップショットを作成します(最新の 2 つが残り、**アップグレード前** と表示されます)。 | <a href="assets/features/autoBackup.webp"><img src="assets/features/autoBackup.webp" width="160" alt="スクリーンショット: 自動バックアップ"></a> |
|
|
106
106
|
| **セッションログのチェック** | <a id="feature-sessiondoctor"></a>**セッションログをチェック** は、すべてのチャットのログを読み取り、dsh が開けないログ(壊れたフレーム、途切れたレコード、誤ったシーケンス番号)を一覧表示します。末尾だけが欠けたログは一覧に出ません。dsh が自分で修復します。**バックアップから修復** は、正常なコピーがある最新のバックアップからコピーを戻し、損傷したファイルをその隣に残します(`.corrupt-<時刻>`)。そのバックアップ以降に書かれたメッセージはコピーに含まれません。この dsh で開いているチャットはここでは修復されません。dsh を終了して、レスキューコンソールで修復してください。 | <a href="assets/features/sessionDoctor.webp"><img src="assets/features/sessionDoctor.webp" width="160" alt="スクリーンショット: セッションログのチェック"></a> |
|
|
@@ -215,7 +215,7 @@ dsh `0.2.0-rc.2`(デスクトップと Web)と `0.2.1-rc.2`(Web)でテ
|
|
|
215
215
|
- **チャット行にブランチのラベルがない:** 原因は次のいずれかです。サイドバーが「1つのリスト」表示ではない(「ワークスペース」と「ワークスペースのツリー」では、どのチャット行にもラベルは表示されません)。このバージョンをインストールしてから、そのチャットにターンがない。フォルダーが git リポジトリではない。**チャット行の Git ブランチ** がオフになっている。アップデートの後は、dsh を再起動してください(ブランチはホスト側が記録します)。
|
|
216
216
|
- **目標チェックで、テストが終了コード 127 または「not found」で終了したと表示される:** Finder や Dock から起動した dsh は、ターミナルより PATH が短いことがあるため、`npm`、`pnpm`、`cargo` が見つかりません。ターミナルから dsh を起動するか、**目標チェック** → **編集** で、フルパスを使った独自のテストコマンドを設定してください。**今すぐ実行** を使うと、すぐに結果が表示されます。
|
|
217
217
|
- **目標が閉じず、エージェントが作業を続ける:** **目標チェック** が、失敗したテストまたは足りない作業を見つけました。目標の下の行に理由が表示されます(詳細は、結果にポインターを合わせると表示されます)。原因またはテストコマンドを直すか、`/goal` または目標バーで目標を自分で完了してください(その完了はチェックされません)。
|
|
218
|
-
- **リリース直後にインストールが失敗する:** バージョンを指定してください(`dsh-composer-plus@1.21.
|
|
218
|
+
- **リリース直後にインストールが失敗する:** バージョンを指定してください(`dsh-composer-plus@1.21.1`)。上のインストールの注記を参照してください。
|
|
219
219
|
- **今すぐバックアップ で「別のバックアップ操作を実行中です」と表示される:** 別の dsh のウィンドウ、またはレスキューコンソールで操作が実行中です(どちらも、バックアップフォルダーのロックファイル `.composer-plus.lock` を共有します)。完了するまで待ってください。実行中の操作がない場合は、次のクリックで、終了したプロセスのロックを引き継ぎます。
|
|
220
220
|
- **レスキューコンソールで「dsh is running」と表示される:** まず dsh を終了してください。dsh が本当に閉じている場合、メッセージに示されたファイルはクラッシュで残ったものです。そのファイルを削除して、もう一度試してください。
|
|
221
221
|
- **復元の後に dsh が起動しない、またはプラグインが見つからない:** プロファイルのプラグインパッケージを、もう一度インストールする必要があります。レスキューコンソールが、復元の後にこれを提案します。または、コンソールが一覧表示する `$DSH_HOME/profiles/` の下の各フォルダーで `pnpm install` を実行してください。vault に入っていなかったシークレット(別のコンピュータ)は、もう一度入力する必要があります。コンソールがそれらを一覧表示します。
|
|
@@ -236,6 +236,7 @@ dsh `0.2.0-rc.2`(デスクトップと Web)と `0.2.1-rc.2`(Web)でテ
|
|
|
236
236
|
- dsh のキューには `move` 操作がないため、プラグインのホスト側が、dsh のキューの中でメッセージそのものを移動します(1 回の変更で、同じメッセージのままです)。画像やファイルを含むメッセージも移動できます。移動できるのは自分のメッセージだけです。キュー内の目標のラウンドや質問への回答は、その位置から動きません。ドラッグ中にメッセージの送信が始まった場合は、何も移動せず、そのことを知らせる通知が表示されます。
|
|
237
237
|
- 新しいバージョンが dsh の設定を何も変更しない場合、dsh 0.2.1 はアップデートをすぐに読み込みます。それ以外の場合と dsh 0.2.0 では、読み込むには dsh を再起動してください。プラグインが dsh を自動で再起動することはありません。dsh のプラグインマネージャーがない Web/CLI プロファイルでは、新しいバージョンがあることを知らせるだけです。
|
|
238
238
|
- **Composer Plus N の新機能** は、**アプリケーションの言語** の言語でノートを表示します。別の地域を指定した UI 言語には、その基本言語のノートが表示されます(`en-GB` には英語のノート、`zh-TW` には `zh` の中国語のノート)。ノートがない言語(別の言語パックが追加した言語や、`pt-BR` ではない `pt-PT`)では、英語のノートが表示されます。ノートは新しいバージョンに含まれています。実行中のコピーに読み取れるノートファイル(`release-notes.json`)がない場合は、GitHub の英語のノートが表示されます。
|
|
239
|
+
- dsh の実行中にインストールされたバージョン(設定 → プラグイン やコピーしたフォルダーでの更新)は、dsh を再起動するまで読み込まれません。それまでは **Composer Plus のアップデート** に実行中のバージョンが表示され、再起動を求められます。そのバージョンの **Composer Plus N の新機能** ウィンドウは、そのバージョンの最初の起動時に 1 回表示されます。このプラグインを初めてインストールした後の最初の起動ではウィンドウは表示されません。**このバージョンの新機能** で実行中のバージョンのノートを開けます。
|
|
239
240
|
- **メモを付けて拒否** は、メモを待機中のターンへのメッセージとして送ってから、リクエストを拒否します。dsh はメモをチャットにあなたのメッセージとして表示します。メモの入力欄が開いている間、カードには **キャンセル** と **拒否** だけが表示されるため、誤ってクリックしてリクエストを許可することはありません。`Esc` または **キャンセル** で dsh のボタンが戻ります。空のメモは何も送信しません(dsh 自身の **拒否** を使ってください)。メモを送った後で拒否が失敗した場合(たとえば、その間にリクエストが別の場所で回答された場合)、メモはチャットに残り、モデルは次のステップでそのメモを読みます。dsh にはカードの操作用のスロットがないため、ボタンは dsh の承認カードのマークアップ(`data-approval-key`)に入れています。dsh のアップデートでそのマークアップが変わった場合、ボタンは表示されませんが、dsh 自身の **拒否** はこれまでどおり使えます。メモは最大 4,000 文字です。
|
|
240
241
|
- **シークレット入力** が隠すのは値の正確な文字列だけです。同じチャットの後のツール結果では、値が `[secret]` に置き換えられます。ただし、エージェントはシェルコマンドでファイルを読み、値を別の形(base64、一部分、空白を入れたもの)で出力できます。その形はモデルに届きます。エージェント自身のファイルツール(read、grep、write、edit)はシークレットのフォルダを開けません。値がよく使われる単語でもある場合、そのチャットの他の結果にも `[secret]` が表示されます。ファイルはターンが終わるまで残ります。ターン中に dsh が終了した場合は、次の起動時に削除されます。1 つのチャットで同時に開けるリクエストは 1 つです。このツールは各モデルリクエストに約 870 文字(推定約 220 トークン)を追加します。使わないときはオフにしてください。
|
|
241
242
|
- **返信で引用** は、ページに表示されているとおりの文字列を引用します。コードブロック、表、リストは Markdown の記号なしの普通の行になります。選択範囲がある回答で始まって別の回答で終わる場合や、思考過程、ツールの行、自分のメッセージにかかる場合は、ボタンが表示されません。1 つの回答の中で選択してください。dsh には文字選択用のスロットがないため、ボタンは dsh のチャット構造から回答を探します。dsh の更新でこの構造が変わると、ボタンは表示されません。引用が入力欄の末尾に入る場合は、次に入力する行が引用の下から始まるように空行がもう 1 つ入ります。dsh は送信時に末尾の空行を削除します。
|
|
@@ -423,7 +424,7 @@ SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-agentbox-ideas.mjs /path
|
|
|
423
424
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-t3code-ideas.mjs /path/to/dsh/lib/bin.js
|
|
424
425
|
# every Settings feature row shows a loading screenshot and a ? link to its README row
|
|
425
426
|
PLAYWRIGHT=/path/to/playwright node test/browser-settings-shots.mjs /path/to/dsh/lib/bin.js
|
|
426
|
-
# What's new after an update: the release notes show once, Esc and Close close them
|
|
427
|
+
# What's new after an update: the release notes show once (also after an install through another path), Esc and Close close them; Settings → What’s new in this version opens them again
|
|
427
428
|
PLAYWRIGHT=/path/to/playwright node test/browser-whats-new.mjs /path/to/dsh/lib/bin.js
|
|
428
429
|
# README feature anchors (the ? links) on github.com, headless: each #feature-… shows the start of its row
|
|
429
430
|
PLAYWRIGHT=/path/to/playwright node test/browser-readme-anchors.mjs
|
package/README.ko.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.21.
|
|
32
|
+
> dsh의 pnpm은 게시된 지 24시간이 지나지 않은 버전을 건너뜁니다. 릴리스 직후에는 버전을 붙여서 설치하세요: `dsh-composer-plus@1.21.1`.
|
|
33
33
|
|
|
34
34
|
## 기능
|
|
35
35
|
|
|
@@ -100,7 +100,7 @@ dsh plugin --profile web add dsh-composer-plus
|
|
|
100
100
|
| **애플리케이션 언어** | <a id="feature-language"></a>설정 → Composer Plus → **애플리케이션 언어**에서 dsh 인터페이스 전체를 Türkçe, Español, Português (Brasil), Français, Deutsch, Русский, 日本語, 한국어, Bahasa Indonesia, Tiếng Việt, हिन्दी 중 하나로 바꿉니다(아래 참고). | <a href="assets/features/language.webp"><img src="assets/features/language.webp" width="160" alt="스크린샷: 애플리케이션 언어"></a> |
|
|
101
101
|
| **모바일 연결(iPhone)** | <a id="feature-mobileconnect"></a>[Tether](tether/) 앱으로 iPhone에서 dsh를 사용하세요. 같은 Wi-Fi나 [Tailscale](https://tailscale.com)을 통해 연결합니다. **설정 → Composer Plus**에서 켜세요(이 Mac에서 네트워크 포트를 열기 때문에 기본적으로 꺼져 있습니다). 그다음 사이드바 왼쪽 아래의 **모바일 연결**을 클릭하세요. iPhone 카메라(**Open in Tether**를 탭)나 Tether의 **Scan code**로 QR 코드를 스캔하고, **Connect**를 탭한 뒤 **Approve**를 클릭하세요. 먼저 Tether를 설치하세요. Tether가 없으면 카메라가 이 코드를 열 수 없습니다. 휴대폰에서 채팅을 보고, 메시지를 보내고(사진 포함: 입력란의 **+** → Camera, Photos 또는 Paste image), 승인과 질문에 답하고, 모델과 에이전트를 바꿀 수 있습니다. Mac은 원하는 만큼 페어링할 수 있으며, 앱 왼쪽 위의 Mac 이름으로 Mac을 전환합니다. **모바일 연결** 패널에는 페어링된 iPhone이 마지막 연결 시각과 함께 표시되며, **Remove**를 누르면 그 iPhone의 연결이 즉시 끊깁니다. “Tailscale only”는 로컬 네트워크의 연결을 거부하고(공유 Wi-Fi용), 액세스 로그는 누가 연결을 시도했는지 보여 줍니다. Tether에서는 “Settings → Privacy”에서 Face ID로 앱을 잠급니다. | <a href="assets/features/mobileConnect.webp"><img src="assets/features/mobileConnect.webp" width="160" alt="스크린샷: 모바일 연결(iPhone)"></a> |
|
|
102
102
|
| **원격 컴퓨터** | <a id="feature-remotecomputers"></a>[Tailscale](https://tailscale.com)을 통해 다른 Mac의 dsh를 열고, 그 채팅을 여기서 이어 가세요. 각 Mac의 **설정 → Composer Plus**에서 켜세요(네트워크 포트를 열기 때문에 기본적으로 꺼져 있습니다). 열려는 Mac에서 **다른 컴퓨터에서 이 Mac 열기 허용**을 켜고, **페어링 링크 만들기**를 클릭한 뒤 링크를 복사하세요. 이 Mac에서는 채팅 제목 왼쪽의 컴퓨터 선택 메뉴에서 **컴퓨터 추가…** 항목을 고르고, 링크를 붙여 넣은 뒤 **연결**을 클릭하세요. 그다음 다른 Mac에서 **승인**을 클릭하세요. 이제 선택 메뉴에 **이 Mac**과 내 컴퓨터들이 표시됩니다. 하나를 고르면 그 컴퓨터의 dsh가 오른쪽 사이드바의 브라우저 탭(또는 브라우저 창)에서 열리며, 그 컴퓨터의 채팅, 도구, 파일을 그대로 쓸 수 있습니다. 설정 패널에서 컴퓨터의 이름을 바꾸거나 제거할 수 있고, 이 Mac을 열 수 있는 컴퓨터 목록도 볼 수 있습니다(**제거**를 누르면 그 컴퓨터의 연결이 즉시 끊깁니다). | <a href="assets/features/remoteComputers.webp"><img src="assets/features/remoteComputers.webp" width="160" alt="스크린샷: 원격 컴퓨터"></a> |
|
|
103
|
-
| **자동 업데이트** | <a id="feature-autoupdate"></a>dsh가 시작되면 플러그인이 [최신 GitHub 릴리스](https://github.com/furkancak1r/dsh-composer-plus/releases/latest)를 확인합니다. 더 새로운 버전이고 npm에도 올라와 있으면, dsh 자체 플러그인 관리자(설정 → 플러그인과 같은 경로)로 정확히 그 버전을 설치하고 알려 줍니다. 새 버전을 로드하려면 dsh를 다시 시작하세요. **설정 → Composer Plus → Composer Plus 업데이트**에서 버전을 볼 수 있고, **업데이트 확인** / **지금 업데이트** 버튼도 있습니다. 새 버전으로 dsh를 처음 시작하면 **Composer Plus N의 새로운 기능** 창이 그 버전의 릴리스 노트를 **애플리케이션 언어**에서 고른 언어로 한 번 보여 줍니다(노트는 새 버전에 함께 들어 있으며 추가 네트워크 호출은 없습니다. 그 언어의 노트가 없으면 영어 노트를 보여 줍니다). **닫기** 또는 `Esc`로 닫습니다. | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="스크린샷: 자동 업데이트"></a> |
|
|
103
|
+
| **자동 업데이트** | <a id="feature-autoupdate"></a>dsh가 시작되면 플러그인이 [최신 GitHub 릴리스](https://github.com/furkancak1r/dsh-composer-plus/releases/latest)를 확인합니다. 더 새로운 버전이고 npm에도 올라와 있으면, dsh 자체 플러그인 관리자(설정 → 플러그인과 같은 경로)로 정확히 그 버전을 설치하고 알려 줍니다. 새 버전을 로드하려면 dsh를 다시 시작하세요. **설정 → Composer Plus → Composer Plus 업데이트**에서 버전을 볼 수 있고, **업데이트 확인** / **지금 업데이트** 버튼도 있습니다. 새 버전으로 dsh를 처음 시작하면 **Composer Plus N의 새로운 기능** 창이 그 버전의 릴리스 노트를 **애플리케이션 언어**에서 고른 언어로 한 번 보여 줍니다(노트는 새 버전에 함께 들어 있으며 추가 네트워크 호출은 없습니다. 그 언어의 노트가 없으면 영어 노트를 보여 줍니다). **닫기** 또는 `Esc`로 닫습니다. 설정 → 플러그인 이나 복사한 폴더로 업데이트한 뒤에도 새 버전마다 한 번 이 창이 표시됩니다. 처음 설치할 때는 표시되지 않습니다. 업데이트 행의 **이 버전의 새로운 기능** 으로 다시 열 수 있습니다. 실행 중인 버전보다 새 버전이 디스크에 있으면 행에 dsh를 다시 시작하라고 표시됩니다. | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="스크린샷: 자동 업데이트"></a> |
|
|
104
104
|
| **백업** | <a id="feature-backup"></a>설정 → Composer Plus → **백업** → **지금 백업**은 dsh 홈 전체(채팅, 설정, 플러그인, MCP, 스킬)를 체크섬과 함께 `~/Desktop/dsh-backups`의 아카이브 하나에 씁니다. 아카이브에서 비밀 값은 마스킹됩니다. 자격 증명 파일, 키 파일(`.pem`, `.key`), yml 설정의 token, secret, password 값은 이 컴퓨터에만, 폴더의 `vault`에 남습니다. `cache/`, `dsh-runtimes/`, `node_modules`는 아카이브에 들어가지 않습니다(dsh가 다시 만듭니다). 목록의 각 백업에는 **검사**(끝까지 읽음), **다른 컴퓨터용**(새 컴퓨터로 복사할 폴더, 복구 콘솔 포함), **삭제**가 있습니다. 같은 폴더에 있는 dsh-backup의 아카이브도 표시되고 사용할 수 있습니다. 복원하려면 dsh를 종료하고 복구 콘솔을 사용하세요. | <a href="assets/features/backup.webp"><img src="assets/features/backup.webp" width="160" alt="스크린샷: 백업"></a> |
|
|
105
105
|
| **자동 백업** | <a id="feature-autobackup"></a>**자동 백업**을 켜세요(기본적으로 꺼져 있습니다. 각 사본은 캐시를 뺀 dsh 홈과 크기가 거의 같습니다). 얼마나 자주 백업할지(**간격**: 6시간에서 7일, 기본값 24시간)와 백업을 몇 개 남길지(**보관**: 3에서 14, 기본값 7)를 고르세요. 다음 백업 시각은 스위치 아래에 표시됩니다. 실패한 백업도 그곳에 표시되고, 30분 뒤에 다시 시도합니다. dsh나 Composer Plus가 새 버전으로 시작하면, 시작 직후 새 버전이 데이터를 오래 쓰기 전에 스냅샷을 만듭니다(가장 최신 두 개가 남고, **업그레이드 전**으로 표시됩니다). | <a href="assets/features/autoBackup.webp"><img src="assets/features/autoBackup.webp" width="160" alt="스크린샷: 자동 백업"></a> |
|
|
106
106
|
| **세션 로그 점검** | <a id="feature-sessiondoctor"></a>**세션 로그 검사**는 모든 채팅의 로그를 읽고, dsh가 열 수 없는 로그를 나열합니다(깨진 프레임, 잘린 레코드, 잘못된 시퀀스 번호). 마지막 부분만 덜 쓰인 로그는 나열되지 않습니다. dsh가 직접 고칩니다. **백업에서 복구**는 정상 사본이 있는 가장 최신 백업에서 사본을 되돌려 놓고, 손상된 파일은 그 옆에 보관합니다(`.corrupt-<시각>`). 그 백업 이후에 작성된 메시지는 사본에 없습니다. 이 dsh에서 열려 있는 채팅은 여기서 복구되지 않습니다. dsh를 종료하고 복구 콘솔에서 복구하세요. | <a href="assets/features/sessionDoctor.webp"><img src="assets/features/sessionDoctor.webp" width="160" alt="스크린샷: 세션 로그 점검"></a> |
|
|
@@ -215,7 +215,7 @@ dsh `0.2.0-rc.2`(데스크톱과 웹)와 `0.2.1-rc.2`(웹)에서 테스트했습
|
|
|
215
215
|
- **채팅 행에 브랜치 배지가 없음:** 사이드바가 “하나의 목록” 보기가 아니거나(“작업 공간”과 “작업 공간 트리”에서는 어떤 채팅 행에도 배지가 없음), 이 버전을 설치한 뒤 그 채팅에 턴이 없었거나, 폴더가 git 저장소가 아니거나, **채팅 행의 Git 브랜치**가 꺼져 있습니다. 업데이트한 뒤에는 dsh를 다시 시작하세요(브랜치는 Host 쪽이 기록합니다).
|
|
216
216
|
- **목표 확인에 테스트가 종료 코드 127 또는 "not found"로 끝났다고 표시됨:** Finder나 Dock에서 시작한 dsh는 터미널보다 PATH가 짧을 수 있어서 `npm`, `pnpm`, `cargo`를 찾지 못합니다. 터미널에서 dsh를 시작하거나, **목표 확인** → **편집**에서 전체 경로를 쓴 테스트 명령을 직접 정하세요. **지금 실행**을 누르면 결과가 바로 표시됩니다.
|
|
217
217
|
- **목표가 닫히지 않고 에이전트가 계속 작업함:** **목표 확인**이 실패한 테스트나 남은 작업을 찾았습니다. 목표 아래의 행에 이유가 표시됩니다(자세한 내용은 결과에 포인터를 올려 보세요). 원인이나 테스트 명령을 고치거나, `/goal` 또는 목표 바로 목표를 직접 완료하세요(이 완료는 확인하지 않습니다).
|
|
218
|
-
- **릴리스 직후 설치 실패:** 버전을 붙여서 설치하세요(`dsh-composer-plus@1.21.
|
|
218
|
+
- **릴리스 직후 설치 실패:** 버전을 붙여서 설치하세요(`dsh-composer-plus@1.21.1`). 위의 설치 안내를 참고하세요.
|
|
219
219
|
- **지금 백업에서 "다른 백업 작업이 실행 중입니다"라고 표시됨:** 다른 dsh 창이나 복구 콘솔에서 작업이 실행 중입니다(둘은 백업 폴더의 잠금 파일 `.composer-plus.lock`을 함께 씁니다). 작업이 끝날 때까지 기다리세요. 실행 중인 작업이 없으면, 다음에 클릭할 때 종료된 프로세스의 잠금을 넘겨받습니다.
|
|
220
220
|
- **복구 콘솔에 "dsh is running"이라고 표시됨:** 먼저 dsh를 종료하세요. dsh가 정말 닫혀 있다면, 메시지에 나온 파일은 비정상 종료로 남은 것입니다. 그 파일을 삭제하고 다시 시도하세요.
|
|
221
221
|
- **복원 후 dsh가 시작되지 않거나 플러그인이 없음:** 프로필의 플러그인 패키지를 다시 설치해야 합니다. 복구 콘솔이 복원 후에 이를 제안합니다. 또는 콘솔이 나열하는 `$DSH_HOME/profiles/` 아래의 각 폴더에서 `pnpm install`을 실행하세요. vault에 없던 비밀 값(다른 컴퓨터)은 다시 입력해야 합니다. 콘솔이 그 목록을 보여 줍니다.
|
|
@@ -236,6 +236,7 @@ dsh `0.2.0-rc.2`(데스크톱과 웹)와 `0.2.1-rc.2`(웹)에서 테스트했습
|
|
|
236
236
|
- dsh의 대기열에는 `move` 동작이 없습니다. 그래서 플러그인의 Host 쪽이 dsh의 대기열 안에서 대기 중인 메시지 자체를 옮깁니다(한 번의 변경, 같은 메시지). 이미지나 파일이 있는 메시지도 이동할 수 있습니다. 내 메시지만 이동할 수 있습니다. 대기열에 있는 목표 라운드나 질문에 대한 답변은 제자리에 남습니다. 끄는 중에 메시지 전송이 시작되면 아무것도 이동하지 않고, 알림으로 이를 알려 줍니다.
|
|
237
237
|
- 새 버전이 dsh 설정을 하나도 바꾸지 않으면 dsh 0.2.1은 업데이트를 바로 로드합니다. 그 밖의 경우와 dsh 0.2.0에서는 업데이트를 로드하려면 dsh를 다시 시작하세요. 플러그인은 dsh를 대신 재시작하지 않습니다. dsh 플러그인 관리자가 없는 웹/CLI 프로필은 새 버전을 알리기만 합니다.
|
|
238
238
|
- **Composer Plus N의 새로운 기능**은 **애플리케이션 언어**의 언어로 노트를 보여 줍니다. 다른 지역이 붙은 UI 언어는 기본 언어의 노트를 받습니다(`en-GB`는 영어 노트, `zh-TW`는 `zh`의 중국어 노트). 노트가 없는 언어(다른 언어 팩이 추가한 언어, 또는 `pt-BR`이 아닌 `pt-PT`)에서는 영어 노트를 보여 줍니다. 노트는 새 버전에 함께 들어 있습니다. 실행 중인 사본에 읽을 수 있는 노트 파일(`release-notes.json`)이 없으면 GitHub의 영어 노트를 보여 줍니다.
|
|
239
|
+
- dsh가 실행 중일 때 설치된 버전(설정 → 플러그인 이나 복사한 폴더로 한 업데이트)은 dsh를 다시 시작해야 로드됩니다. 그때까지 **Composer Plus 업데이트** 는 실행 중인 버전을 보여 주고 다시 시작하라고 합니다. 그 버전의 **Composer Plus N의 새로운 기능** 창은 그 버전의 첫 시작 때 한 번 표시됩니다. 이 플러그인을 처음 설치한 뒤의 첫 시작에는 창이 표시되지 않습니다. **이 버전의 새로운 기능** 은 실행 중인 버전의 노트를 엽니다.
|
|
239
240
|
- **메모와 함께 거부**는 메모를 대기 중인 턴에 메시지로 보낸 다음 요청을 거부합니다. dsh는 메모를 채팅에 사용자의 메시지로 표시합니다. 메모 입력란이 열려 있는 동안 카드에는 **취소**와 **거부**만 표시되므로, 실수로 클릭해도 요청이 허용되지 않습니다. `Esc` 또는 **취소**를 누르면 dsh의 버튼이 다시 나타납니다. 빈 메모는 아무것도 보내지 않습니다(dsh 자체의 **거부**를 쓰세요). 메모를 보낸 뒤 거부가 실패하면(예를 들어 그사이에 요청이 다른 곳에서 응답된 경우) 메모는 채팅에 남고, 모델은 다음 단계에서 메모를 읽습니다. dsh에는 카드 동작용 슬롯이 없어서 버튼을 dsh의 승인 카드 마크업(`data-approval-key`)에 넣습니다. dsh 업데이트로 그 마크업이 바뀌면 버튼은 표시되지 않고, dsh 자체의 **거부**는 전과 같이 동작합니다. 메모는 최대 4,000자까지 쓸 수 있습니다.
|
|
240
241
|
- **비밀 값 입력**은 값의 정확한 문자열만 숨깁니다. 같은 채팅의 이후 도구 결과에서는 값이 `[secret]`으로 바뀝니다. 하지만 에이전트는 셸 명령으로 파일을 읽고 값을 다른 형태(base64, 일부분, 공백을 넣은 형태)로 출력할 수 있으며, 그 형태는 모델에 전달됩니다. 에이전트 자체의 파일 도구(read, grep, write, edit)는 비밀 값 폴더를 열 수 없습니다. 값이 흔한 단어이기도 하면 그 채팅의 다른 결과에도 `[secret]`이 표시됩니다. 파일은 턴이 끝날 때까지 남습니다. 턴 도중 dsh가 종료되면 다음 시작 시 삭제됩니다. 한 채팅에는 한 번에 하나의 요청만 열려 있을 수 있습니다. 이 도구는 모델 요청마다 약 870자(추정 약 220토큰)를 더합니다. 사용하지 않을 때는 끄세요.
|
|
241
242
|
- **답장에 인용**은 페이지에 보이는 그대로 텍스트를 인용합니다. 코드 블록, 표, 목록은 Markdown 기호 없이 일반 줄로 들어갑니다. 선택이 한 답변에서 시작해 다른 답변에서 끝나거나 생각 과정, 도구 행, 본인 메시지에 걸치면 버튼이 나타나지 않습니다. 한 답변 안에서 선택하세요. dsh에는 텍스트 선택용 슬롯이 없어서 버튼은 dsh의 채팅 구조로 답변을 찾습니다. dsh 업데이트로 이 구조가 바뀌면 버튼이 나타나지 않습니다. 인용이 입력란 끝에 들어가면 다음에 입력하는 줄이 그 아래에서 시작하도록 빈 줄이 하나 더 들어갑니다. dsh는 보낼 때 끝의 빈 줄을 지웁니다.
|
|
@@ -423,7 +424,7 @@ SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-agentbox-ideas.mjs /path
|
|
|
423
424
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-t3code-ideas.mjs /path/to/dsh/lib/bin.js
|
|
424
425
|
# every Settings feature row shows a loading screenshot and a ? link to its README row
|
|
425
426
|
PLAYWRIGHT=/path/to/playwright node test/browser-settings-shots.mjs /path/to/dsh/lib/bin.js
|
|
426
|
-
# What's new after an update: the release notes show once, Esc and Close close them
|
|
427
|
+
# What's new after an update: the release notes show once (also after an install through another path), Esc and Close close them; Settings → What’s new in this version opens them again
|
|
427
428
|
PLAYWRIGHT=/path/to/playwright node test/browser-whats-new.mjs /path/to/dsh/lib/bin.js
|
|
428
429
|
# README feature anchors (the ? links) on github.com, headless: each #feature-… shows the start of its row
|
|
429
430
|
PLAYWRIGHT=/path/to/playwright node test/browser-readme-anchors.mjs
|