dsh-composer-plus 1.21.0 → 1.22.0
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 +6 -5
- package/README.es.md +6 -5
- package/README.fr.md +6 -5
- package/README.hi.md +6 -5
- package/README.id.md +6 -5
- package/README.ja.md +6 -5
- package/README.ko.md +6 -5
- package/README.md +6 -5
- package/README.pt-BR.md +6 -5
- package/README.ru.md +6 -5
- package/README.tr.md +6 -5
- package/README.vi.md +6 -5
- package/README.zh.md +6 -5
- package/client.js +107 -40
- package/index.js +70 -8
- package/package.json +2 -2
- package/release-notes.json +14 -14
- package/tether/gateway/server.mjs +129 -8
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.
|
|
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.22.0`.
|
|
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.
|
|
218
|
+
- **Bir yayından hemen sonra yükleme başarısız oluyor:** sürümü ekleyin (`dsh-composer-plus@1.22.0`) 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.
|
|
@@ -245,7 +246,7 @@ dsh `0.2.0-rc.2` (masaüstü ve web) ve `0.2.1-rc.2` (web) üzerinde test edildi
|
|
|
245
246
|
- **Mesaj alanında odağı koru**, odağı yalnızca bir `/` komutundan veya beceriden sonra geri verir. dsh komutu çözümlerken mesaj alanı birkaç milisaniye salt okunur kalır. Bu sürede basılan tuşlar kaybolur. dsh’nin `/` menüsü hâlâ açıksa `Enter` vurgulanan satırı seçer ve mesajı göndermez.
|
|
246
247
|
- **Soru kartını pencereye sığdır** yalnız dsh'nin soru kartını değiştirir, plan inceleme kartını değiştirmez. Kartı dsh'nin işaretlemesiyle bulur (`data-question-key`, `data-question-scroll`). Bir dsh güncellemesi bu işaretlemeyi değiştirirse kart dsh'nin çizdiği gibi görünür. Kartın yüksekliği sohbeti değil pencereyi izler: dar bir yan paneldeki sohbette uzun bir kart sohbetin üstüne taşabilir.
|
|
247
248
|
- **Sohbet başlığını pencereye sığdır**, dsh'nin sohbet başlığını dsh'nin ürettiği sınıf adlarıyla (`_titleRow`, `_titleCluster`, `_crumbs`, `_headerActions`, `_headerUtilities`) bulur, çünkü dsh bunun için bir yerleşim kancası vermez. Bir dsh güncellemesi bu adları değiştirirse başlık dsh'nin çizdiği gibi görünür. Çok dar bir sohbet sütununda başlık iki ya da üç satır kaplayabilir, bu yüzden mesajların üstündeki alan azalır.
|
|
248
|
-
- **Mobil bağlantı** yalnızca macOS’ta çalışır (`en0`, `openssl`, `swift` ve `dns-sd` kullanır). Sabit 19390 ve 19391 portlarını kullanır. Bu yüzden her Mac’te aynı anda yalnızca bir dsh bu özelliği çalıştırabilir (her Mac, telefonun Mac listesinde bir girdidir).
|
|
249
|
+
- **Mobil bağlantı** yalnızca macOS’ta çalışır (`en0`, `openssl`, `swift` ve `dns-sd` kullanır). Sabit 19390 ve 19391 portlarını kullanır. Bu yüzden her Mac’te aynı anda yalnızca bir dsh bu özelliği çalıştırabilir (her Mac, telefonun Mac listesinde bir girdidir). `apns.json` içinde bir APNs anahtarı varsa (bkz. `tether/README.md`), Mac bildirimleri Apple’ın push hizmetiyle gönderir; bildirimler Tether kapalıyken de gelir. Mac uyanık ve dsh açık olmalıdır. Anahtar yoksa telefon yalnızca Tether açıkken ya da arka plana yeni geçmişken bildirim alır. Tether bu bildirimleri yalnızca Tether’de "Settings → Notifications → Send notifications" seçeneğini açtıktan sonra gönderir. Tether bu seçeneği ve saat aralığını eşleşmiş her Mac için ayrı tutar. Seçenek her Mac için varsayılan olarak kapalıdır. iOS bildirim iznini, seçeneği açtığınızda ister. iOS uygulaması henüz App Store’da değildir: uygulamayı Xcode ile `tether/ios` klasöründen derleyin. "Tailscale only" açıkken de Mac’in bir Wi-Fi ya da Ethernet adresi olmalıdır (ağ geçidi yalnızca böyle bir adres varken başlar). Erişim günlüğü her Mac için ayrıdır ve yalnızca en yeni 200 denemeyi tutar. Bir dakika içinde tekrarlanan bir deneme yeni bir satır eklemez, aynı satırın sayısını bir artırır. Her bildirim Mac’i ve sohbetin projesini (`Studio Mac · recipe-box`), sohbet başlığını ve metni gösterir: Turn finished, AI’ın son yanıtını gösterir. APNs anahtarı varsa bu metin Apple’ın push hizmetinden geçer. Tether’in uygulama kilidi, iPhone kilit ekranındaki bildirim önizlemelerini gizlemez: bu önizlemeleri iOS Ayarları’ndan kapatın. Tether’daki yeşil noktalar Mac’i izler: dsh’de açtığınız sohbetin noktası telefonda da gider. Tether’da açtığınız sohbetin noktası yalnızca telefonlarda gider. dsh’nin Mac’teki kendi noktası, sohbeti orada açana kadar kalır.
|
|
249
250
|
- **Uzak bilgisayarlar** için iki Mac’te de Tailscale gerekir. Açtığınız Mac’te de Composer Plus olmalı ve bu özellik açık olmalıdır. O Mac uyanık olmalı ve dsh orada çalışıyor olmalıdır. Diğer bilgisayar, ekrandaki sohbetin sağ kenar çubuğundaki Tarayıcı sekmesinde açılır. Sekme o sohbete aittir, bu yüzden başka bir sohbet kendi kenar çubuğunu gösterir. Ekranda sohbet yoksa (ya da Tarayıcı sekmesi olmayan dsh web’de) bilgisayar bir tarayıcı penceresinde açılır. Seçici yalnızca ana alanda bir sohbet ya da yeni sohbet ekranı varken görünür, Görev panosunda görünmez. Özellik 19392 numaralı portu kullanır (her Mac’te yalnızca bir dsh diğer bilgisayarların girmesine izin verebilir). Başka bir bilgisayarın sayfası içinde açtığınız bilgisayarda seçici yoktur. Bu yüzden oradan üçüncü bir Mac açamazsınız.
|
|
250
251
|
- Oturum bağlantısı sohbetlerin içinde çalışır; bağlantıya tıklamak sohbeti açmaz. **Mesaj bağlantısını kopyala** ile alınan bağlantı, mesajını yalnızca dsh 0.2.1 ve sonrasında ve yalnızca bir sohbetteki mesajdan açar (dsh 0.2.0’da kullanıcı metni kuralları yoktur; orada bağlantı kopyalanır ama düz metin olarak görünür). Geri almanın çıkardığı ya da sıkıştırmanın dsh’nin yüklediği geçmişten sildiği bir mesaj gösterilemez: bağlantı bunu söyler. 🔗 düğmeleri dsh’nin mesaj satırlarına bağlanır. Bir dsh güncellemesi bu yapıyı değiştirirse düğmeler görünmez.
|
|
251
252
|
- **Tümünü okundu işaretle**, dsh’nin kendi okunmamış noktalarını dsh’nin herkese açık API olmayan bir parçasıyla değiştirir (dsh oturum durumundaki `completionUnread` listesi). Bir dsh güncellemesi bunun adını değiştirirse öğe görünmez. Öğe, dsh’nin proje "…" menüsüne eklenir. Bu menüde eklentiler için bir yuva yoktur. dsh bu menüyü değiştirirse öğe yine görünmez.
|
|
@@ -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.
|
|
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.22.0`.
|
|
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.
|
|
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.22.0`), 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.
|
|
@@ -245,7 +246,7 @@ Khi menu `/` hoặc `@` đang mở, menu đó giữ các phím này cho riêng n
|
|
|
245
246
|
- **Giữ con trỏ trong khung soạn thảo** chỉ trả lại tiêu điểm sau một lệnh `/` hoặc một skill. Trong lúc dsh xử lý lệnh, khung soạn thảo ở chế độ chỉ đọc trong vài mili giây, nên các phím nhấn trong khoảng đó bị mất. Nếu menu `/` của dsh vẫn đang mở, `Enter` chọn dòng đang được tô sáng và không gửi.
|
|
246
247
|
- **Vừa thẻ câu hỏi với cửa sổ** chỉ thay đổi thẻ câu hỏi của dsh, không thay đổi thẻ duyệt kế hoạch. Tính năng tìm thẻ qua mã đánh dấu của dsh (`data-question-key`, `data-question-scroll`); nếu một bản cập nhật dsh thay đổi mã đánh dấu đó, thẻ hiển thị như dsh vẽ. Chiều cao của thẻ theo cửa sổ, không theo cuộc trò chuyện: trong một cuộc trò chuyện ở bảng bên hẹp, một thẻ cao vẫn có thể vượt lên trên cuộc trò chuyện.
|
|
247
248
|
- **Vừa tiêu đề cuộc trò chuyện với cửa sổ** tìm tiêu đề cuộc trò chuyện của dsh qua các tên lớp do dsh tạo (`_titleRow`, `_titleCluster`, `_crumbs`, `_headerActions`, `_headerUtilities`), vì dsh không có điểm móc bố cục cho nó. Nếu bản cập nhật dsh đổi các tên này, tiêu đề hiển thị như dsh vẽ. Trong cột trò chuyện rất hẹp, tiêu đề có thể chiếm hai hoặc ba dòng, nên vùng phía trên tin nhắn thấp hơn.
|
|
248
|
-
- **Kết nối di động** chỉ hoạt động trên macOS (dùng `en0`, `openssl`, `swift` và `dns-sd`). Tính năng dùng cố định cổng 19390 và 19391, nên trên mỗi máy Mac, mỗi lúc chỉ một dsh có thể chạy tính năng này (mỗi máy Mac là một mục trong danh sách Mac của điện thoại).
|
|
249
|
+
- **Kết nối di động** chỉ hoạt động trên macOS (dùng `en0`, `openssl`, `swift` và `dns-sd`). Tính năng dùng cố định cổng 19390 và 19391, nên trên mỗi máy Mac, mỗi lúc chỉ một dsh có thể chạy tính năng này (mỗi máy Mac là một mục trong danh sách Mac của điện thoại). Khi có khóa APNs trong `apns.json` (xem `tether/README.md`), Mac gửi thông báo qua dịch vụ push của Apple, nên thông báo vẫn đến khi Tether đã đóng; Mac phải đang thức và mở dsh. Nếu không có khóa, điện thoại chỉ nhận thông báo khi Tether đang mở hoặc vừa chuyển sang chạy nền. Tether chỉ gửi thông báo sau khi bạn bật "Settings → Notifications → Send notifications" trong Tether. Tether lưu tùy chọn này và khung giờ của nó riêng cho từng máy Mac đã ghép nối. Tùy chọn này tắt theo mặc định trên mỗi máy Mac, và iOS hỏi quyền khi bạn bật nó. Ứng dụng iOS chưa có trên App Store: hãy build ứng dụng từ `tether/ios` bằng Xcode. "Tailscale only" vẫn cần máy Mac có địa chỉ Wi-Fi hoặc Ethernet (gateway chỉ khởi động khi có địa chỉ đó). Nhật ký truy cập là riêng cho từng máy Mac và chỉ giữ 200 lần thử mới nhất; một lần thử lặp lại trong vòng một phút sẽ tăng số đếm của cùng một dòng thêm một. Khóa ứng dụng của Mỗi thông báo hiện Mac và dự án của cuộc trò chuyện (`Studio Mac · recipe-box`), tiêu đề cuộc trò chuyện và nội dung: Turn finished hiện câu trả lời cuối cùng của agent. Khi có khóa APNs, nội dung này đi qua dịch vụ push của Apple. Tether không ẩn bản xem trước thông báo trên Màn hình khóa của iPhone: hãy tắt chúng trong Cài đặt của iOS. Chấm xanh trong Tether theo Mac: cuộc trò chuyện bạn mở trong dsh cũng mất chấm trên điện thoại. Cuộc trò chuyện bạn mở trong Tether chỉ mất chấm trên điện thoại. Chấm riêng của dsh trên Mac vẫn còn cho đến khi bạn mở cuộc trò chuyện đó trên Mac.
|
|
249
250
|
- **Máy tính từ xa** cần Tailscale trên cả hai máy Mac, và cần Composer Plus có bật tính năng này trên máy Mac mà bạn mở. Máy Mac đó không được ở chế độ ngủ, và dsh phải đang chạy trên máy. Máy tính kia mở trong tab Trình duyệt của thanh bên phải của cuộc trò chuyện đang hiện trên màn hình. Tab này thuộc về cuộc trò chuyện đó, nên một cuộc trò chuyện khác hiện thanh bên của riêng nó. Khi không có cuộc trò chuyện (hoặc trên dsh web không có tab Trình duyệt), máy tính mở trong một cửa sổ trình duyệt. Bộ chọn chỉ hiện khi khu vực chính có một cuộc trò chuyện hoặc màn hình cuộc trò chuyện mới, không hiện trên Bảng tác vụ. Tính năng dùng cổng 19392 (trên mỗi máy Mac, chỉ một dsh có thể cho máy tính khác vào). Máy tính mà bạn mở bên trong trang của một máy tính khác không có bộ chọn, nên bạn không thể mở máy Mac thứ ba từ đó.
|
|
250
251
|
- Liên kết phiên hoạt động bên trong cuộc trò chuyện; nhấp vào liên kết không mở cuộc trò chuyện. Liên kết tạo bằng **Sao chép liên kết tin nhắn** chỉ mở tin nhắn của nó trên dsh 0.2.1 trở lên, và chỉ từ một tin nhắn trong cuộc trò chuyện (dsh 0.2.0 không có quy tắc văn bản người dùng, nên ở đó liên kết vẫn được sao chép nhưng hiện dưới dạng văn bản thường). Tin nhắn mà một lần hoàn tác đã đưa ra, hoặc mà việc nén đã xóa khỏi lịch sử dsh tải, không thể hiển thị: khi đó liên kết sẽ báo như vậy. Các nút 🔗 gắn vào các dòng tin nhắn của dsh; nếu một bản cập nhật dsh thay đổi markup đó, các nút không hiện.
|
|
251
252
|
- **Đánh dấu tất cả là đã đọc** thay đổi các chấm chưa đọc của chính dsh qua một phần của dsh không phải API công khai (danh sách `completionUnread` trong trạng thái phiên của dsh). Nếu một bản cập nhật dsh đổi tên phần này, mục không hiện. Mục được đặt trong menu "…" của dự án trong dsh, và menu này không có vị trí dành cho plugin; nếu dsh thay đổi menu đó, mục cũng không hiện.
|
|
@@ -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.
|
|
32
|
+
> dsh 使用的 pnpm 会跳过发布不到 24 小时的版本。刚发布新版本时,请加上版本号:`dsh-composer-plus@1.22.0`。
|
|
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.
|
|
218
|
+
- **刚发布新版本时安装失败:** 请加上版本号(`dsh-composer-plus@1.22.0`),见上文的安装说明。
|
|
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 发送时会去掉末尾的空行。
|
|
@@ -245,7 +246,7 @@ English · 中文 · Türkçe · Español · Português (Brasil) · Français ·
|
|
|
245
246
|
- **保持输入框焦点** 只在发送 `/` 命令或技能后才会把焦点还给输入框。dsh 解析命令时,输入框会有几毫秒处于只读状态,因此这段时间内按下的键会丢失。如果 dsh 的 `/` 菜单仍然打开,`Enter` 会选择高亮的行,而不会发送。
|
|
246
247
|
- **问题卡片适应窗口** 只改变 dsh 的问题卡片,不改变计划审阅卡片。它通过 dsh 的标记(`data-question-key`、`data-question-scroll`)找到卡片;如果 dsh 更新改变了这些标记,卡片会按 dsh 自己的样子显示。卡片高度跟随窗口,而不是对话:在较窄侧边面板中的对话里,较高的卡片仍可能超出对话上方。
|
|
247
248
|
- **对话标题栏适应窗口** 通过 dsh 生成的类名(`_titleRow`、`_titleCluster`、`_crumbs`、`_headerActions`、`_headerUtilities`)找到对话标题栏,因为 dsh 没有为它提供布局接口。如果 dsh 更新改了这些类名,标题栏按 dsh 原样显示。在很窄的对话栏中,标题栏可能占两到三行,所以消息上方的空间会变小。
|
|
248
|
-
- **手机连接** 只适用于 macOS(它使用 `en0`、`openssl`、`swift` 和 `dns-sd`)。它使用固定端口 19390 和 19391,因此每台 Mac 上同一时间只能有一个 dsh 运行它(每台 Mac 是手机 Mac
|
|
249
|
+
- **手机连接** 只适用于 macOS(它使用 `en0`、`openssl`、`swift` 和 `dns-sd`)。它使用固定端口 19390 和 19391,因此每台 Mac 上同一时间只能有一个 dsh 运行它(每台 Mac 是手机 Mac 列表中的一项)。在 `apns.json` 中配置 APNs 密钥后(见 `tether/README.md`),Mac 通过 Apple 推送服务发送通知,即使 Tether 已关闭也能收到;Mac 必须处于唤醒状态并打开 dsh。没有该密钥时,只有在 Tether 打开或刚转入后台时,手机才能收到通知。在 Tether 中打开“Settings → Notifications → Send notifications”之前,Tether 不会发送通知。Tether 为每台已配对的 Mac 分别保存此开关和时间段。此开关在每台 Mac 上都默认关闭,打开时 iOS 会请求通知权限。iOS 应用尚未上架 App Store:请用 Xcode 从 `tether/ios` 构建它。“Tailscale only”仍然需要 Mac 有 Wi-Fi 或以太网地址(只有在有这样的地址时,网关才会启动)。访问日志按 Mac 分别保存,只保留最新的 200 次尝试;一分钟内重复的尝试不会新增一行,而是把同一行的次数加一。每条通知都会显示 Mac 和对话所属的项目(`Studio Mac · recipe-box`)、对话标题和正文:Turn finished 显示智能体的最后一条回复。有 APNs 密钥时,这段文字会经过 Apple 的推送服务。Tether 的应用锁不会隐藏 iPhone 锁定屏幕上的通知预览:请在 iOS 设置中关闭它们。Tether 的绿点跟随 Mac:在 dsh 中打开的对话,手机上的绿点也会消失。在 Tether 中打开的对话,只在手机上消失;Mac 上 dsh 自己的绿点会一直保留,直到你在 Mac 上打开该对话。
|
|
249
250
|
- **远程电脑** 需要两台 Mac 都有 Tailscale,并且被打开的 Mac 上要有开启了此功能的 Composer Plus。那台 Mac 必须处于唤醒状态,并且正在运行 dsh。另一台电脑会在屏幕上当前对话的右侧边栏浏览器标签页中打开:这个标签页属于该对话,所以其他对话会显示自己的侧边栏。没有对话时(或在没有浏览器标签页的 dsh web 中),电脑会在浏览器窗口中打开。只有主区域显示对话或新对话界面时,才会显示选择器;任务看板上不显示。它使用端口 19392(每台 Mac 上只有一个 dsh 能让其他电脑进入)。在另一台电脑的页面中打开的电脑没有选择器,所以你不能从那里打开第三台 Mac。
|
|
250
251
|
- 会话链接在对话中有效;点击它不会打开对应的对话。用 **复制消息链接** 复制的链接,只在 dsh 0.2.1 及更高版本中、并且只从对话中的消息里才能打开对应的消息(dsh 0.2.0 没有用户文本规则,所以链接仍会被复制,但只显示为普通文本)。被回退移除的消息,或被压缩从 dsh 加载的历史中移除的消息,无法显示:此时链接会给出提示。🔗 按钮依附在 dsh 的消息行上;如果 dsh 更新改变了这部分标记,按钮就不会显示。
|
|
251
252
|
- **全部标为已读** 通过 dsh 中一个不是公开 API 的部分(dsh 会话状态中的 `completionUnread` 列表)来更改 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
|