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.md
CHANGED
|
@@ -27,7 +27,7 @@ dsh plugin --profile web add dsh-composer-plus
|
|
|
27
27
|
|
|
28
28
|
Then restart dsh. (The CLI can't install into the desktop profile; the app manages it.)
|
|
29
29
|
|
|
30
|
-
> dsh's pnpm skips versions younger than 24 hours. Right after a release, add the version: `dsh-composer-plus@1.21.
|
|
30
|
+
> dsh's pnpm skips versions younger than 24 hours. Right after a release, add the version: `dsh-composer-plus@1.21.1`.
|
|
31
31
|
|
|
32
32
|
## Features
|
|
33
33
|
|
|
@@ -98,7 +98,7 @@ Then restart dsh. (The CLI can't install into the desktop profile; the app manag
|
|
|
98
98
|
| **Application language** | <a id="feature-language"></a>Settings → Composer Plus → **Application language** switches the whole dsh interface to Türkçe, Español, Português (Brasil), Français, Deutsch, Русский, 日本語, 한국어, Bahasa Indonesia, Tiếng Việt or हिन्दी (see below). | <a href="assets/features/language.webp"><img src="assets/features/language.webp" width="160" alt="Screenshot: Application language"></a> |
|
|
99
99
|
| **Mobile connect (iPhone)** | <a id="feature-mobileconnect"></a>Use dsh from your iPhone with the [Tether](tether/) app, on the same Wi-Fi or over [Tailscale](https://tailscale.com). Switch it on in **Settings → Composer Plus** (it is off by default, because it opens a network port on this Mac). Then click **Mobile connect** at the bottom left of the sidebar: scan the QR code with the iPhone Camera (tap **Open in Tether**) or with **Scan code** in Tether, tap **Connect** and click **Approve**. Tether must be installed first: without it the Camera cannot open the code. The phone shows your chats, sends messages (with photos: the composer's **+** → Camera, Photos or Paste image), answers approvals and questions, and switches models and agents. Pair as many Macs as you like: the Mac name at the top left of the app switches between them. The **Mobile connect** panel lists the paired iPhones with their last connection: **Remove** cuts one off at once. **Tailscale only** refuses the local network (for a shared Wi-Fi), and the access log shows who tried to connect. In Tether, **Settings → Privacy** locks the app with Face ID. | <a href="assets/features/mobileConnect.webp"><img src="assets/features/mobileConnect.webp" width="160" alt="Screenshot: Mobile connect (iPhone)"></a> |
|
|
100
100
|
| **Remote computers** | <a id="feature-remotecomputers"></a>Open the dsh of your other Macs over [Tailscale](https://tailscale.com) and continue their chats here. Switch it on in **Settings → Composer Plus** on each Mac (it is off by default, because it opens network ports). On the Mac that you want to open, switch on **Let other computers open this Mac**, click **Create pairing link** and copy the link. On this Mac, pick **Add a computer…** in the computer picker at the left of the chat title, paste the link, click **Connect**, then click **Approve** on the other Mac. The picker then lists **This Mac** and your computers: pick one and its dsh opens in the Browser tab of the right sidebar (or in a browser window), with its own chats, tools and files. The Settings panel renames and removes computers, and lists the computers that can open this Mac (**Remove** cuts one off at once). | <a href="assets/features/remoteComputers.webp"><img src="assets/features/remoteComputers.webp" width="160" alt="Screenshot: Remote computers"></a> |
|
|
101
|
-
| **Automatic updates** | <a id="feature-autoupdate"></a>When dsh starts, the plugin checks the [latest GitHub release](https://github.com/furkancak1r/dsh-composer-plus/releases/latest). If it is newer and already on npm, it installs that exact version through dsh's own plugin manager (the same path as Settings → Plugins) and notifies you. Restart dsh to load it. **Settings → Composer Plus → Composer Plus updates** shows the version and has **Check for updates** / **Update now**. The first time dsh starts with the new version, a **What’s new in Composer Plus N** window shows the release notes of that version once, in the language of **Application language** (they come with the new version, no extra network call; a language without notes shows the English notes); **Close** or `Esc` closes it. | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="Screenshot: Automatic updates"></a> |
|
|
101
|
+
| **Automatic updates** | <a id="feature-autoupdate"></a>When dsh starts, the plugin checks the [latest GitHub release](https://github.com/furkancak1r/dsh-composer-plus/releases/latest). If it is newer and already on npm, it installs that exact version through dsh's own plugin manager (the same path as Settings → Plugins) and notifies you. Restart dsh to load it. **Settings → Composer Plus → Composer Plus updates** shows the version and has **Check for updates** / **Update now**. The first time dsh starts with the new version, a **What’s new in Composer Plus N** window shows the release notes of that version once, in the language of **Application language** (they come with the new version, no extra network call; a language without notes shows the English notes); **Close** or `Esc` closes it. The window also shows after an update from Settings → Plugins or a copied folder, once per new version; not at the first install. **What’s new in this version** in the update row opens it again. When a newer version is on disk than the one that runs, the row says to restart dsh. | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="Screenshot: Automatic updates"></a> |
|
|
102
102
|
| **Backup** | <a id="feature-backup"></a>Settings → Composer Plus → **Backup** → **Back up now** writes your whole dsh home (chats, settings, plugins, MCP, skills) into one archive in `~/Desktop/dsh-backups`, with a checksum. Secrets are masked in the archive: credential files, key files (`.pem`, `.key`) and the token, secret and password values of the yml settings stay on this computer only, in the folder's `vault`. `cache/`, `dsh-runtimes/` and `node_modules` are not archived (dsh makes them again). Each backup in the list has **Check** (reads it fully), **For another computer** (a folder to copy to the new computer, with the rescue console) and **Delete**. dsh-backup's archives in the same folder show and work too. To restore, quit dsh and use the rescue console. | <a href="assets/features/backup.webp"><img src="assets/features/backup.webp" width="160" alt="Screenshot: Backup"></a> |
|
|
103
103
|
| **Automatic backup** | <a id="feature-autobackup"></a>Switch on **Automatic backup** (off by default: each copy is about as large as your dsh home without its cache). Choose how often (**Every**: 6 hours to 7 days, 24 hours by default) and how many backups stay (**Keep**: 3 to 14, 7 by default). The next time shows under the switch; a failed backup shows there too and is tried again 30 minutes later. When dsh or Composer Plus starts with a new version, a snapshot comes soon after the start, before the new version has used your data for long (the two newest stay, marked **Before an upgrade**). | <a href="assets/features/autoBackup.webp"><img src="assets/features/autoBackup.webp" width="160" alt="Screenshot: Automatic backup"></a> |
|
|
104
104
|
| **Session log check** | <a id="feature-sessiondoctor"></a>**Check session logs** reads every chat's log and lists the ones that dsh cannot open (a broken frame, a cut record, a wrong sequence number). A torn tail is not listed: dsh repairs it itself. **Repair from backups** puts back the copy from the newest backup that has a healthy one and keeps the damaged file next to it (`.corrupt-<time>`). Messages written after that backup are not in the copy. A chat that is open in this dsh is not repaired here: quit dsh and repair it in the rescue console. | <a href="assets/features/sessionDoctor.webp"><img src="assets/features/sessionDoctor.webp" width="160" alt="Screenshot: Session log check"></a> |
|
|
@@ -213,7 +213,7 @@ Tested on dsh `0.2.0-rc.2` (desktop and web) and `0.2.1-rc.2` (web). CI runs the
|
|
|
213
213
|
- **No branch pill on a chat row:** the sidebar is not in “In one list” (in “WorkSpace” and “Workspace Tree”, no chat row shows a pill), the chat had no turn since you installed this version, its folder is not a git repository, or **Git branch on chat rows** is off. After an update, restart dsh (the Host half records the branch).
|
|
214
214
|
- **Goal check says the test exited with code 127 or "not found":** dsh started from the Finder or the Dock can have a shorter PATH than your terminal, so it does not find `npm`, `pnpm` or `cargo`. Start dsh from a terminal, or set your own test command with the full path under **Goal check** → **Edit**. **Run now** shows the result at once.
|
|
215
215
|
- **The goal does not close and the agent keeps working:** **Goal check** found a failing test or missing work; the row under the goal shows why (hover the result for the details). Fix the cause or the test command, or complete the goal yourself with `/goal` or the goal bar (that is not checked).
|
|
216
|
-
- **Install fails right after a release:** add the version (`dsh-composer-plus@1.21.
|
|
216
|
+
- **Install fails right after a release:** add the version (`dsh-composer-plus@1.21.1`), see the install note above.
|
|
217
217
|
- **Back up now says "another backup action is running":** an action runs in another dsh window or in the rescue console (they share a lock file, `.composer-plus.lock`, in the backup folder). Wait for it. If no action runs, the lock of a closed process is taken over at the next click.
|
|
218
218
|
- **The rescue console says "dsh is running":** quit dsh first. If dsh is really closed, the file named in the message is left from a crash: remove it and try again.
|
|
219
219
|
- **After a restore, dsh does not start or a plugin is missing:** the plugin packages of a profile must be installed again. The rescue console offers it after a restore; or run `pnpm install` in each folder under `$DSH_HOME/profiles/` that it lists. Secrets that were not in the vault (another computer) must be entered again: the console lists them.
|
|
@@ -234,6 +234,7 @@ Tested on dsh `0.2.0-rc.2` (desktop and web) and `0.2.1-rc.2` (web). CI runs the
|
|
|
234
234
|
- dsh's queue has no `move` action, so the plugin's Host moves the queued message itself in dsh's queue (one change, the same message). Messages with images or files move too. Only your own messages move: a goal round or a question reply in the queue stays where it is. If a message starts to send while you drag, nothing moves and a notice says so.
|
|
235
235
|
- dsh 0.2.1 loads an update at once when the new version changes no dsh settings; otherwise, and on dsh 0.2.0, restart dsh to load it. The plugin never restarts dsh for you. Web/CLI profiles without dsh's plugin manager only report a new version.
|
|
236
236
|
- **What’s new in Composer Plus N** shows the notes in the language of **Application language**. A UI language with another region gets the notes of its base language (`en-GB` gets the English notes, `zh-TW` the Chinese notes of `zh`). A language without notes (one that another language pack adds, or `pt-PT`, which is not `pt-BR`) shows the English notes. The notes come with the new version. When the running copy has no readable notes file (`release-notes.json`), the window shows the English notes from GitHub.
|
|
237
|
+
- A version that dsh installed while it runs (an update from Settings → Plugins or a copied folder) loads only after a dsh restart: until then, **Composer Plus updates** shows the running version and asks for a restart. Its **What’s new in Composer Plus N** window shows once at the first start of that version. The first start after this plugin is installed shows no window; **What’s new in this version** opens the notes of the running version.
|
|
237
238
|
- **Reject with note** sends the note as a message into the waiting turn, then rejects the request; dsh shows the note in the chat as your message. While the note field is open, the card shows only **Cancel** and **Reject**, so a click cannot allow the request by mistake; `Esc` or **Cancel** brings dsh's buttons back. An empty note sends nothing (use dsh's own **Reject**). If the rejection fails after the note went (for example, the request was answered elsewhere in the meantime), the note stays in the chat and the model reads it at its next step. The button goes into dsh's approval card markup (`data-approval-key`), because dsh has no slot for card actions; if a dsh update changes that markup, the button is not shown and dsh's own **Reject** works as before. A note can have at most 4,000 characters.
|
|
238
239
|
- **Secret input** hides only the exact text of a value: `[secret]` replaces it in the later tool results of the same chat. The agent can still read the file with a shell command and print the value in another form (base64, a part of it, with spaces), and that form reaches the model. The agent's own file tools (read, grep, write, edit) cannot open the secrets folder. When the value is also a common word, other results of that chat show `[secret]` too. The file stays until the turn ends; when dsh quits during the turn, the next start deletes it. A chat can have one open request at a time. The tool adds about 870 characters (about 220 tokens, estimated) to each model request: switch it off when you do not use it.
|
|
239
240
|
- **Quote in reply** quotes the text as the page shows it: a code block, a table or a list comes as plain lines, without its Markdown marks. A selection that starts in one answer and ends in another, or that touches the reasoning, a tool row or your own message, shows no button: select inside one answer. The button finds an answer through dsh's chat markup, because dsh has no slot for a text selection; if a dsh update changes that markup, the button does not show. When the quote ends the field, one more empty line goes after it so the next line that you type starts below it; dsh removes empty lines at the end when it sends.
|
|
@@ -421,7 +422,7 @@ SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-agentbox-ideas.mjs /path
|
|
|
421
422
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-t3code-ideas.mjs /path/to/dsh/lib/bin.js
|
|
422
423
|
# every Settings feature row shows a loading screenshot and a ? link to its README row
|
|
423
424
|
PLAYWRIGHT=/path/to/playwright node test/browser-settings-shots.mjs /path/to/dsh/lib/bin.js
|
|
424
|
-
# What's new after an update: the release notes show once, Esc and Close close them
|
|
425
|
+
# 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
|
|
425
426
|
PLAYWRIGHT=/path/to/playwright node test/browser-whats-new.mjs /path/to/dsh/lib/bin.js
|
|
426
427
|
# README feature anchors (the ? links) on github.com, headless: each #feature-… shows the start of its row
|
|
427
428
|
PLAYWRIGHT=/path/to/playwright node test/browser-readme-anchors.mjs
|
package/README.pt-BR.md
CHANGED
|
@@ -29,7 +29,7 @@ dsh plugin --profile web add dsh-composer-plus
|
|
|
29
29
|
|
|
30
30
|
Depois, reinicie o dsh. (A CLI não consegue instalar no perfil desktop; quem gerencia esse perfil é o app.)
|
|
31
31
|
|
|
32
|
-
> O pnpm do dsh ignora versões publicadas há menos de 24 horas. Logo depois de uma nova versão, informe a versão: `dsh-composer-plus@1.21.
|
|
32
|
+
> O pnpm do dsh ignora versões publicadas há menos de 24 horas. Logo depois de uma nova versão, informe a versão: `dsh-composer-plus@1.21.1`.
|
|
33
33
|
|
|
34
34
|
## Recursos
|
|
35
35
|
|
|
@@ -100,7 +100,7 @@ Depois, reinicie o dsh. (A CLI não consegue instalar no perfil desktop; quem ge
|
|
|
100
100
|
| **Idioma do aplicativo** | <a id="feature-language"></a>Configurações → Composer Plus → **Idioma do aplicativo** muda toda a interface do dsh para Türkçe, Español, Português (Brasil), Français, Deutsch, Русский, 日本語, 한국어, Bahasa Indonesia, Tiếng Việt ou हिन्दी (veja abaixo). | <a href="assets/features/language.webp"><img src="assets/features/language.webp" width="160" alt="Captura de tela: Idioma do aplicativo"></a> |
|
|
101
101
|
| **Conexão móvel (iPhone)** | <a id="feature-mobileconnect"></a>Use o dsh no seu iPhone com o app [Tether](tether/), na mesma rede Wi-Fi ou pelo [Tailscale](https://tailscale.com). Ative em **Configurações → Composer Plus** (o recurso vem desativado por padrão, porque abre uma porta de rede neste Mac). Depois, clique em **Conexão móvel** no canto inferior esquerdo da barra lateral: leia o código QR com a Câmera do iPhone (toque em **Open in Tether**) ou com **Scan code** no Tether, toque em **Connect** e clique em **Approve**. Instale o Tether antes: sem ele, a Câmera não consegue abrir o código. O celular mostra seus chats, envia mensagens (com fotos: o **+** do editor de mensagens → Camera, Photos ou Paste image), responde a aprovações e perguntas, e troca de modelo e de agente. Pareie quantos Macs quiser: o nome do Mac no canto superior esquerdo do app alterna entre eles. O painel **Conexão móvel** lista os iPhones pareados com a última conexão de cada um: **Remove** desconecta um deles na hora. “Tailscale only” recusa a rede local (para um Wi-Fi compartilhado), e o registro de acesso mostra quem tentou se conectar. No Tether, “Settings → Privacy” bloqueia o app com o Face ID. | <a href="assets/features/mobileConnect.webp"><img src="assets/features/mobileConnect.webp" width="160" alt="Captura de tela: Conexão móvel (iPhone)"></a> |
|
|
102
102
|
| **Computadores remotos** | <a id="feature-remotecomputers"></a>Abra o dsh dos seus outros Macs pelo [Tailscale](https://tailscale.com) e continue os chats deles aqui. Ative em **Configurações → Composer Plus** em cada Mac (o recurso vem desativado por padrão, porque abre portas de rede). No Mac que você quer abrir, ative **Permitir que outros computadores abram este Mac**, clique em **Criar link de pareamento** e copie o link. Neste Mac, escolha **Adicionar um computador…** no seletor de computadores, à esquerda do título do chat, cole o link e clique em **Conectar**. Depois, clique em **Aprovar** no outro Mac. A partir daí, o seletor lista **Este Mac** e os seus computadores: escolha um, e o dsh dele abre na aba Navegador da barra lateral direita (ou em uma janela do navegador), com os próprios chats, ferramentas e arquivos. O painel de Configurações renomeia e remove computadores, e lista os computadores que podem abrir este Mac (**Remover** desconecta um deles na hora). | <a href="assets/features/remoteComputers.webp"><img src="assets/features/remoteComputers.webp" width="160" alt="Captura de tela: Computadores remotos"></a> |
|
|
103
|
-
| **Atualizações automáticas** | <a id="feature-autoupdate"></a>Quando o dsh inicia, o plugin verifica a [versão mais recente no GitHub](https://github.com/furkancak1r/dsh-composer-plus/releases/latest). Se ela for mais nova e já estiver no npm, o plugin instala exatamente essa versão pelo próprio gerenciador de plugins do dsh (o mesmo caminho de Configurações → Plugins) e avisa você. Reinicie o dsh para carregá-la. **Configurações → Composer Plus → Atualizações do Composer Plus** mostra a versão e tem **Verificar atualizações** / **Atualizar agora**. Na primeira vez que o dsh abre com a nova versão, uma janela **Novidades do Composer Plus N** mostra uma vez as notas dessa versão no idioma de **Idioma do aplicativo** (elas vêm com a nova versão, sem outra chamada de rede; um idioma sem notas mostra as notas em inglês); **Fechar** ou `Esc` a fecha. | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="Captura de tela: Atualizações automáticas"></a> |
|
|
103
|
+
| **Atualizações automáticas** | <a id="feature-autoupdate"></a>Quando o dsh inicia, o plugin verifica a [versão mais recente no GitHub](https://github.com/furkancak1r/dsh-composer-plus/releases/latest). Se ela for mais nova e já estiver no npm, o plugin instala exatamente essa versão pelo próprio gerenciador de plugins do dsh (o mesmo caminho de Configurações → Plugins) e avisa você. Reinicie o dsh para carregá-la. **Configurações → Composer Plus → Atualizações do Composer Plus** mostra a versão e tem **Verificar atualizações** / **Atualizar agora**. Na primeira vez que o dsh abre com a nova versão, uma janela **Novidades do Composer Plus N** mostra uma vez as notas dessa versão no idioma de **Idioma do aplicativo** (elas vêm com a nova versão, sem outra chamada de rede; um idioma sem notas mostra as notas em inglês); **Fechar** ou `Esc` a fecha. A janela também aparece após uma atualização por Configurações → Plugins ou por uma pasta copiada, uma vez por versão nova; não na primeira instalação. **Novidades desta versão** na linha de atualizações a abre de novo. Se houver no disco uma versão mais nova que a que está em execução, a linha pede para reiniciar o dsh. | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="Captura de tela: Atualizações automáticas"></a> |
|
|
104
104
|
| **Backup** | <a id="feature-backup"></a>Configurações → Composer Plus → **Backup** → **Fazer backup agora** grava toda a sua pasta home do dsh (chats, configurações, plugins, MCP, skills) em um único arquivo compactado em `~/Desktop/dsh-backups`, com checksum. Os segredos ficam mascarados no arquivo compactado: arquivos de credenciais, arquivos de chave (`.pem`, `.key`) e os valores token, secret e password das configurações yml ficam só neste computador, no `vault` da pasta. `cache/`, `dsh-runtimes/` e `node_modules` não entram no arquivo compactado (o dsh os cria de novo). Cada backup da lista tem **Verificar** (lê o backup inteiro), **Para outro computador** (uma pasta para copiar para o novo computador, com o console de resgate) e **Excluir**. Os arquivos compactados do dsh-backup na mesma pasta também aparecem e funcionam. Para restaurar, saia do dsh e use o console de resgate. | <a href="assets/features/backup.webp"><img src="assets/features/backup.webp" width="160" alt="Captura de tela: Backup"></a> |
|
|
105
105
|
| **Backup automático** | <a id="feature-autobackup"></a>Ative **Backup automático** (desativado por padrão: cada cópia tem mais ou menos o tamanho da sua pasta home do dsh sem o cache). Escolha a frequência (**A cada**: de 6 horas a 7 dias, 24 horas por padrão) e quantos backups ficam guardados (**Manter**: de 3 a 14, 7 por padrão). O horário do próximo backup aparece abaixo da chave; um backup que falhou também aparece ali e é tentado de novo 30 minutos depois. Quando o dsh ou o Composer Plus inicia com uma nova versão, um snapshot é feito logo após o início, antes que a nova versão use seus dados por muito tempo (os dois mais recentes ficam guardados, marcados como **Antes de uma atualização**). | <a href="assets/features/autoBackup.webp"><img src="assets/features/autoBackup.webp" width="160" alt="Captura de tela: Backup automático"></a> |
|
|
106
106
|
| **Verificação de logs de sessão** | <a id="feature-sessiondoctor"></a>**Verificar logs de sessão** lê o log de cada chat e lista os que o dsh não consegue abrir (um frame quebrado, um registro cortado, um número de sequência errado). Um final incompleto não entra na lista: o próprio dsh o repara. **Reparar a partir dos backups** coloca de volta a cópia do backup mais recente que tenha uma cópia íntegra e mantém o arquivo danificado ao lado dela (`.corrupt-<hora>`). As mensagens escritas depois desse backup não estão na cópia. Um chat aberto neste dsh não é reparado aqui: saia do dsh e repare-o no console de resgate. | <a href="assets/features/sessionDoctor.webp"><img src="assets/features/sessionDoctor.webp" width="160" alt="Captura de tela: Verificação de logs de sessão"></a> |
|
|
@@ -215,7 +215,7 @@ Testado no dsh `0.2.0-rc.2` (desktop e web) e `0.2.1-rc.2` (web). A CI executa o
|
|
|
215
215
|
- **Nenhuma etiqueta de branch em uma linha de chat:** a barra lateral não está em “Em uma única lista” (em “Workspace” e “Árvore de workspaces”, nenhuma linha de chat mostra uma etiqueta), o chat não teve nenhum turno desde que você instalou esta versão, a pasta dele não é um repositório git, ou **Branch do Git nas linhas de chat** está desativado. Depois de uma atualização, reinicie o dsh (a parte Host registra o branch).
|
|
216
216
|
- **Verificação da meta diz que o teste saiu com o código 127 ou "not found":** o dsh iniciado pelo Finder ou pelo Dock pode ter um PATH mais curto que o do seu terminal, então ele não encontra `npm`, `pnpm` ou `cargo`. Inicie o dsh a partir de um terminal ou defina o seu próprio comando de teste com o caminho completo em **Verificação da meta** → **Editar**. **Executar agora** mostra o resultado na hora.
|
|
217
217
|
- **A meta não fecha e o agente continua trabalhando:** **Verificação da meta** encontrou um teste com falha ou trabalho faltando; a linha abaixo da meta mostra o motivo (passe o mouse sobre o resultado para ver os detalhes). Corrija a causa ou o comando de teste, ou conclua a meta você mesmo com `/goal` ou com a barra da meta (isso não é verificado).
|
|
218
|
-
- **A instalação falha logo depois de uma nova versão:** informe a versão (`dsh-composer-plus@1.21.
|
|
218
|
+
- **A instalação falha logo depois de uma nova versão:** informe a versão (`dsh-composer-plus@1.21.1`); veja a nota de instalação acima.
|
|
219
219
|
- **Fazer backup agora diz "Outra ação de backup está em andamento":** uma ação está em execução em outra janela do dsh ou no console de resgate (eles compartilham um arquivo de bloqueio, `.composer-plus.lock`, na pasta de backups). Aguarde até ela terminar. Se nenhuma ação estiver em execução, o próximo clique assume o bloqueio de um processo encerrado.
|
|
220
220
|
- **O console de resgate diz "dsh is running":** feche o dsh primeiro. Se o dsh estiver mesmo fechado, o arquivo citado na mensagem sobrou de uma falha: remova-o e tente de novo.
|
|
221
221
|
- **Depois de uma restauração, o dsh não inicia ou falta um plugin:** os pacotes de plugin de um perfil precisam ser instalados de novo. O console de resgate oferece isso depois de uma restauração; ou execute `pnpm install` em cada pasta de `$DSH_HOME/profiles/` que ele listar. Os segredos que não estavam no vault (outro computador) precisam ser informados de novo: o console os lista.
|
|
@@ -236,6 +236,7 @@ Testado no dsh `0.2.0-rc.2` (desktop e web) e `0.2.1-rc.2` (web). A CI executa o
|
|
|
236
236
|
- A fila do dsh não tem uma ação `move`, então a parte Host do plugin move a própria mensagem na fila do dsh (uma única alteração, a mesma mensagem). Mensagens com imagens ou arquivos também são movidas. Só as suas próprias mensagens são movidas: uma rodada de meta ou uma resposta a uma pergunta na fila fica onde está. Se uma mensagem começar a ser enviada enquanto você arrasta, nada é movido e um aviso informa isso.
|
|
237
237
|
- O dsh 0.2.1 carrega uma atualização imediatamente quando a nova versão não muda nenhuma configuração do dsh; caso contrário, e no dsh 0.2.0, reinicie o dsh para carregá-la. O plugin nunca reinicia o dsh por você. Perfis web/CLI sem o gerenciador de plugins do dsh só avisam que há uma nova versão.
|
|
238
238
|
- **Novidades do Composer Plus N** mostra as notas no idioma de **Idioma do aplicativo**. Um idioma da interface com outra região recebe as notas do seu idioma base (`en-GB` recebe as notas em inglês, e `zh-TW`, as notas em chinês de `zh`). Um idioma sem notas (um que outro pacote de idioma adiciona, ou `pt-PT`, que não é `pt-BR`) mostra as notas em inglês. As notas vêm com a nova versão. Se a cópia em execução não tiver um arquivo de notas legível (`release-notes.json`), a janela mostra as notas em inglês do GitHub.
|
|
239
|
+
- Uma versão instalada enquanto o dsh está em execução (uma atualização por Configurações → Plugins ou por uma pasta copiada) só carrega depois de reiniciar o dsh: até lá, **Atualizações do Composer Plus** mostra a versão em execução e pede para reiniciar. A janela **Novidades do Composer Plus N** dessa versão aparece uma vez na primeira inicialização dela. A primeira inicialização depois de instalar este plugin não mostra janela; **Novidades desta versão** abre as notas da versão em execução.
|
|
239
240
|
- **Rejeitar com nota** envia a nota como uma mensagem no turno que espera e depois rejeita a solicitação; o dsh mostra a nota no chat como uma mensagem sua. Enquanto o campo da nota está aberto, o cartão mostra só **Cancelar** e **Rejeitar**, então um clique não pode permitir a solicitação por engano; `Esc` ou **Cancelar** traz de volta os botões do dsh. Uma nota vazia não envia nada (use o próprio **Rejeitar** do dsh). Se a rejeição falhar depois que a nota foi enviada (por exemplo, a solicitação foi respondida em outro lugar nesse meio-tempo), a nota fica no chat e o modelo a lê no próximo passo dele. O botão fica na marcação do cartão de aprovação do dsh (`data-approval-key`), porque o dsh não tem um espaço para ações do cartão; se uma atualização do dsh mudar essa marcação, o botão não aparece e o próprio **Rejeitar** do dsh funciona como antes. Uma nota pode ter no máximo 4.000 caracteres.
|
|
240
241
|
- **Entrada secreta** esconde só o texto exato de um valor: `[secret]` o substitui nos resultados de ferramenta posteriores do mesmo chat. O agente ainda pode ler o arquivo com um comando de shell e imprimir o valor de outra forma (base64, uma parte, com espaços), e essa forma chega ao modelo. As ferramentas de arquivo do próprio agente (read, grep, write, edit) não conseguem abrir a pasta de segredos. Se o valor também for uma palavra comum, outros resultados desse chat também mostram `[secret]`. O arquivo fica até o turno terminar; se o dsh fechar durante o turno, a próxima inicialização o apaga. Um chat pode ter um só pedido aberto por vez. A ferramenta adiciona cerca de 870 caracteres (cerca de 220 tokens, estimado) a cada solicitação ao modelo: desative-a quando não a usar.
|
|
241
242
|
- **Citar na resposta** cita o texto como a página o mostra: um bloco de código, uma tabela ou uma lista vêm como linhas simples, sem as marcas de Markdown. Uma seleção que começa em uma resposta e termina em outra, ou que toca o raciocínio, uma linha de ferramenta ou sua própria mensagem, não mostra o botão: selecione dentro de uma só resposta. O botão encontra a resposta pela estrutura do chat do dsh, porque o dsh não tem um slot para seleção de texto; se uma atualização do dsh mudar essa estrutura, o botão não aparece. Quando a citação fica no fim do campo, mais uma linha vazia entra depois dela para que a próxima linha digitada comece abaixo; o dsh remove as linhas vazias do fim ao 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.ru.md
CHANGED
|
@@ -29,7 +29,7 @@ dsh plugin --profile web add dsh-composer-plus
|
|
|
29
29
|
|
|
30
30
|
Затем перезапустите dsh. (CLI не может устанавливать плагины в профиль настольного приложения: им управляет само приложение.)
|
|
31
31
|
|
|
32
|
-
> pnpm в dsh пропускает версии, которые вышли меньше 24 часов назад. Сразу после выпуска укажите версию: `dsh-composer-plus@1.21.
|
|
32
|
+
> pnpm в dsh пропускает версии, которые вышли меньше 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>Работайте с dsh на iPhone через приложение [Tether](tether/) в той же сети Wi-Fi или через [Tailscale](https://tailscale.com). Включите функцию в **Настройки → Composer Plus** (по умолчанию она выключена, потому что открывает сетевой порт на этом Mac). Затем нажмите **Мобильное подключение** внизу слева на боковой панели, отсканируйте QR-код камерой iPhone (коснитесь **Open in Tether**) или кнопкой **Scan code** в Tether, коснитесь **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>Открывайте dsh на других ваших Mac через [Tailscale](https://tailscale.com) и продолжайте их чаты здесь. Включите функцию в **Настройки → Composer Plus** на каждом Mac (по умолчанию она выключена, потому что открывает сетевые порты). На 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`) и значения token, secret и password в настройках yml остаются только на этом компьютере, в `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 @@ English · 中文 · Türkçe · Español · Português (Brasil) · Français ·
|
|
|
215
215
|
- **На строке чата нет метки ветки:** боковая панель не в режиме «Одним списком» (в режимах «По рабочей области» и «Дерево рабочих областей» ни одна строка чата не показывает метку), у чата не было хода с момента установки этой версии, его папка не является репозиторием git, или функция **Ветка Git в строках чатов** выключена. После обновления перезапустите dsh (ветку записывает Host-часть).
|
|
216
216
|
- **Проверка цели сообщает, что тест завершился с кодом 127 или «not found»:** у dsh, запущенного из Finder или Dock, 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 не запускается или не хватает плагина:** пакеты плагинов профиля нужно установить заново. Аварийная консоль предлагает это после восстановления; или выполните `pnpm install` в каждой папке внутри `$DSH_HOME/profiles/`, которую она перечисляет. Секреты, которых не было в vault (другой компьютер), нужно ввести заново: консоль перечисляет их.
|
|
@@ -236,6 +236,7 @@ English · 中文 · Türkçe · Español · Português (Brasil) · Français ·
|
|
|
236
236
|
- В очереди dsh нет действия `move`, поэтому Host-часть плагина перемещает само сообщение в очереди dsh (одно изменение, то же самое сообщение). Сообщения с изображениями или файлами тоже перемещаются. Перемещаются только ваши собственные сообщения: раунд цели или ответ на вопрос в очереди остаётся на своём месте. Если сообщение начинает отправляться, пока вы перетаскиваете, ничего не перемещается, и об этом сообщает уведомление.
|
|
237
237
|
- dsh 0.2.1 загружает обновление сразу, если новая версия не меняет никаких настроек dsh; в остальных случаях, а также в dsh 0.2.0, перезапустите dsh, чтобы загрузить его. Плагин никогда не перезапускает dsh за вас. Профили Web/CLI без менеджера плагинов dsh только сообщают о новой версии.
|
|
238
238
|
- **Что нового в Composer Plus N** показывает примечания на языке из **Язык приложения**. Язык интерфейса с другим регионом получает примечания своего основного языка (`en-GB` — английские, `zh-TW` — китайские примечания `zh`). Для языка без примечаний (его добавляет другой языковой пакет, или это `pt-PT`, а не `pt-BR`) показываются английские примечания. Примечания приходят вместе с новой версией. Если у запущенной копии нет читаемого файла примечаний (`release-notes.json`), окно показывает английские примечания с GitHub.
|
|
239
|
+
- Версия, установленная во время работы dsh (обновление через Настройки → Плагины или скопированную папку), загружается только после перезапуска dsh: до этого **Обновления Composer Plus** показывает запущенную версию и просит перезапустить dsh. Её окно **Что нового в Composer Plus N** показывается один раз при первом запуске этой версии. Первый запуск после установки плагина не показывает окно; **Что нового в этой версии** открывает примечания запущенной версии.
|
|
239
240
|
- **Отклонить с примечанием** отправляет примечание как сообщение в ожидающий ход, а затем отклоняет запрос; dsh показывает примечание в чате как ваше сообщение. Пока поле примечания открыто, карточка показывает только **Отмена** и **Отклонить**, поэтому щелчок не может по ошибке разрешить запрос; `Esc` или **Отмена** возвращает кнопки dsh. Пустое примечание ничего не отправляет (используйте собственную кнопку **Отклонить** в dsh). Если отклонить запрос не удалось уже после отправки примечания (например, на запрос тем временем ответили в другом месте), примечание остаётся в чате, и модель прочитает его на своём следующем шаге. Кнопка встраивается в разметку карточки одобрения dsh (`data-approval-key`), потому что в dsh нет места для действий карточки; если обновление dsh изменит эту разметку, кнопка не появится, а собственная кнопка **Отклонить** в dsh работает как раньше. Примечание может содержать не более 4 000 символов.
|
|
240
241
|
- **Ввод секрета** скрывает только точный текст значения: в следующих результатах инструментов того же чата его заменяет `[secret]`. Агент всё равно может прочитать файл командой shell и вывести значение в другой форме (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.tr.md
CHANGED
|
@@ -29,7 +29,7 @@ dsh plugin --profile web add dsh-composer-plus
|
|
|
29
29
|
|
|
30
30
|
Sonra dsh’yi yeniden başlatın. (CLI, masaüstü profiline yükleme yapamaz; bu profili uygulama yönetir.)
|
|
31
31
|
|
|
32
|
-
> dsh’nin pnpm’i, yayımlanmasının üzerinden 24 saat geçmemiş sürümleri atlar. Bir yayından hemen sonra sürümü ekleyin: `dsh-composer-plus@1.21.
|
|
32
|
+
> dsh’nin pnpm’i, yayımlanmasının üzerinden 24 saat geçmemiş sürümleri atlar. Bir yayından hemen sonra sürümü ekleyin: `dsh-composer-plus@1.21.1`.
|
|
33
33
|
|
|
34
34
|
## Özellikler
|
|
35
35
|
|
|
@@ -100,7 +100,7 @@ Sonra dsh’yi yeniden başlatın. (CLI, masaüstü profiline yükleme yapamaz;
|
|
|
100
100
|
| **Uygulama dili** | <a id="feature-language"></a>Ayarlar → Composer Plus → **Uygulama dili**, dsh arayüzünün tamamını Türkçe, Español, Português (Brasil), Français, Deutsch, Русский, 日本語, 한국어, Bahasa Indonesia, Tiếng Việt veya हिन्दी diline geçirir (aşağıya bakın). | <a href="assets/features/language.webp"><img src="assets/features/language.webp" width="160" alt="Ekran görüntüsü: Uygulama dili"></a> |
|
|
101
101
|
| **Mobil bağlantı (iPhone)** | <a id="feature-mobileconnect"></a>dsh’yi iPhone’unuzdan [Tether](tether/) uygulamasıyla, aynı Wi-Fi ağında ya da [Tailscale](https://tailscale.com) üzerinden kullanın. Özelliği **Ayarlar → Composer Plus** içinden açın (varsayılan olarak kapalıdır, çünkü bu Mac’te bir ağ portu açar). Sonra kenar çubuğunun sol altındaki **Mobil bağlantı** düğmesine tıklayın. QR kodunu iPhone’un Kamera uygulamasıyla (**Open in Tether** düğmesine dokunun) ya da Tether’deki **Scan code** ile tarayın. **Connect** düğmesine dokunun ve **Approve** düğmesine tıklayın. Önce Tether’i yükleyin: Tether yüklü değilse Kamera bu kodu açamaz. Telefon sohbetlerinizi gösterir, mesaj gönderir (fotoğraflarla birlikte: mesaj alanındaki **+** → Camera, Photos ya da Paste image), onayları ve soruları yanıtlar, modelleri ve ajanları değiştirir. İstediğiniz kadar Mac eşleştirebilirsiniz: uygulamanın sol üstündeki Mac adıyla Mac’ler arasında geçiş yaparsınız. **Mobil bağlantı** paneli eşleştirilmiş iPhone’ları son bağlantı zamanlarıyla listeler: **Remove** ile birinin bağlantısını hemen kesersiniz. “Tailscale only” yerel ağı reddeder (paylaşılan bir Wi-Fi için) ve erişim günlüğü kimin bağlanmayı denediğini gösterir. Tether’de “Settings → Privacy” uygulamayı Face ID ile kilitler. | <a href="assets/features/mobileConnect.webp"><img src="assets/features/mobileConnect.webp" width="160" alt="Ekran görüntüsü: Mobil bağlantı (iPhone)"></a> |
|
|
102
102
|
| **Uzak bilgisayarlar** | <a id="feature-remotecomputers"></a>Diğer Mac’lerinizdeki dsh’yi [Tailscale](https://tailscale.com) üzerinden açın ve sohbetlerine burada devam edin. Özelliği her Mac’te **Ayarlar → Composer Plus** içinden açın (varsayılan olarak kapalıdır, çünkü ağ portları açar). Açmak istediğiniz Mac’te **Diğer bilgisayarların bu Mac’i açmasına izin ver** seçeneğini açın, **Eşleştirme bağlantısı oluştur** düğmesine tıklayın ve bağlantıyı kopyalayın. Bu Mac’te sohbet başlığının solundaki bilgisayar seçicide **Bilgisayar ekle…** seçeneğini seçin, bağlantıyı yapıştırın ve **Bağlan** düğmesine tıklayın. Sonra diğer Mac’te **Onayla** düğmesine tıklayın. Bundan sonra seçici **Bu Mac** ile bilgisayarlarınızı listeler: birini seçin, onun dsh’si sağ kenar çubuğunun Tarayıcı sekmesinde (ya da bir tarayıcı penceresinde) açılır. Orada o bilgisayarın kendi sohbetleri, araçları ve dosyaları vardır. Ayarlar panelinde bilgisayarları yeniden adlandırabilir ve kaldırabilirsiniz. Panel, bu Mac’i açabilen bilgisayarları da listeler (**Kaldır** birinin bağlantısını hemen keser). | <a href="assets/features/remoteComputers.webp"><img src="assets/features/remoteComputers.webp" width="160" alt="Ekran görüntüsü: Uzak bilgisayarlar"></a> |
|
|
103
|
-
| **Otomatik güncellemeler** | <a id="feature-autoupdate"></a>dsh açıldığında eklenti [en son GitHub sürümünü](https://github.com/furkancak1r/dsh-composer-plus/releases/latest) denetler. Bu sürüm daha yeniyse ve npm’de de varsa, tam olarak o sürümü dsh’nin kendi eklenti yöneticisiyle yükler (Ayarlar → Eklentiler ile aynı yol) ve size bildirir. Yeni sürümü yüklemek için dsh’yi yeniden başlatın. **Ayarlar → Composer Plus → Composer Plus güncellemeleri** sürümü gösterir. **Güncellemeleri denetle** / **Şimdi güncelle** düğmeleri de buradadır. dsh yeni sürümle ilk kez açıldığında **Composer Plus N sürümündeki yenilikler** penceresi o sürümün sürüm notlarını **Uygulama dili** ayarındaki dilde bir kez gösterir (notlar yeni sürümle birlikte gelir, ek ağ çağrısı yapılmaz; notu olmayan bir dilde İngilizce notlar görünür). **Kapat** düğmesi ya da `Esc` pencereyi kapatır. | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="Ekran görüntüsü: Otomatik güncellemeler"></a> |
|
|
103
|
+
| **Otomatik güncellemeler** | <a id="feature-autoupdate"></a>dsh açıldığında eklenti [en son GitHub sürümünü](https://github.com/furkancak1r/dsh-composer-plus/releases/latest) denetler. Bu sürüm daha yeniyse ve npm’de de varsa, tam olarak o sürümü dsh’nin kendi eklenti yöneticisiyle yükler (Ayarlar → Eklentiler ile aynı yol) ve size bildirir. Yeni sürümü yüklemek için dsh’yi yeniden başlatın. **Ayarlar → Composer Plus → Composer Plus güncellemeleri** sürümü gösterir. **Güncellemeleri denetle** / **Şimdi güncelle** düğmeleri de buradadır. dsh yeni sürümle ilk kez açıldığında **Composer Plus N sürümündeki yenilikler** penceresi o sürümün sürüm notlarını **Uygulama dili** ayarındaki dilde bir kez gösterir (notlar yeni sürümle birlikte gelir, ek ağ çağrısı yapılmaz; notu olmayan bir dilde İngilizce notlar görünür). **Kapat** düğmesi ya da `Esc` pencereyi kapatır. Pencere, Ayarlar → Eklentiler ya da kopyalanan bir klasörle yapılan güncellemeden sonra da her yeni sürümde bir kez açılır; ilk kurulumda açılmaz. Güncelleme satırındaki **Bu sürümdeki yenilikler** pencereyi yeniden açar. Diskteki sürüm çalışan sürümden yeniyse satır dsh’yi yeniden başlatmanızı söyler. | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="Ekran görüntüsü: Otomatik güncellemeler"></a> |
|
|
104
104
|
| **Yedekleme** | <a id="feature-backup"></a>Ayarlar → Composer Plus → **Yedekleme** → **Şimdi yedekle**, dsh ana klasörünüzün tamamını (sohbetler, ayarlar, eklentiler, MCP, beceriler) sağlama toplamıyla birlikte `~/Desktop/dsh-backups` içindeki tek bir arşive yazar. Gizli bilgiler arşivde maskelenir: kimlik bilgisi dosyaları, anahtar dosyaları (`.pem`, `.key`) ve yml ayarlarındaki token, secret ve password değerleri yalnızca bu bilgisayarda, klasördeki `vault` içinde kalır. `cache/`, `dsh-runtimes/` ve `node_modules` arşive girmez (dsh bunları yeniden oluşturur). Listedeki her yedekte **Kontrol et** (yedeği baştan sona okur), **Başka bir bilgisayar için** (yeni bilgisayara kopyalanacak, kurtarma konsolunu da içeren bir klasör) ve **Sil** vardır. Aynı klasördeki dsh-backup arşivleri de listede görünür ve kullanılabilir. Geri yüklemek için dsh’den çıkın ve kurtarma konsolunu kullanın. | <a href="assets/features/backup.webp"><img src="assets/features/backup.webp" width="160" alt="Ekran görüntüsü: Yedekleme"></a> |
|
|
105
105
|
| **Otomatik yedekleme** | <a id="feature-autobackup"></a>**Otomatik yedekleme** özelliğini açın (varsayılan olarak kapalıdır: her kopya, önbelleği hariç dsh ana klasörünüz kadar yer kaplar). Ne sıklıkla yedekleneceğini (**Sıklık**: 6 saatten 7 güne kadar, varsayılan 24 saat) ve kaç yedeğin saklanacağını (**Sakla**: 3 ile 14 arası, varsayılan 7) seçin. Sonraki yedekleme zamanı anahtarın altında görünür. Başarısız bir yedekleme de orada görünür ve 30 dakika sonra yeniden denenir. dsh ya da Composer Plus yeni bir sürümle açıldığında, açılıştan kısa süre sonra, yeni sürüm verilerinizi uzun süre kullanmadan önce bir anlık görüntü alınır (en yeni ikisi saklanır ve **Yükseltmeden önce** olarak işaretlenir). | <a href="assets/features/autoBackup.webp"><img src="assets/features/autoBackup.webp" width="160" alt="Ekran görüntüsü: Otomatik yedekleme"></a> |
|
|
106
106
|
| **Oturum günlüğü kontrolü** | <a id="feature-sessiondoctor"></a>**Oturum günlüklerini kontrol et**, her sohbetin günlüğünü okur ve dsh’nin açamadığı günlükleri listeler (bozuk bir çerçeve, kesik bir kayıt, yanlış bir sıra numarası). Sonu yarım kalmış bir günlük listelenmez: dsh onu kendisi onarır. **Yedeklerden onar**, sağlam kopyası olan en yeni yedekteki kopyayı geri koyar ve hasarlı dosyayı yanında saklar (`.corrupt-<zaman>`). O yedekten sonra yazılan mesajlar kopyada yoktur. Bu dsh’de açık olan bir sohbet burada onarılmaz: dsh’den çıkın ve sohbeti kurtarma konsolunda onarın. | <a href="assets/features/sessionDoctor.webp"><img src="assets/features/sessionDoctor.webp" width="160" alt="Ekran görüntüsü: Oturum günlüğü kontrolü"></a> |
|
|
@@ -215,7 +215,7 @@ dsh `0.2.0-rc.2` (masaüstü ve web) ve `0.2.1-rc.2` (web) üzerinde test edildi
|
|
|
215
215
|
- **Bir sohbet satırında dal etiketi yok:** kenar çubuğu “Tek listede” görünümünde değil (“Çalışma alanı” ve “Çalışma alanı ağacı” görünümlerinde hiçbir sohbet satırında etiket görünmez), bu sürümü yüklediğinizden beri sohbette hiç tur olmadı, sohbetin klasörü bir git deposu değil ya da **Sohbet satırlarında Git dalı** kapalı. Bir güncellemeden sonra dsh’yi yeniden başlatın (dalı Host tarafı kaydeder).
|
|
216
216
|
- **Hedef kontrolü, testin 127 koduyla ya da "not found" ile çıktığını söylüyor:** Finder’dan veya Dock’tan başlatılan dsh’nin PATH’i terminalinizdekinden daha kısa olabilir. Bu yüzden dsh `npm`, `pnpm` veya `cargo` aracını bulamaz. dsh’yi bir terminalden başlatın ya da **Hedef kontrolü** → **Düzenle** içinde tam yolu olan kendi test komutunuzu belirleyin. **Şimdi çalıştır** sonucu hemen gösterir.
|
|
217
217
|
- **Hedef kapanmıyor ve ajan çalışmaya devam ediyor:** **Hedef kontrolü** başarısız bir test ya da eksik bir iş buldu. Hedefin altındaki satır nedenini gösterir (ayrıntılar için imleci sonucun üzerine getirin). Nedeni ya da test komutunu düzeltin veya hedefi `/goal` ya da hedef çubuğuyla kendiniz tamamlayın (bu tamamlama kontrol edilmez).
|
|
218
|
-
- **Bir yayından hemen sonra yükleme başarısız oluyor:** sürümü ekleyin (`dsh-composer-plus@1.21.
|
|
218
|
+
- **Bir yayından hemen sonra yükleme başarısız oluyor:** sürümü ekleyin (`dsh-composer-plus@1.21.1`) ve yukarıdaki kurulum notuna bakın.
|
|
219
219
|
- **Şimdi yedekle, "Başka bir yedekleme işlemi sürüyor" diyor:** başka bir dsh penceresinde ya da kurtarma konsolunda bir işlem çalışıyor (ikisi, yedek klasöründeki `.composer-plus.lock` kilit dosyasını paylaşır). İşlemin bitmesini bekleyin. Çalışan bir işlem yoksa, kapanmış bir sürecin kilidi bir sonraki tıklamada devralınır.
|
|
220
220
|
- **Kurtarma konsolu "dsh is running" diyor:** önce dsh’den çıkın. dsh gerçekten kapalıysa mesajda adı geçen dosya bir çökmeden kalmıştır: dosyayı silin ve yeniden deneyin.
|
|
221
221
|
- **Geri yüklemeden sonra dsh açılmıyor ya da bir eklenti eksik:** bir profilin eklenti paketlerinin yeniden yüklenmesi gerekir. Kurtarma konsolu bunu geri yüklemeden sonra önerir. Ya da konsolun listelediği, `$DSH_HOME/profiles/` altındaki her klasörde `pnpm install` komutunu çalıştırın. Vault’ta olmayan gizli bilgiler (başka bir bilgisayar) yeniden girilmelidir: konsol bunları listeler.
|
|
@@ -236,6 +236,7 @@ dsh `0.2.0-rc.2` (masaüstü ve web) ve `0.2.1-rc.2` (web) üzerinde test edildi
|
|
|
236
236
|
- dsh’nin kuyruğunda `move` işlemi yoktur. Bu yüzden eklentinin Host tarafı, sıradaki mesajın kendisini dsh’nin kuyruğunda taşır (tek bir değişiklik, aynı mesaj). Görsel veya dosya içeren mesajlar da taşınır. Yalnızca kendi mesajlarınız taşınır: kuyruktaki bir hedef turu veya bir soruya verilen yanıt yerinde kalır. Siz sürüklerken bir mesajın gönderimi başlarsa hiçbir şey taşınmaz ve bunu bildiren bir uyarı görünür.
|
|
237
237
|
- dsh 0.2.1, yeni sürüm hiçbir dsh ayarını değiştirmiyorsa güncellemeyi hemen yükler. Aksi durumda ve dsh 0.2.0’da güncellemeyi yüklemek için dsh’yi yeniden başlatın. Eklenti dsh’yi sizin yerinize hiçbir zaman yeniden başlatmaz. dsh’nin eklenti yöneticisi olmayan web/CLI profilleri yalnızca yeni sürümü bildirir.
|
|
238
238
|
- **Composer Plus N sürümündeki yenilikler** penceresi notları **Uygulama dili** ayarındaki dilde gösterir. Başka bir bölgeye ait bir arayüz dili, ana dilinin notlarını alır (`en-GB` İngilizce notları, `zh-TW` ise `zh` Çince notlarını gösterir). Notu olmayan bir dil (başka bir dil paketinin eklediği bir dil ya da `pt-BR` olmayan `pt-PT`) İngilizce notları gösterir. Notlar yeni sürümle birlikte gelir. Çalışan kopyada okunabilir bir not dosyası (`release-notes.json`) yoksa pencere GitHub’daki İngilizce notları gösterir.
|
|
239
|
+
- dsh çalışırken yüklenen bir sürüm (Ayarlar → Eklentiler ya da kopyalanan bir klasörle yapılan güncelleme) ancak dsh yeniden başlatılınca yüklenir. O zamana kadar **Composer Plus güncellemeleri** çalışan sürümü gösterir ve yeniden başlatmanızı ister. O sürümün **Composer Plus N sürümündeki yenilikler** penceresi, sürümün ilk açılışında bir kez görünür. Eklenti ilk kez kurulduktan sonraki ilk açılışta pencere görünmez. **Bu sürümdeki yenilikler** çalışan sürümün notlarını açar.
|
|
239
240
|
- **Not ile reddet** notu bekleyen tura bir mesaj olarak gönderir, sonra isteği reddeder. dsh notu sohbette sizin mesajınız olarak gösterir. Not alanı açıkken kart yalnızca **İptal** ve **Reddet** düğmelerini gösterir. Böylece bir tıklama isteğe yanlışlıkla izin veremez. `Esc` ya da **İptal**, dsh’nin düğmelerini geri getirir. Boş bir not hiçbir şey göndermez (dsh’nin kendi **Reddet** düğmesini kullanın). Not gittikten sonra ret başarısız olursa (örneğin istek bu arada başka bir yerde yanıtlandıysa) not sohbette kalır ve model onu bir sonraki adımında okur. Düğme dsh’nin onay kartı işaretlemesine (`data-approval-key`) eklenir, çünkü dsh’de kart işlemleri için bir yuva yoktur. Bir dsh güncellemesi bu işaretlemeyi değiştirirse düğme görünmez ve dsh’nin kendi **Reddet** düğmesi eskisi gibi çalışır. Bir not en çok 4.000 karakter olabilir.
|
|
240
241
|
- **Gizli değer girişi** yalnız değerin tam metnini gizler: aynı sohbetin sonraki araç sonuçlarında değerin yerine `[secret]` yazılır. Ancak ajan dosyayı bir kabuk komutuyla okuyup değeri başka bir biçimde (base64, bir parçası, araya boşluk koyarak) yazdırabilir; bu biçim modele ulaşır. Ajanın kendi dosya araçları (read, grep, write, edit) gizli değer klasörünü açamaz. Değer aynı zamanda sık kullanılan bir sözcükse, o sohbetin başka sonuçlarında da `[secret]` görünür. Dosya tur bitene kadar kalır; dsh tur sırasında kapanırsa sonraki açılışta silinir. Bir sohbette aynı anda tek istek açık olabilir. Araç her model isteğine yaklaşık 870 karakter (tahminen 220 token) ekler; kullanmıyorsanız kapatın.
|
|
241
242
|
- **Yanıtta alıntıla**, metni sayfada göründüğü gibi alıntılar: kod bloğu, tablo ya da liste, Markdown işaretleri olmadan düz satırlar olarak gelir. Bir yanıtta başlayıp başka bir yanıtta biten ya da düşünme adımlarına, bir araç satırına veya kendi mesajınıza değen bir seçimde düğme görünmez: tek bir yanıtın içinde seçin. Düğme yanıtı dsh'nin sohbet yapısından bulur, çünkü dsh'de metin seçimi için bir slot yok. Bir dsh güncellemesi bu yapıyı değiştirirse düğme görünmez. Alıntı yazma alanının sonuna gelirse ardına bir boş satır daha eklenir; böylece yazdığınız sonraki satır alıntının altında başlar. dsh gönderirken sondaki boş satırları kaldırır.
|
|
@@ -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.vi.md
CHANGED
|
@@ -29,7 +29,7 @@ dsh plugin --profile web add dsh-composer-plus
|
|
|
29
29
|
|
|
30
30
|
Sau đó khởi động lại dsh. (CLI không cài được vào profile desktop; ứng dụng tự quản lý profile này.)
|
|
31
31
|
|
|
32
|
-
> pnpm của dsh bỏ qua các phiên bản ra mắt chưa đủ 24 giờ. Ngay sau một bản phát hành, hãy thêm số phiên bản: `dsh-composer-plus@1.21.
|
|
32
|
+
> pnpm của dsh bỏ qua các phiên bản ra mắt chưa đủ 24 giờ. Ngay sau một bản phát hành, hãy thêm số phiên bản: `dsh-composer-plus@1.21.1`.
|
|
33
33
|
|
|
34
34
|
## Tính năng
|
|
35
35
|
|
|
@@ -100,7 +100,7 @@ Sau đó khởi động lại dsh. (CLI không cài được vào profile deskto
|
|
|
100
100
|
| **Ngôn ngữ ứng dụng** | <a id="feature-language"></a>Cài đặt → Composer Plus → **Ngôn ngữ ứng dụng** chuyển toàn bộ giao diện dsh sang Türkçe, Español, Português (Brasil), Français, Deutsch, Русский, 日本語, 한국어, Bahasa Indonesia, Tiếng Việt hoặc हिन्दी (xem bên dưới). | <a href="assets/features/language.webp"><img src="assets/features/language.webp" width="160" alt="Ảnh chụp màn hình: Ngôn ngữ ứng dụng"></a> |
|
|
101
101
|
| **Kết nối di động (iPhone)** | <a id="feature-mobileconnect"></a>Dùng dsh từ iPhone với ứng dụng [Tether](tether/), trong cùng mạng Wi-Fi hoặc qua [Tailscale](https://tailscale.com). Bật tính năng trong **Cài đặt → Composer Plus** (mặc định tắt, vì tính năng này mở một cổng mạng trên máy Mac này). Sau đó nhấp **Kết nối di động** ở góc dưới bên trái thanh bên: quét mã QR bằng Camera của iPhone (chạm vào **Open in Tether**) hoặc bằng **Scan code** trong Tether, chạm vào **Connect** và nhấp **Approve**. Hãy cài đặt Tether trước: nếu không có Tether, Camera không thể mở mã này. Điện thoại hiện các cuộc trò chuyện của bạn, gửi tin nhắn (kèm ảnh: **+** trong khung soạn thảo → Camera, Photos hoặc Paste image), trả lời phê duyệt và câu hỏi, và chuyển đổi mô hình và agent. Bạn có thể ghép nối bao nhiêu máy Mac tùy ý: tên máy Mac ở góc trên bên trái ứng dụng dùng để chuyển giữa các máy. Bảng **Kết nối di động** liệt kê các iPhone đã ghép nối kèm lần kết nối gần nhất: **Remove** ngắt ngay một máy. “Tailscale only” từ chối mạng cục bộ (dành cho Wi-Fi dùng chung), và nhật ký truy cập cho biết ai đã thử kết nối. Trong Tether, “Settings → Privacy” khóa ứng dụng bằng Face ID. | <a href="assets/features/mobileConnect.webp"><img src="assets/features/mobileConnect.webp" width="160" alt="Ảnh chụp màn hình: Kết nối di động (iPhone)"></a> |
|
|
102
102
|
| **Máy tính từ xa** | <a id="feature-remotecomputers"></a>Mở dsh của các máy Mac khác của bạn qua [Tailscale](https://tailscale.com) và tiếp tục các cuộc trò chuyện của chúng tại đây. Bật tính năng trong **Cài đặt → Composer Plus** trên từng máy Mac (mặc định tắt, vì tính năng này mở các cổng mạng). Trên máy Mac bạn muốn mở, bật **Cho phép máy tính khác mở máy Mac này**, nhấp **Tạo liên kết ghép nối** và sao chép liên kết. Trên máy Mac này, chọn **Thêm máy tính…** trong bộ chọn máy tính ở bên trái tiêu đề cuộc trò chuyện, dán liên kết và nhấp **Kết nối**. Sau đó nhấp **Phê duyệt** trên máy Mac kia. Từ đó, bộ chọn liệt kê **Máy Mac này** và các máy tính của bạn: chọn một máy, và dsh của máy đó mở trong tab Trình duyệt của thanh bên phải (hoặc trong một cửa sổ trình duyệt), với các cuộc trò chuyện, công cụ và tệp của chính máy đó. Bảng Cài đặt đổi tên và xóa máy tính, và liệt kê các máy tính có thể mở máy Mac này (**Xóa** ngắt ngay một máy). | <a href="assets/features/remoteComputers.webp"><img src="assets/features/remoteComputers.webp" width="160" alt="Ảnh chụp màn hình: Máy tính từ xa"></a> |
|
|
103
|
-
| **Tự động cập nhật** | <a id="feature-autoupdate"></a>Khi dsh khởi động, plugin kiểm tra [bản phát hành GitHub mới nhất](https://github.com/furkancak1r/dsh-composer-plus/releases/latest). Nếu bản đó mới hơn và đã có trên npm, plugin cài đúng phiên bản đó qua trình quản lý plugin của chính dsh (cùng cách với Cài đặt → Plugin) và thông báo cho bạn. Khởi động lại dsh để tải bản mới. **Cài đặt → Composer Plus → Cập nhật Composer Plus** hiện phiên bản và có nút **Kiểm tra cập nhật** / **Cập nhật ngay**. Lần đầu dsh khởi động với phiên bản mới, cửa sổ **Có gì mới trong Composer Plus N** hiện ghi chú phát hành của phiên bản đó một lần bằng ngôn ngữ trong **Ngôn ngữ ứng dụng** (ghi chú đi kèm phiên bản mới, không gọi mạng thêm; ngôn ngữ không có ghi chú sẽ hiện ghi chú tiếng Anh); **Đóng** hoặc `Esc` đóng nó. | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="Ảnh chụp màn hình: Tự động cập nhật"></a> |
|
|
103
|
+
| **Tự động cập nhật** | <a id="feature-autoupdate"></a>Khi dsh khởi động, plugin kiểm tra [bản phát hành GitHub mới nhất](https://github.com/furkancak1r/dsh-composer-plus/releases/latest). Nếu bản đó mới hơn và đã có trên npm, plugin cài đúng phiên bản đó qua trình quản lý plugin của chính dsh (cùng cách với Cài đặt → Plugin) và thông báo cho bạn. Khởi động lại dsh để tải bản mới. **Cài đặt → Composer Plus → Cập nhật Composer Plus** hiện phiên bản và có nút **Kiểm tra cập nhật** / **Cập nhật ngay**. Lần đầu dsh khởi động với phiên bản mới, cửa sổ **Có gì mới trong Composer Plus N** hiện ghi chú phát hành của phiên bản đó một lần bằng ngôn ngữ trong **Ngôn ngữ ứng dụng** (ghi chú đi kèm phiên bản mới, không gọi mạng thêm; ngôn ngữ không có ghi chú sẽ hiện ghi chú tiếng Anh); **Đóng** hoặc `Esc` đóng nó. Cửa sổ cũng hiện sau khi cập nhật qua Cài đặt → Plugin hoặc một thư mục được sao chép, một lần cho mỗi phiên bản mới; không hiện ở lần cài đặt đầu tiên. **Có gì mới trong phiên bản này** ở hàng cập nhật mở lại cửa sổ. Khi trên đĩa có phiên bản mới hơn phiên bản đang chạy, hàng này yêu cầu khởi động lại dsh. | <a href="assets/features/autoUpdate.webp"><img src="assets/features/autoUpdate.webp" width="160" alt="Ảnh chụp màn hình: Tự động cập nhật"></a> |
|
|
104
104
|
| **Sao lưu** | <a id="feature-backup"></a>Cài đặt → Composer Plus → **Sao lưu** → **Sao lưu ngay** ghi toàn bộ thư mục home của dsh (cuộc trò chuyện, cài đặt, plugin, MCP, skill) vào một tệp lưu trữ duy nhất trong `~/Desktop/dsh-backups`, kèm checksum. Thông tin bí mật được che trong tệp lưu trữ: các tệp thông tin xác thực, tệp khóa (`.pem`, `.key`) và các giá trị token, secret và password trong cài đặt yml chỉ ở lại trên máy tính này, trong `vault` của thư mục. `cache/`, `dsh-runtimes/` và `node_modules` không có trong tệp lưu trữ (dsh tạo lại chúng). Mỗi bản sao lưu trong danh sách có **Kiểm tra** (đọc hết bản sao lưu), **Cho máy tính khác** (một thư mục để sao chép sang máy tính mới, kèm bảng điều khiển cứu hộ) và **Xóa**. Các tệp lưu trữ của dsh-backup trong cùng thư mục cũng hiện ra và dùng được. Để khôi phục, hãy thoát dsh và dùng bảng điều khiển cứu hộ. | <a href="assets/features/backup.webp"><img src="assets/features/backup.webp" width="160" alt="Ảnh chụp màn hình: Sao lưu"></a> |
|
|
105
105
|
| **Tự động sao lưu** | <a id="feature-autobackup"></a>Bật **Tự động sao lưu** (mặc định tắt: mỗi bản sao có dung lượng gần bằng thư mục home của dsh khi không tính bộ nhớ đệm). Chọn tần suất (**Mỗi**: từ 6 giờ đến 7 ngày, mặc định 24 giờ) và số bản sao lưu được giữ (**Giữ**: từ 3 đến 14, mặc định 7). Thời điểm tiếp theo hiện bên dưới công tắc; một lần sao lưu thất bại cũng hiện ở đó và được thử lại sau 30 phút. Khi dsh hoặc Composer Plus khởi động với phiên bản mới, một snapshot được tạo ngay sau khi khởi động, trước khi phiên bản mới dùng dữ liệu của bạn lâu (hai bản mới nhất được giữ, đánh dấu **Trước khi nâng cấp**). | <a href="assets/features/autoBackup.webp"><img src="assets/features/autoBackup.webp" width="160" alt="Ảnh chụp màn hình: Tự động sao lưu"></a> |
|
|
106
106
|
| **Kiểm tra sức khỏe nhật ký phiên** | <a id="feature-sessiondoctor"></a>**Kiểm tra nhật ký phiên** đọc nhật ký của mọi cuộc trò chuyện và liệt kê những nhật ký mà dsh không mở được (frame bị hỏng, bản ghi bị cắt, số thứ tự sai). Phần cuối bị dở dang không được liệt kê: dsh tự sửa phần đó. **Sửa từ bản sao lưu** đưa bản sao từ bản sao lưu mới nhất có bản còn tốt trở lại, và giữ tệp bị hỏng ngay bên cạnh (`.corrupt-<thời gian>`). Các tin nhắn viết sau bản sao lưu đó không có trong bản sao. Cuộc trò chuyện đang mở trong dsh này không được sửa ở đây: hãy thoát dsh và sửa nó trong bảng điều khiển cứu hộ. | <a href="assets/features/sessionDoctor.webp"><img src="assets/features/sessionDoctor.webp" width="160" alt="Ảnh chụp màn hình: Kiểm tra sức khỏe nhật ký phiên"></a> |
|
|
@@ -215,7 +215,7 @@ Khi menu `/` hoặc `@` đang mở, menu đó giữ các phím này cho riêng n
|
|
|
215
215
|
- **Dòng cuộc trò chuyện không có nhãn branch:** thanh bên không ở chế độ xem “Trong một danh sách” (trong “Không gian làm việc” và “Cây không gian làm việc”, không dòng cuộc trò chuyện nào hiển thị nhãn), cuộc trò chuyện chưa có lượt nào kể từ khi bạn cài phiên bản này, thư mục của nó không phải repository git, hoặc **Branch Git trên dòng cuộc trò chuyện** đang tắt. Sau khi cập nhật, hãy khởi động lại dsh (phần Host ghi lại branch).
|
|
216
216
|
- **Kiểm tra mục tiêu báo bài kiểm thử thoát với mã 127 hoặc "not found":** dsh khởi động từ Finder hoặc Dock có thể có PATH ngắn hơn terminal của bạn, nên không tìm thấy `npm`, `pnpm` hoặc `cargo`. Hãy khởi động dsh từ terminal, hoặc đặt lệnh kiểm thử của riêng bạn với đường dẫn đầy đủ trong **Kiểm tra mục tiêu** → **Sửa**. **Chạy ngay** hiện kết quả ngay lập tức.
|
|
217
217
|
- **Mục tiêu không đóng và tác tử tiếp tục làm việc:** **Kiểm tra mục tiêu** đã tìm thấy một bài kiểm thử thất bại hoặc phần việc còn thiếu; dòng bên dưới mục tiêu cho biết lý do (di chuột lên kết quả để xem chi tiết). Hãy sửa nguyên nhân hoặc lệnh kiểm thử, hoặc tự hoàn tất mục tiêu bằng `/goal` hoặc thanh mục tiêu (việc này không được kiểm tra).
|
|
218
|
-
- **Cài đặt thất bại ngay sau một bản phát hành:** thêm số phiên bản (`dsh-composer-plus@1.21.
|
|
218
|
+
- **Cài đặt thất bại ngay sau một bản phát hành:** thêm số phiên bản (`dsh-composer-plus@1.21.1`), xem ghi chú cài đặt ở trên.
|
|
219
219
|
- **Sao lưu ngay báo "Một thao tác sao lưu khác đang chạy":** một thao tác đang chạy trong cửa sổ dsh khác hoặc trong bảng điều khiển cứu hộ (chúng dùng chung tệp khóa `.composer-plus.lock` trong thư mục sao lưu). Hãy chờ thao tác đó xong. Nếu không có thao tác nào đang chạy, khóa của tiến trình đã đóng sẽ được tiếp quản ở lần nhấp tiếp theo.
|
|
220
220
|
- **Bảng điều khiển cứu hộ báo "dsh is running":** trước tiên hãy thoát dsh. Nếu dsh thật sự đã đóng, tệp được nêu trong thông báo là phần còn sót lại sau một sự cố: hãy xóa tệp đó rồi thử lại.
|
|
221
221
|
- **Sau khi khôi phục, dsh không khởi động hoặc thiếu một plugin:** cần cài lại các gói plugin của profile. Bảng điều khiển cứu hộ đề nghị việc này sau khi khôi phục; hoặc chạy `pnpm install` trong từng thư mục dưới `$DSH_HOME/profiles/` mà nó liệt kê. Các thông tin bí mật không có trong vault (máy tính khác) phải được nhập lại: bảng điều khiển liệt kê chúng.
|
|
@@ -236,6 +236,7 @@ Khi menu `/` hoặc `@` đang mở, menu đó giữ các phím này cho riêng n
|
|
|
236
236
|
- Hàng đợi của dsh không có thao tác `move`, nên phần Host của plugin di chuyển chính tin nhắn đang chờ trong hàng đợi của dsh (một thay đổi, vẫn là tin nhắn đó). Tin nhắn có hình ảnh hoặc tệp cũng di chuyển được. Chỉ tin nhắn của chính bạn mới di chuyển được: một vòng mục tiêu hoặc một câu trả lời cho câu hỏi trong hàng đợi vẫn ở nguyên chỗ. Nếu một tin nhắn bắt đầu được gửi trong lúc bạn kéo, không có gì được di chuyển và một thông báo cho biết điều đó.
|
|
237
237
|
- dsh 0.2.1 tải bản cập nhật ngay lập tức khi phiên bản mới không thay đổi cài đặt nào của dsh; trong các trường hợp khác và trên dsh 0.2.0, hãy khởi động lại dsh để tải bản cập nhật. Plugin không bao giờ tự khởi động lại dsh thay bạn. Profile web/CLI không có trình quản lý plugin của dsh chỉ báo có phiên bản mới.
|
|
238
238
|
- **Có gì mới trong Composer Plus N** hiện ghi chú bằng ngôn ngữ trong **Ngôn ngữ ứng dụng**. Ngôn ngữ giao diện có vùng khác sẽ nhận ghi chú của ngôn ngữ gốc (`en-GB` nhận ghi chú tiếng Anh, `zh-TW` nhận ghi chú tiếng Trung của `zh`). Ngôn ngữ không có ghi chú (ngôn ngữ do gói ngôn ngữ khác thêm vào, hoặc `pt-PT`, không phải `pt-BR`) sẽ hiện ghi chú tiếng Anh. Ghi chú đi kèm phiên bản mới. Nếu bản đang chạy không có tệp ghi chú đọc được (`release-notes.json`), cửa sổ hiện ghi chú tiếng Anh trên GitHub.
|
|
239
|
+
- Phiên bản được cài khi dsh đang chạy (cập nhật qua Cài đặt → Plugin hoặc một thư mục được sao chép) chỉ được tải sau khi khởi động lại dsh: đến lúc đó, **Cập nhật Composer Plus** hiện phiên bản đang chạy và yêu cầu khởi động lại. Cửa sổ **Có gì mới trong Composer Plus N** của phiên bản đó hiện một lần ở lần khởi động đầu tiên của phiên bản. Lần khởi động đầu tiên sau khi cài plugin này không hiện cửa sổ; **Có gì mới trong phiên bản này** mở ghi chú của phiên bản đang chạy.
|
|
239
240
|
- **Từ chối kèm ghi chú** gửi ghi chú như một tin nhắn vào lượt đang chờ, rồi từ chối yêu cầu; dsh hiện ghi chú trong cuộc trò chuyện như tin nhắn của bạn. Khi ô nhập ghi chú đang mở, thẻ chỉ hiện **Hủy** và **Từ chối**, nên một cú nhấp không thể vô tình cho phép yêu cầu; `Esc` hoặc **Hủy** đưa các nút của dsh trở lại. Ghi chú trống không gửi gì cả (hãy dùng nút **Từ chối** của chính dsh). Nếu việc từ chối thất bại sau khi ghi chú đã được gửi (ví dụ, trong lúc đó yêu cầu đã được trả lời ở nơi khác), ghi chú vẫn ở trong cuộc trò chuyện và mô hình đọc nó ở bước tiếp theo. Nút được đặt vào markup thẻ phê duyệt của dsh (`data-approval-key`), vì dsh không có vị trí dành cho thao tác trên thẻ; nếu một bản cập nhật dsh thay đổi markup đó, nút không hiện và nút **Từ chối** của chính dsh vẫn hoạt động như trước. Một ghi chú có tối đa 4.000 ký tự.
|
|
240
241
|
- **Nhập giá trị bí mật** chỉ ẩn đúng văn bản của giá trị: `[secret]` thay thế nó trong các kết quả công cụ sau đó của cùng cuộc trò chuyện. Agent vẫn có thể đọc tệp bằng một lệnh shell và in giá trị ở dạng khác (base64, một phần, có thêm khoảng trắng), và dạng đó đến được mô hình. Các công cụ tệp của chính agent (read, grep, write, edit) không mở được thư mục bí mật. Nếu giá trị cũng là một từ phổ biến, các kết quả khác của cuộc trò chuyện đó cũng hiện `[secret]`. Tệp còn đến khi lượt kết thúc; nếu dsh thoát giữa lượt, lần khởi động sau sẽ xóa nó. Mỗi cuộc trò chuyện chỉ có một yêu cầu mở cùng lúc. Công cụ thêm khoảng 870 ký tự (ước tính khoảng 220 token) vào mỗi yêu cầu gửi mô hình: hãy tắt khi không dùng.
|
|
241
242
|
- **Trích dẫn khi trả lời** trích văn bản đúng như trang hiển thị: khối mã, bảng hoặc danh sách thành các dòng thường, không có ký hiệu Markdown. Vùng chọn bắt đầu ở một câu trả lời và kết thúc ở câu trả lời khác, hoặc chạm vào quá trình suy nghĩ, một hàng công cụ hay tin nhắn của chính bạn, sẽ không hiện nút: hãy chọn trong một câu trả lời. Nút tìm câu trả lời qua cấu trúc trò chuyện của dsh, vì dsh không có slot cho vùng chọn văn bản; nếu bản cập nhật dsh đổi cấu trúc đó, nút sẽ không hiện. Khi trích dẫn nằm ở cuối ô nhập, thêm một dòng trống nữa để dòng bạn gõ tiếp bắt đầu bên dưới; dsh xóa các dòng trống ở cuối khi gửi.
|
|
@@ -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.zh.md
CHANGED
|
@@ -29,7 +29,7 @@ dsh plugin --profile web add dsh-composer-plus
|
|
|
29
29
|
|
|
30
30
|
然后重启 dsh。(CLI 无法安装到桌面版 profile 中;桌面版 profile 由应用自己管理。)
|
|
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** 扫描,轻点 **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 上点击 **批准**。之后选择器会列出 **本机** 和你的电脑:选择一台,它的 dsh 会在右侧边栏的浏览器标签页(或浏览器窗口)中打开,带有它自己的对话、工具和文件。设置面板可以重命名和移除电脑,并列出可以打开本机的电脑(**移除** 会立即断开其中一台)。 | <a href="assets/features/remoteComputers.webp"><img src="assets/features/remoteComputers.webp" width="160" alt="截图:远程电脑"></a> |
|
|
103
|
-
| **自动更新** | <a id="feature-autoupdate"></a>dsh 启动时,插件会检查 [最新的 GitHub release](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 release](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 @@ English · 中文 · Türkçe · Español · Português (Brasil) · Français ·
|
|
|
215
215
|
- **对话行上没有分支标签:** 侧边栏不是“单列表”视图(在“按工作区”和“按工作区树”中,对话行都不显示标签);或者安装此版本后,该对话还没有新的一轮;或者它的文件夹不是 git 仓库;或者 **对话行显示 Git 分支** 已关闭。更新后,请重启 dsh(分支由 Host 端记录)。
|
|
216
216
|
- **目标检查显示测试以代码 127 或 “not found” 退出:** 从 Finder 或程序坞启动的 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 无法启动或缺少插件:** 需要重新安装 profile 的插件包。恢复后,救援控制台会提供这一步;你也可以在它列出的 `$DSH_HOME/profiles/` 下的每个文件夹中运行 `pnpm install`。不在 vault 中的机密(另一台电脑)必须重新输入:控制台会列出它们。
|
|
@@ -236,6 +236,7 @@ English · 中文 · Türkçe · Español · Português (Brasil) · Français ·
|
|
|
236
236
|
- dsh 的队列没有 `move` 操作,所以由插件的 Host 端在 dsh 的队列中直接移动排队的消息本身(一次改动,还是同一条消息)。带有图片或文件的消息也能移动。只有你自己的消息可以移动:队列中的目标轮次或对问题的回答会留在原处。如果在你拖动时有消息开始发送,则不会移动任何消息,并会显示一条提示说明这一点。
|
|
237
237
|
- 如果新版本不改动任何 dsh 设置,dsh 0.2.1 会立即加载更新;否则(以及在 dsh 0.2.0 上),请重启 dsh 来加载更新。插件从不替你重启 dsh。没有 dsh 插件管理器的网页版/CLI profile 只会提示有新版本。
|
|
238
238
|
- **Composer Plus N 的新功能** 使用 **应用语言** 中的语言显示说明。带其他地区的界面语言使用其基础语言的说明(`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 审批卡片的标记(`data-approval-key`)中,因为 dsh 没有给卡片操作的插槽;如果 dsh 更新改变了这部分标记,按钮就不会显示,dsh 自己的 **拒绝** 照常可用。一条附言最多 4,000 个字符。
|
|
240
241
|
- **密钥输入** 只隐藏值的完整原文:同一对话之后的工具结果中,它会被替换为 `[secret]`。但代理仍然可以用 shell 命令读取文件,并以其他形式(base64、其中一部分、加入空格)输出该值,这种形式会到达模型。代理自己的文件工具(read、grep、write、edit)无法打开密钥文件夹。如果该值同时也是常见词,该对话的其他结果中也会显示 `[secret]`。文件会保留到这一轮结束;如果 dsh 在这一轮中退出,下次启动时会删除它。每个对话同一时间只能有一个未完成的请求。该工具会给每次模型请求增加约 870 个字符(估计约 220 个 token):不用时请关闭。
|
|
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
|