dsh-composer-plus 1.18.0 → 1.19.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 +13 -12
- package/README.es.md +13 -12
- package/README.fr.md +13 -12
- package/README.hi.md +13 -12
- package/README.id.md +13 -12
- package/README.ja.md +13 -12
- package/README.ko.md +13 -12
- package/README.md +13 -12
- package/README.pt-BR.md +13 -12
- package/README.ru.md +13 -12
- package/README.tr.md +13 -12
- package/README.vi.md +13 -12
- package/README.zh.md +13 -12
- package/assets/features/sessionBranch.webp +0 -0
- package/assets/features/taskBoard.webp +0 -0
- package/client.js +451 -620
- package/index.js +167 -506
- package/package.json +3 -2
- package/release-notes.json +18 -0
- package/tether/gateway/server.mjs +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-composer-plus",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.19.1",
|
|
4
4
|
"description": "DeepSeek Harness helpers: 11 extra UI languages (Türkçe, Español, Français, Deutsch, 日本語…), Changes panel, swipe-card feature ideas, sidebar search in message text, turn rollback with git file restore, delete chats to the Trash, input history, Shift+Tab /plan, one-click Continue, resume running chats after a restart, queue drag-and-drop, deeplinks, Auto Review allow-for-chat, notifications, iPhone access with the Tether app, automatic updates",
|
|
5
5
|
"icon": "./assets/icon.svg",
|
|
6
6
|
"license": "MIT",
|
|
@@ -70,6 +70,7 @@
|
|
|
70
70
|
"tether/gateway/admin.html",
|
|
71
71
|
"tether/gateway/qr.swift",
|
|
72
72
|
"locale/*.json",
|
|
73
|
+
"release-notes.json",
|
|
73
74
|
"assets/icon.svg",
|
|
74
75
|
"cordis.patch.yml",
|
|
75
76
|
"/README.md",
|
|
@@ -78,7 +79,7 @@
|
|
|
78
79
|
"assets/features/*.webp"
|
|
79
80
|
],
|
|
80
81
|
"scripts": {
|
|
81
|
-
"test": "node scripts/build-locales.mjs --check && node scripts/build-docs.mjs --check && node test/locale.test.mjs && node test/continue.test.mjs && node test/continue-host.test.mjs && node test/resume-restart.test.mjs && node test/content-search.test.mjs && node test/turn-rollback.test.mjs && node test/turn-rollback-client.test.mjs && node test/delete-chat.test.mjs && node test/export-chat.test.mjs && node test/project-name.test.mjs && node test/queue-drag.test.mjs && node test/queue-move.test.mjs && node test/queue-edit.test.mjs && node test/send-first.test.mjs && node test/message-link.test.mjs && node test/mark-read.test.mjs && node test/plan-toggle.test.mjs && node test/keep-focus.test.mjs && node test/question-fit.test.mjs && node test/header-fit.test.mjs && node test/mobile-connect.test.mjs && node test/unread.test.mjs && node test/unread-client.test.mjs && node test/tether-gateway.test.mjs && node test/tether-parity.test.mjs && node test/deeplink.test.mjs && node test/chat-grant.test.mjs && node test/grant-ttl.test.mjs && node test/notify.test.mjs && node test/idle-switch.test.mjs && node test/changes.test.mjs && node test/chat-changes.test.mjs && node test/changes-tree.test.mjs && node test/file-chats.test.mjs && node test/file-chats-client.test.mjs && node test/feature-ideas.test.mjs && node test/feature-ideas-client.test.mjs && node test/github-issue.test.mjs && node test/project-status.test.mjs && node test/session-branch.test.mjs && node test/recent-projects.test.mjs && node test/project-tools.test.mjs && node test/project-picker.test.mjs && node test/worktree-chats.test.mjs && node test/worktree-chats-client.test.mjs && node test/branch-tree.test.mjs && node test/branch-tree-client.test.mjs && node test/default-workspace.test.mjs && node test/default-workspace-client.test.mjs && node test/find-in-chat.test.mjs && node test/predict.test.mjs && node test/predict-client.test.mjs && node test/complete.test.mjs && node test/complete-client.test.mjs && node test/prompt-improve.test.mjs && node test/prompt-improve-client.test.mjs && node test/goal-check.test.mjs && node test/goal-check-client.test.mjs && node test/backup.test.mjs && node test/backup-host.test.mjs && node test/backup-client.test.mjs && node test/project-memory.test.mjs && node test/memory-editor.test.mjs && node test/status-order.test.mjs && node test/toggles.test.mjs && node test/update.test.mjs && node test/meta.test.mjs && node test/shots.test.mjs && node test/readme.test.mjs && node test/readme-labels.test.mjs && node test/feature-docs.test.mjs && node test/routes.test.mjs && node test/protected-files.test.mjs && node test/blocked-commands.test.mjs && node test/blocked-commands-client.test.mjs && node test/handoff.test.mjs && node test/context-breakdown.test.mjs && node test/task-board.test.mjs && node test/task-board-client.test.mjs && node test/planned-steps.test.mjs",
|
|
82
|
+
"test": "node scripts/build-locales.mjs --check && node scripts/build-docs.mjs --check && node test/locale.test.mjs && node test/continue.test.mjs && node test/continue-host.test.mjs && node test/resume-restart.test.mjs && node test/content-search.test.mjs && node test/turn-rollback.test.mjs && node test/turn-rollback-client.test.mjs && node test/delete-chat.test.mjs && node test/export-chat.test.mjs && node test/project-name.test.mjs && node test/queue-drag.test.mjs && node test/queue-move.test.mjs && node test/queue-edit.test.mjs && node test/send-first.test.mjs && node test/message-link.test.mjs && node test/mark-read.test.mjs && node test/plan-toggle.test.mjs && node test/keep-focus.test.mjs && node test/question-fit.test.mjs && node test/header-fit.test.mjs && node test/mobile-connect.test.mjs && node test/unread.test.mjs && node test/unread-client.test.mjs && node test/tether-gateway.test.mjs && node test/tether-parity.test.mjs && node test/deeplink.test.mjs && node test/chat-grant.test.mjs && node test/grant-ttl.test.mjs && node test/notify.test.mjs && node test/idle-switch.test.mjs && node test/changes.test.mjs && node test/chat-changes.test.mjs && node test/changes-tree.test.mjs && node test/file-chats.test.mjs && node test/file-chats-client.test.mjs && node test/feature-ideas.test.mjs && node test/feature-ideas-client.test.mjs && node test/github-issue.test.mjs && node test/project-status.test.mjs && node test/session-branch.test.mjs && node test/recent-projects.test.mjs && node test/project-tools.test.mjs && node test/has-selectors.test.mjs && node test/project-picker.test.mjs && node test/worktree-chats.test.mjs && node test/worktree-chats-client.test.mjs && node test/branch-tree.test.mjs && node test/branch-tree-client.test.mjs && node test/default-workspace.test.mjs && node test/default-workspace-client.test.mjs && node test/find-in-chat.test.mjs && node test/predict.test.mjs && node test/predict-client.test.mjs && node test/complete.test.mjs && node test/complete-client.test.mjs && node test/prompt-improve.test.mjs && node test/prompt-improve-client.test.mjs && node test/goal-check.test.mjs && node test/goal-check-client.test.mjs && node test/backup.test.mjs && node test/backup-host.test.mjs && node test/backup-client.test.mjs && node test/project-memory.test.mjs && node test/memory-editor.test.mjs && node test/status-order.test.mjs && node test/toggles.test.mjs && node test/update.test.mjs && node test/release-notes.test.mjs && node test/meta.test.mjs && node test/shots.test.mjs && node test/readme.test.mjs && node test/readme-labels.test.mjs && node test/feature-docs.test.mjs && node test/routes.test.mjs && node test/protected-files.test.mjs && node test/blocked-commands.test.mjs && node test/blocked-commands-client.test.mjs && node test/handoff.test.mjs && node test/context-breakdown.test.mjs && node test/task-board.test.mjs && node test/task-board-client.test.mjs && node test/planned-steps.test.mjs",
|
|
82
83
|
"build:locales": "node scripts/build-locales.mjs",
|
|
83
84
|
"build:readme": "node scripts/build-docs.mjs",
|
|
84
85
|
"prepublishOnly": "npm test"
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.19.1",
|
|
3
|
+
"notes": {
|
|
4
|
+
"en": "## New\n\n- **Task board** has a search box and a filter above its project list. Type in **Search projects** to find a project by its name (case and accents do not matter, `Esc` empties the box). Click **Active in the last 2 hours** to show only projects with a chat that waits, runs, finished unseen or changed in the last 2 hours. This choice stays on this device. In Tether, tap the board's title to open the same project list.\n\n## Changes\n\n- **Task board** cards in a narrow window: a title breaks only between words, not inside a word. The time moved to the end of the tag row, so the title has the full width of the card.",
|
|
5
|
+
"zh": "## 新功能\n\n- **任务看板** 的项目列表上方新增了搜索框和筛选器。在 **搜索项目** 中输入,即可按名称查找项目(不区分大小写和重音符号,按 `Esc` 清空搜索框)。点击 **最近 2 小时内活跃**,只显示有对话正在等待、正在运行、已结束但尚未查看,或在最近 2 小时内有变化的项目。此选择保存在此设备上。在 Tether 中,点按看板的标题即可打开同样的项目列表。\n\n## 变更\n\n- 窄窗口中的 **任务看板** 卡片:标题只在词与词之间换行,不会在词的中间断开。时间移到了标签行的末尾,因此标题可以使用卡片的全部宽度。",
|
|
6
|
+
"tr": "## Yeni\n\n- **Görev panosu**, proje listesinin üstünde bir arama kutusu ve bir filtre gösterir. Bir projeyi adıyla bulmak için **Projelerde ara** kutusuna yazın (büyük/küçük harf ve aksanlar fark etmez, `Esc` kutuyu boşaltır). Yalnızca bekleyen, çalışan, siz görmeden biten ya da son 2 saatte değişen bir sohbeti olan projeleri göstermek için **Son 2 saatte aktif olanlar** seçeneğine tıklayın. Bu seçim bu cihazda kalır. Tether'da aynı proje listesini açmak için panonun başlığına dokunun.\n\n## Değişiklikler\n\n- Dar bir penceredeki **Görev panosu** kartları: başlık yalnızca sözcükler arasında bölünür, bir sözcüğün ortasında bölünmez. Zaman, etiket satırının sonuna taşındı; böylece başlık kartın tüm genişliğini kullanır.",
|
|
7
|
+
"es": "## Novedades\n\n- El **Tablero de tareas** tiene un cuadro de búsqueda y un filtro encima de su lista de proyectos. Escribe en **Buscar proyectos** para encontrar un proyecto por su nombre (no importan las mayúsculas ni los acentos; `Esc` vacía el cuadro). Haz clic en **Activos en las últimas 2 horas** para mostrar solo los proyectos con un chat que espera, está en ejecución, terminó sin que lo vieras o cambió en las últimas 2 horas. Esta elección se guarda en este dispositivo. En Tether, toca el título del tablero para abrir la misma lista de proyectos.\n\n## Cambios\n\n- Tarjetas del **Tablero de tareas** en una ventana estrecha: un título solo se corta entre palabras, no dentro de una palabra. La hora pasó al final de la fila de etiquetas, así que el título tiene todo el ancho de la tarjeta.",
|
|
8
|
+
"pt-BR": "## Novidades\n\n- O **Quadro de tarefas** tem uma caixa de busca e um filtro acima da lista de projetos. Digite em **Buscar projetos** para encontrar um projeto pelo nome (maiúsculas e acentos não importam; `Esc` esvazia a caixa). Clique em **Ativos nas últimas 2 horas** para mostrar só os projetos com um chat que espera, está em execução, terminou sem que você visse ou mudou nas últimas 2 horas. Essa escolha fica guardada neste dispositivo. No Tether, toque no título do quadro para abrir a mesma lista de projetos.\n\n## Alterações\n\n- Cartões do **Quadro de tarefas** em uma janela estreita: o título quebra só entre palavras, não no meio de uma palavra. O horário foi para o fim da linha de etiquetas, então o título tem toda a largura do cartão.",
|
|
9
|
+
"fr": "## Nouveautés\n\n- Le **Tableau des tâches** a une zone de recherche et un filtre au-dessus de sa liste de projets. Tapez dans **Rechercher des projets** pour trouver un projet par son nom (la casse et les accents ne comptent pas, `Esc` vide la zone). Cliquez sur **Actifs au cours des 2 dernières heures** pour n’afficher que les projets dont une discussion attend, s’exécute, s’est terminée sans que vous l’ayez vue ou a changé au cours des 2 dernières heures. Ce choix reste enregistré sur cet appareil. Dans Tether, touchez le titre du tableau pour ouvrir la même liste de projets.\n\n## Modifications\n\n- Cartes du **Tableau des tâches** dans une fenêtre étroite : un titre ne se coupe qu’entre deux mots, jamais au milieu d’un mot. L’heure est passée à la fin de la ligne des étiquettes : le titre occupe donc toute la largeur de la carte.",
|
|
10
|
+
"de": "## Neu\n\n- Die **Aufgabentafel** hat über ihrer Projektliste ein Suchfeld und einen Filter. Tippe in **Projekte durchsuchen**, um ein Projekt nach seinem Namen zu finden (Groß- und Kleinschreibung und Akzente spielen keine Rolle, `Esc` leert das Feld). Klicke auf **In den letzten 2 Stunden aktiv**, um nur Projekte mit einem Chat zu zeigen, der wartet, läuft, ungesehen beendet wurde oder sich in den letzten 2 Stunden geändert hat. Diese Auswahl bleibt auf diesem Gerät gespeichert. Tippe in Tether auf den Titel der Tafel, um dieselbe Projektliste zu öffnen.\n\n## Änderungen\n\n- Karten der **Aufgabentafel** in einem schmalen Fenster: Ein Titel bricht nur zwischen Wörtern um, nicht innerhalb eines Wortes. Die Uhrzeit steht jetzt am Ende der Schlagwortzeile, sodass der Titel die volle Breite der Karte hat.",
|
|
11
|
+
"ru": "## Новое\n\n- **Доска задач** получила поле поиска и фильтр над списком проектов. Введите текст в поле **Поиск проектов**, чтобы найти проект по названию (регистр и диакритические знаки не важны, `Esc` очищает поле). Нажмите **Активные за последние 2 часа**, чтобы показать только проекты с чатом, который ждёт, работает, завершился, но ещё не просмотрен, или изменился за последние 2 часа. Этот выбор сохраняется на этом устройстве. В Tether нажмите на заголовок доски, чтобы открыть тот же список проектов.\n\n## Изменения\n\n- **Доска задач** в узком окне: заголовок карточки переносится только между словами, а не внутри слова. Время перенесено в конец строки тегов, поэтому заголовок занимает всю ширину карточки.",
|
|
12
|
+
"ja": "## 新機能\n\n- **タスクボード** のプロジェクト一覧の上に、検索ボックスとフィルターが付きました。**プロジェクトを検索** に入力すると、名前でプロジェクトを探せます(大文字と小文字、アクセント記号は区別しません。`Esc` でボックスが空になります)。**過去 2 時間以内にアクティブ** をクリックすると、待機中、実行中、終了してまだ見ていない、または過去 2 時間以内に変化があったチャットを含むプロジェクトだけを表示します。この選択はこのデバイスに保存されます。Tether では、ボードのタイトルをタップすると同じプロジェクト一覧が開きます。\n\n## 変更点\n\n- 狭いウィンドウでの **タスクボード** のカード:タイトルは単語の間でだけ改行し、単語の途中では改行しません。時刻をタグ行の末尾に移したため、タイトルにカードの幅全体を使えます。",
|
|
13
|
+
"ko": "## 새 기능\n\n- **작업 보드**의 프로젝트 목록 위에 검색 상자와 필터가 생겼습니다. **프로젝트 검색**에 입력하면 이름으로 프로젝트를 찾을 수 있습니다(대소문자와 악센트는 구분하지 않으며, `Esc`를 누르면 상자가 비워집니다). **최근 2시간 내 활성**을 클릭하면 대기 중이거나, 실행 중이거나, 끝났지만 아직 보지 않았거나, 최근 2시간 내에 바뀐 채팅이 있는 프로젝트만 표시합니다. 이 선택은 이 기기에 저장됩니다. Tether에서는 보드 제목을 탭하면 같은 프로젝트 목록이 열립니다.\n\n## 변경 사항\n\n- 좁은 창의 **작업 보드** 카드: 제목은 단어 사이에서만 줄바꿈되고 단어 중간에서는 줄바꿈되지 않습니다. 시간이 태그 행의 끝으로 옮겨져서 제목이 카드의 전체 너비를 사용합니다.",
|
|
14
|
+
"id": "## Baru\n\n- **Papan tugas** memiliki kotak pencarian dan filter di atas daftar proyeknya. Ketik di **Cari proyek** untuk menemukan proyek berdasarkan namanya (huruf besar/kecil dan aksen tidak berpengaruh, `Esc` mengosongkan kotak). Klik **Aktif dalam 2 jam terakhir** untuk hanya menampilkan proyek yang memiliki obrolan yang menunggu, berjalan, selesai tetapi belum Anda lihat, atau berubah dalam 2 jam terakhir. Pilihan ini tetap tersimpan di perangkat ini. Di Tether, ketuk judul papan untuk membuka daftar proyek yang sama.\n\n## Perubahan\n\n- Kartu **Papan tugas** di jendela sempit: judul hanya dipotong di antara kata, tidak di tengah kata. Waktu dipindahkan ke akhir baris label, sehingga judul memakai seluruh lebar kartu.",
|
|
15
|
+
"vi": "## Mới\n\n- **Bảng tác vụ** có ô tìm kiếm và bộ lọc phía trên danh sách dự án. Nhập vào **Tìm dự án** để tìm một dự án theo tên (không phân biệt chữ hoa, chữ thường và dấu; `Esc` xóa trống ô). Nhấp **Hoạt động trong 2 giờ qua** để chỉ hiện các dự án có cuộc trò chuyện đang chờ, đang chạy, đã xong nhưng bạn chưa xem, hoặc đã thay đổi trong 2 giờ qua. Lựa chọn này được lưu trên thiết bị này. Trong Tether, chạm vào tiêu đề của bảng để mở cùng danh sách dự án đó.\n\n## Thay đổi\n\n- Thẻ của **Bảng tác vụ** trong cửa sổ hẹp: tiêu đề chỉ xuống dòng giữa các từ, không ngắt ở giữa một từ. Thời gian được chuyển về cuối dòng nhãn, nên tiêu đề có toàn bộ chiều rộng của thẻ.",
|
|
16
|
+
"hi": "## नया\n\n- **टास्क बोर्ड** में प्रोजेक्ट सूची के ऊपर एक खोज बॉक्स और एक फ़िल्टर है। किसी प्रोजेक्ट को उसके नाम से ढूँढने के लिए **प्रोजेक्ट खोजें** में टाइप करें (बड़े-छोटे अक्षरों और एक्सेंट चिह्नों से फ़र्क नहीं पड़ता, `Esc` बॉक्स खाली कर देता है)। **पिछले 2 घंटों में सक्रिय** पर क्लिक करें, ताकि सिर्फ़ वे प्रोजेक्ट दिखें जिनमें कोई चैट इंतज़ार कर रही है, चल रही है, आपके देखे बिना खत्म हुई है या पिछले 2 घंटों में बदली है। यह चुनाव इस डिवाइस पर सेव रहता है। Tether में, वही प्रोजेक्ट सूची खोलने के लिए बोर्ड के शीर्षक पर टैप करें।\n\n## बदलाव\n\n- संकरी विंडो में **टास्क बोर्ड** के कार्ड: शीर्षक सिर्फ़ शब्दों के बीच टूटता है, किसी शब्द के अंदर नहीं। समय अब टैग वाली पंक्ति के आख़िर में है, इसलिए शीर्षक को कार्ड की पूरी चौड़ाई मिलती है।"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -48,7 +48,7 @@ export const PLUS = new Map([
|
|
|
48
48
|
['rollback', ['GET', 'POST']], ['delete-chat', ['POST']], ['ideas', ['POST']], ['later', ['GET', 'POST']], ['idea-history', ['GET', 'POST']],
|
|
49
49
|
['queue-move', ['POST']], ['queue-edit', ['POST']], ['branches', ['GET']], ['predict', ['POST']], ['complete', ['POST']], ['improve', ['POST']], ['unread', ['GET', 'POST']],
|
|
50
50
|
['worktrees', ['GET', 'POST']], ['new-session-workspace', ['POST']], ['memory-edit', ['GET', 'POST']], ['handoff', ['POST']], ['context', ['GET']],
|
|
51
|
-
['board-
|
|
51
|
+
['board-chats', ['GET', 'POST']],
|
|
52
52
|
])
|
|
53
53
|
/** Allow for this chat: an Auto Review ask (`approval/request` with this reason) for a tool that the chat granted. */
|
|
54
54
|
export const AUTO_REVIEW_ASK = 'Auto review denied tool '
|