dsh-composer-plus 1.11.2 → 1.12.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 +54 -38
- package/README.es.md +54 -38
- package/README.fr.md +54 -38
- package/README.hi.md +54 -38
- package/README.id.md +54 -38
- package/README.ja.md +54 -38
- package/README.ko.md +54 -38
- package/README.md +54 -38
- package/README.pt-BR.md +54 -38
- package/README.ru.md +54 -38
- package/README.tr.md +54 -38
- package/README.vi.md +54 -38
- package/README.zh.md +54 -38
- package/assets/features/promptImprove.webp +0 -0
- package/client.js +302 -15
- package/index.js +258 -34
- package/package.json +3 -2
- package/tether/gateway/server.mjs +16 -7
package/README.tr.md
CHANGED
|
@@ -14,7 +14,7 @@ Bu sayfa bir çeviridir. Esas alınan sürüm, İngilizce [README.md](README.md)
|
|
|
14
14
|
|
|
15
15
|
<p align="center"><img src="docs/images/hero.webp" width="820" alt="Composer Plus ile DeepSeek Harness: çalışan proje kenar çubuğunda dönen bir simge gösteriyor, Değişiklikler paneli bir git farkı gösteriyor"></p>
|
|
16
16
|
|
|
17
|
-
Resmî olmayan bir topluluk eklentisidir. Eklentinin yaptığı tek ağ çağrısı güncelleme denetimidir (GitHub sürümleri ve npm kayıt defteri). Açılışta bu çağrıları durdurmak için **Otomatik güncellemeler** ayarını kapatın. **Özellik fikirleri**, sohbetin kendi modelini yalnızca **Özellik öner** düğmesine tıkladığınızda çağırır. **Sonraki mesaj tahmini** (varsayılan olarak açık), biten her turdan sonra Ayarlar’da seçilen modeli (siz başka bir model seçmediyseniz dsh’nin varsayılan modelini) tıklama olmadan bir kez çağırır. Bu çağrıları durdurmak için özelliği **Ayarlar → Composer Plus** içinden kapatın. **Yazarken tamamla** (varsayılan olarak kapalı), siz açtıktan sonra yazarken her duraklamada kendisi için seçilen modeli (varsayılan olarak tahminin modelini) çağırır. **Mobil bağlantı** (varsayılan olarak kapalı), yerel ağınızdan veya tailnet’inizden gelen iPhone bağlantılarını yalnızca siz açtıktan sonra kabul eder.
|
|
17
|
+
Resmî olmayan bir topluluk eklentisidir. Eklentinin yaptığı tek ağ çağrısı güncelleme denetimidir (GitHub sürümleri ve npm kayıt defteri). Açılışta bu çağrıları durdurmak için **Otomatik güncellemeler** ayarını kapatın. **Özellik fikirleri**, sohbetin kendi modelini yalnızca **Özellik öner** düğmesine tıkladığınızda çağırır. **Sonraki mesaj tahmini** (varsayılan olarak açık), biten her turdan sonra Ayarlar’da seçilen modeli (siz başka bir model seçmediyseniz dsh’nin varsayılan modelini) tıklama olmadan bir kez çağırır. Bu çağrıları durdurmak için özelliği **Ayarlar → Composer Plus** içinden kapatın. **Yazarken tamamla** (varsayılan olarak kapalı), siz açtıktan sonra yazarken her duraklamada kendisi için seçilen modeli (varsayılan olarak tahminin modelini) çağırır. **İstemi iyileştir**, bir modeli yalnızca sihirli değnek düğmesine tıkladığınızda çağırır. **Mobil bağlantı** (varsayılan olarak kapalı), yerel ağınızdan veya tailnet’inizden gelen iPhone bağlantılarını yalnızca siz açtıktan sonra kabul eder.
|
|
18
18
|
|
|
19
19
|
## Kurulum
|
|
20
20
|
|
|
@@ -29,46 +29,51 @@ 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.12.0`.
|
|
33
33
|
|
|
34
34
|
## Özellikler
|
|
35
35
|
|
|
36
|
+
<!-- BEGIN GENERATED FEATURES: edit docs/features.json, then run npm run build:readme -->
|
|
37
|
+
|
|
36
38
|
| Özellik | Nasıl kullanılır | Ekran görüntüsü |
|
|
37
39
|
|---|---|---|
|
|
38
|
-
| **Değişiklikler paneli** | Sağ kenar çubuğu → `+` → **Değişiklikler**. Değişen dosyaları `+/-` sayılarıyla görmek için **Commit edilmemiş**, **Hazırlanmamış**, **Hazırlanmış** veya **Dal** seçin. Farkını görmek için bir dosyaya tıklayın. **Son tur**, dsh’nin son tur için kendi incelemesini açar. | <a href="assets/features/changesPanel.webp"><img src="assets/features/changesPanel.webp" width="160" alt="Değişiklikler paneli
|
|
39
|
-
| **Özellik fikirleri** | Sağ kenar çubuğu → `+` → **Özellik fikirleri** → **Özellik öner**. Sohbetin kendi modeli, sohbetin projesinin kısa bir özetini okur (üst düzey dosyalar, README ve manifest dosyasının başı, son 15 commit). Sonra en çok 8 özellik önerir. Öneriler, dsh’nin arayüz dilinde bir kart destesi olarak görünür. Aynı projede yeni bir sohbet başlatmak için kartı sağa kaydırın (ya da **✓** düğmesine tıklayın veya `→` tuşuna basın; her durumda kart kendi tarafına uçar). Yeni sohbet plan modunda başlar ve fikri istek olarak alır. Bu yüzden siz planı onaylamadan hiçbir şey değişmez. Planı atlamak için **▶ Hemen uygula** düğmesine tıklayın (ya da `↑` tuşuna basın; kart yukarı uçar). Yeni sohbet, fikri sıradan bir istek olarak alıp hemen başlar. Model değişikliği yapar ve kontrollerini çalıştırır (onaylar her zamanki gibi uygulanır). Atlamak için sola kaydırın (ya da **✕** veya `←`). **Geri al** (ya da `Z`) atlanan kartı geri getirir. İyi bir fikri sonraya saklamak için **↓** düğmesine tıklayın (ya da `↓` tuşuna basın). Fikir projenin **Sonra** listesine gider. Aynı proje klasöründeki her sohbet bu listeyi gösterir (yeniden başlatmadan sonra da). **Sonra (N)** listeyi açar. **Planla**, fikir için aynı plan modu sohbetini başlatır. **Hemen uygula** ise sohbeti plan olmadan başlatır. İkisi de fikri listeden çıkarır. **Tümünü tek planda başlat (N)**, listedeki bütün fikirler için tek bir plan modu sohbeti başlatır. Böylece ortak kısımlar yalnızca bir kez planlanır. **Listeden kaldır** fikri siler. **Yapılacaklar listesi olarak kopyala**, bütün listeyi bir sorun takip aracı ya da TODO dosyası için Markdown yapılacaklar listesi olarak panoya kopyalar (`- [ ] Title — Summary`, her fikir için bir satır). Bu işlem ağ isteği yapmaz. **Daha fazla fikir** yeni kartlar ekler. Yalnızca tek bir alanla ilgili fikir almak için **Özellik öner** düğmesinin yanındaki alana kısa bir **Odak konusu** yazın (en çok 80 karakter; `Enter` da öneri ister). Ya da alanın altındaki sabit konulardan birine tıklayın: **Performans**, **Erişilebilirlik**, **Testler**, **Güvenlik**, **Kullanılabilirlik** veya **Dokümantasyon** (temizlemek için yeniden tıklayın). Model bundan sonra yalnızca o konuyla ilgili özellikler önerir. Alan boşsa model her türlü özelliği önerebilir. Bir projede aynı fikir iki kez önerilmez: önerilen her fikir (atlanan, saklanan ya da başlatılan) projenin **Geçmiş** listesine gider. Modele bu fikirleri yeniden önermemesi söylenir ve aynı başlıkla gelen bir fikir atılır. **Geçmiş**, fikirleri **Başlatıldı** ya da **Önerildi** etiketiyle listeler. **Unut** (ya da **Tümünü unut**) bir fikrin yeniden gelmesine izin verir; **Sonra** listesinde hâlâ duran bir fikir, siz onu oradan kaldırana kadar önerilerde yer almaz. Model yalnızca siz tıkladığınızda çalışır. | <a href="assets/features/featureIdeas.webp"><img src="assets/features/featureIdeas.webp" width="160" alt="Özellik fikirleri
|
|
40
|
-
| **İçerik araması** | dsh’nin kendi kenar çubuğu araması (**Çalışma alanları** yanındaki büyüteç; masaüstü uygulamasında `Cmd+K`, tarayıcıda `Cmd+Alt+K`) sohbetleri yalnızca başlığa göre değil, mesajlarınızdaki ve yanıtlardaki sözcüklere göre de bulur. Eşleşen metni sohbetin altında gösterir. Bu arama dsh’de zaten vardır, ama kapalı gelir. Bu özellik aramayı açar ve bilgisayarınızda bir arama dizini dosyası kullanır. Dizin, dsh açıldıktan sonraki ilk aramada oluşturulur (250 sohbet için yaklaşık 15 sn, bkz. Sınırlar) ve sonraki açılışlarda yeniden kullanılır. Varsayılan olarak açıktır. Bir değişiklik, dsh’yi yeniden başlattıktan sonra geçerli olur. | <a href="assets/features/contentSearch.webp"><img src="assets/features/contentSearch.webp" width="160" alt="İçerik araması
|
|
41
|
-
| **Tur geri alma** | Mesajlarınızdan birinin üzerine gelin ve **↶** düğmesine tıklayın (Kopyala düğmesinin yanında). **Yalnızca sohbet**, o mesajı ve sonrasındaki her şeyi (yanıtlar, araç çağrıları) sohbetten ve modelin bağlamından çıkarır. Mesajı da mesaj alanına geri koyar: mesajı değiştirip yeniden gönderin. **Sohbet ve dosyalar** önce o mesajdan sonra değişen proje dosyalarını listeler. Sonra bu dosyaları da eski hâline döndürür. Yalnızca dsh’nin düzenleme araçlarının değil, komutların (`bash`) yaptığı değişiklikler de buna dahildir. Çalışan bir tur önce durur. Sohbet günlüğü hiçbir zaman yeniden yazılmaz: geri çekilen kısmı tek bir gizli işaretçi gizler. dsh’nin kendi `/compact` komutu da eski mesajları aynı yolla gizler. [dsh-rewind-plugin](https://www.npmjs.com/package/dsh-rewind-plugin) yüklüyse bu işi o yapar ve Composer Plus ikinci bir düğme göstermez. | <a href="assets/features/turnRollback.webp"><img src="assets/features/turnRollback.webp" width="160" alt="Tur geri alma
|
|
42
|
-
| **Sohbeti sil** | Kenar çubuğu → bir sohbetin **…** menüsü (ya da sağ tıklama) → **Sil…** → **Sil**. dsh kendisi yalnızca arşivleyebilir. Sohbet durur (dsh’nin kendi arşivlemesinde olduğu gibi turu, arka plan işleri, alt ajanları ve zamanlanmış hatırlatıcıları da durur). Kayıtlı geçmişi, alt ajan sohbetleriyle birlikte macOS Çöp Sepeti’ne taşınır (diğer sistemlerde: `$DSH_HOME/trash`). Sohbeti geri almak için klasörü yerine koyun ve dsh’yi yeniden başlatın: sohbet, kenar çubuğundaki **Yalnızca arşivlenmişler** görünümünde görünür. | <a href="assets/features/deleteChat.webp"><img src="assets/features/deleteChat.webp" width="160" alt="Sohbeti sil
|
|
43
|
-
| **Yazma kutusunda proje adı** | Mesaj alanının altındaki satır (turlar, token’lar, önbellek isabeti, bağlam) sohbetin proje adıyla başlar. Böylece bir sohbetin hangi projede çalıştığını her zaman görürsünüz. Bu ad, dsh’nin kendi proje başlığıdır. Projenin başlığı yoksa klasör adıdır. Klasörün tam yolunu görmek için adın üzerine gelin. Sohbeti kenar çubuğunda, liste ya da proje görünümünde bulmak için ada tıklayın: kenar çubuğu ve proje açılır (daraltılmış bir proje ve projenin **
|
|
44
|
-
| **Mesaj geçmişi** | Boş mesaj alanında `↑` / `↓` tuşlarına basın. Terminaldeki gibi, gönderdiğiniz mesajlar arasında gezinirsiniz. | <a href="assets/features/inputHistory.webp"><img src="assets/features/inputHistory.webp" width="160" alt="Mesaj geçmişi
|
|
45
|
-
| **
|
|
46
|
-
| **Mesaj alanında odağı koru** | Bir `/` komutu veya beceri gönderdikten sonra imleç mesaj alanında kalır ve hemen yeniden yazabilirsiniz. Bu, bir komut yazıp `Enter` tuşuna basan klavye makrolarında da çalışır. dsh komutu çözümlerken mesaj alanını salt okunur yapar ve tarayıcı bu sırada odağı kaldırır. Bu özellik odağı geri verir. Odak bir menüde, bir iletişim kutusunda veya başka bir alandaysa odağı geri vermez. | <a href="assets/features/keepFocus.webp"><img src="assets/features/keepFocus.webp" width="160" alt="Mesaj alanında odağı koru
|
|
47
|
-
| **Tek tıkla devam** | Durdurulan, hata veren veya yarıda kesilen bir turdan sonra boş mesaj alanında **▶** görünür. Tek tıklama, giriş alanına bir şey yazmadan ve sohbete görünür bir mesaj eklemeden mevcut konuşmayı sürdürür. (Model kısa ve gizli bir “kaldığın yerden devam et” notu alır. Bunun nedeni, Claude gibi bazı sağlayıcıların asistan yanıtıyla biten bir isteği reddetmesidir.) Kuyrukta bekleyen mesajlar yerinde kalır: ▶ yalnız durdurulan işi sürdürür, sonra kuyruk çalışır. Tamamlanan bir turdan sonra normal gönderme düğmesi kalır. | <a href="assets/features/continueButton.webp"><img src="assets/features/continueButton.webp" width="160" alt="Tek tıkla devam
|
|
48
|
-
| **Yeniden açılışta sürdür** | Varsayılan olarak kapalıdır: **Ayarlar → Composer Plus** içinden açın. Bir sohbet çalışırken dsh’den çıkarsanız (ya da dsh kapanırsa), dsh’yi yeniden açtığınızda o sohbet kendiliğinden devam eder. Bunun için Tek tıkla devam ile aynı gizli notu kullanır. Bir hedef turu (`/goal`) çalışıyorsa hedef bir sonraki turla devam eder (dsh her açılışta hedefleri, siz sürdürene kadar duraklatır). Sizin durdurduğunuz, tamamlanan veya hata veren sohbetler devam etmez. dsh’nin kendisinde bunun için bir ayar yoktur: dsh böyle bir turu yalnızca kesintiye uğradı olarak işaretler. | <a href="assets/features/resumeAfterRestart.webp"><img src="assets/features/resumeAfterRestart.webp" width="160" alt="Yeniden açılışta sürdür
|
|
49
|
-
| **Kuyrukta sürükle bırak** | Sıradaki mesajlarda bir tutamaç (⠿) görünür. Yerini değiştirmek için sürükleyin ya da tutamaca odaklanıp `↑` / `↓` tuşlarına basın. `Esc` taşımayı iptal eder. | <a href="assets/features/queueReorder.webp"><img src="assets/features/queueReorder.webp" width="160" alt="Kuyrukta sürükle bırak
|
|
50
|
-
| **Oturum bağlantısını kopyala** | Kenar çubuğunda bir sohbete sağ tıklayın → **Oturum bağlantısını kopyala**. `dsh-session:…` bağlantısını başka bir sohbete yapıştırın. O sohbet, salt okunur bağlam olarak eklenir. dsh 0.2.1’in kendi **Oturum kimliğini kopyala** seçeneği vardır ve bu seçenek yalnızca düz kimliği kopyalar. Bu öğe hemen onun ardından gelir. | <a href="assets/features/copyDeeplink.webp"><img src="assets/features/copyDeeplink.webp" width="160" alt="Oturum bağlantısını kopyala
|
|
51
|
-
| **Sohbeti Markdown olarak dışa aktar** | Kenar çubuğunda bir sohbete sağ tıklayın (ya da sohbetin **…** menüsünü açın) → **Markdown olarak dışa aktar…**. Bir iletişim kutusu, sohbette kaç mesaj olduğunu gösterir. **Panoya kopyala**, sohbeti Markdown olarak kopyalar. **.md dosyası olarak kaydet**, sohbeti tarayıcının indirme özelliğiyle `<chat title>.md` adıyla kaydeder (dsh masaüstü uygulamasında, sisteminizin ayarına göre İndirilenler klasörüne kaydeder ya da bir kaydetme penceresi açar). Dosyada sohbet başlığı, proje adı ve tarih vardır. Sonra her mesaj için bir `## Siz` ya da `## Asistan` bölümü gelir. Kod blokları olduğu gibi kalır. Bir mesajın açık bıraktığı kod bloğu kapatılır. | <a href="assets/features/exportMarkdown.webp"><img src="assets/features/exportMarkdown.webp" width="160" alt="Sohbeti Markdown olarak dışa aktar
|
|
52
|
-
| **Proje yolunu kopyala** | Kenar çubuğunda bir projeye sağ tıklayın → **Yolu kopyala**. Proje klasörünün tam yolu kopyalanır. | <a href="assets/features/copyProjectPath.webp"><img src="assets/features/copyProjectPath.webp" width="160" alt="Proje yolunu kopyala
|
|
53
|
-
| **Yeni sohbette proje arama** | Yeni sohbet → mesaj alanının üstündeki proje düğmesi. Projeler A–Z sırasıyla görünür ve üstte bir **Projelerde ara** kutusu vardır. Adın bir kısmını yazın (büyük/küçük harf ve aksan fark etmez). İlk eşleşmeyi seçmek için `Enter` tuşuna basın. Hiçbir proje eşleşmezse **Eşleşen proje yok** yazar. dsh’nin kenar çubuğundaki kayıtlı proje sırası değişmez. | <a href="assets/features/projectPicker.webp"><img src="assets/features/projectPicker.webp" width="160" alt="Yeni sohbette proje arama
|
|
54
|
-
| **Sonraki mesaj tahmini** | Varsayılan olarak açıktır: **Ayarlar → Composer Plus** içinden kapatabilirsiniz. Ajan bir turu bitirince (durdurulan veya hata veren bir tur değilse) boş mesaj alanı, bir sonraki mesajınız için gri renkte bir tahmin gösterir. Yanında **Kabul için Tab** ipucu vardır. `Tab` metni mesaj alanına koyar ama göndermez. `Esc` tahmini o tur için gizler. Yazmaya başlamak da tahmini gizler. Yeni bir tur tahmini yenisiyle değiştirir. Anahtarın altındaki **Model** menüsü dsh’nin kendi modellerini listeler (dsh’nin model menüsündeki listenin aynısı). Varsayılan olarak **dsh varsayılanı** seçilidir ve dsh’nin varsayılan modelini izler. Biten her tur için kısa bir model çağrısı yapılır. Tether’de tahmin, boş mesaj alanının üstünde görünür: alana koymak için tahmine dokunun. | <a href="assets/features/nextPrediction.webp"><img src="assets/features/nextPrediction.webp" width="160" alt="Sonraki mesaj tahmini
|
|
55
|
-
| **Yazarken tamamla** | Varsayılan olarak kapalıdır: **Ayarlar → Composer Plus** içinden açabilirsiniz. Siz yazarken imlecin hemen sonrasında gri bir metin, mesajınızın nasıl devam edebileceğini gösterir. `Tab` bu metni mesaja ekler ama göndermez. `Esc` metni gizler. Yalnız sizin yazacağınız sonraki kelimeleri önerir: size cevap vermez, uydurma hata metni ya da isim eklemez. Mesaj bitmiş görünüyorsa ya da model emin değilse hiçbir şey görünmez. Gri metnin sonraki harflerini yazarsanız metin kalır ve yeni bir model çağrısı yapılmaz. Anahtarının altında kendi **Model** menüsü vardır. Bu menünün ilk seçeneği olan **Sonraki mesaj tahminiyle aynı** (varsayılan), **Sonraki mesaj tahmini** modelini kullanır. Her özellikte farklı bir model kullanmak için başka bir model seçin (örneğin tamamlamalar için daha hızlı bir model). Yazarken her duraklamada bir model çağrısı yapar. Bu yüzden tahminden çok daha fazla token harcar: hızlı ve düşük maliyetli bir model seçin. Eğik çizgi komutunda, dosya etiketi olan bir mesajda veya imleç sonda değilken çalışmaz. Tether’de, siz yazarken metnin kalanı alanın üstünde görünür: eklemek için ona dokunun. | <a href="assets/features/typingCompletion.webp"><img src="assets/features/typingCompletion.webp" width="160" alt="Yazarken tamamla
|
|
56
|
-
|
|
|
57
|
-
| **
|
|
58
|
-
| **
|
|
59
|
-
| **
|
|
60
|
-
| **
|
|
61
|
-
| **
|
|
62
|
-
| **
|
|
63
|
-
| **
|
|
64
|
-
| **
|
|
65
|
-
| **
|
|
40
|
+
| **Değişiklikler paneli** | <a id="feature-changespanel"></a>Sağ kenar çubuğu → `+` → **Değişiklikler**. Değişen dosyaları `+/-` sayılarıyla görmek için **Commit edilmemiş**, **Hazırlanmamış**, **Hazırlanmış** veya **Dal** seçin. Farkını görmek için bir dosyaya tıklayın. **Son tur**, dsh’nin son tur için kendi incelemesini açar. | <a href="assets/features/changesPanel.webp"><img src="assets/features/changesPanel.webp" width="160" alt="Ekran görüntüsü: Değişiklikler paneli"></a> |
|
|
41
|
+
| **Özellik fikirleri** | <a id="feature-featureideas"></a>Sağ kenar çubuğu → `+` → **Özellik fikirleri** → **Özellik öner**. Sohbetin kendi modeli, sohbetin projesinin kısa bir özetini okur (üst düzey dosyalar, README ve manifest dosyasının başı, son 15 commit). Sonra en çok 8 özellik önerir. Öneriler, dsh’nin arayüz dilinde bir kart destesi olarak görünür. Aynı projede yeni bir sohbet başlatmak için kartı sağa kaydırın (ya da **✓** düğmesine tıklayın veya `→` tuşuna basın; her durumda kart kendi tarafına uçar). Yeni sohbet plan modunda başlar ve fikri istek olarak alır. Bu yüzden siz planı onaylamadan hiçbir şey değişmez. Planı atlamak için **▶ Hemen uygula** düğmesine tıklayın (ya da `↑` tuşuna basın; kart yukarı uçar). Yeni sohbet, fikri sıradan bir istek olarak alıp hemen başlar. Model değişikliği yapar ve kontrollerini çalıştırır (onaylar her zamanki gibi uygulanır). Atlamak için sola kaydırın (ya da **✕** veya `←`). **Geri al** (ya da `Z`) atlanan kartı geri getirir. İyi bir fikri sonraya saklamak için **↓** düğmesine tıklayın (ya da `↓` tuşuna basın). Fikir projenin **Sonra** listesine gider. Aynı proje klasöründeki her sohbet bu listeyi gösterir (yeniden başlatmadan sonra da). **Sonra (N)** listeyi açar. **Planla**, fikir için aynı plan modu sohbetini başlatır. **Hemen uygula** ise sohbeti plan olmadan başlatır. İkisi de fikri listeden çıkarır. **Tümünü tek planda başlat (N)**, listedeki bütün fikirler için tek bir plan modu sohbeti başlatır. Böylece ortak kısımlar yalnızca bir kez planlanır. **Listeden kaldır** fikri siler. **Yapılacaklar listesi olarak kopyala**, bütün listeyi bir sorun takip aracı ya da TODO dosyası için Markdown yapılacaklar listesi olarak panoya kopyalar (`- [ ] Title — Summary`, her fikir için bir satır). Bu işlem ağ isteği yapmaz. **Daha fazla fikir** yeni kartlar ekler. Yalnızca tek bir alanla ilgili fikir almak için **Özellik öner** düğmesinin yanındaki alana kısa bir **Odak konusu** yazın (en çok 80 karakter; `Enter` da öneri ister). Ya da alanın altındaki sabit konulardan birine tıklayın: **Performans**, **Erişilebilirlik**, **Testler**, **Güvenlik**, **Kullanılabilirlik** veya **Dokümantasyon** (temizlemek için yeniden tıklayın). Model bundan sonra yalnızca o konuyla ilgili özellikler önerir. Alan boşsa model her türlü özelliği önerebilir. Bir projede aynı fikir iki kez önerilmez: önerilen her fikir (atlanan, saklanan ya da başlatılan) projenin **Geçmiş** listesine gider. Modele bu fikirleri yeniden önermemesi söylenir ve aynı başlıkla gelen bir fikir atılır. **Geçmiş**, fikirleri **Başlatıldı** ya da **Önerildi** etiketiyle listeler. **Unut** (ya da **Tümünü unut**) bir fikrin yeniden gelmesine izin verir; **Sonra** listesinde hâlâ duran bir fikir, siz onu oradan kaldırana kadar önerilerde yer almaz. Model yalnızca siz tıkladığınızda çalışır. | <a href="assets/features/featureIdeas.webp"><img src="assets/features/featureIdeas.webp" width="160" alt="Ekran görüntüsü: Özellik fikirleri"></a> |
|
|
42
|
+
| **İçerik araması** | <a id="feature-contentsearch"></a>dsh’nin kendi kenar çubuğu araması (**Çalışma alanları** yanındaki büyüteç; masaüstü uygulamasında `Cmd+K`, tarayıcıda `Cmd+Alt+K`) sohbetleri yalnızca başlığa göre değil, mesajlarınızdaki ve yanıtlardaki sözcüklere göre de bulur. Eşleşen metni sohbetin altında gösterir. Bu arama dsh’de zaten vardır, ama kapalı gelir. Bu özellik aramayı açar ve bilgisayarınızda bir arama dizini dosyası kullanır. Dizin, dsh açıldıktan sonraki ilk aramada oluşturulur (250 sohbet için yaklaşık 15 sn, bkz. Sınırlar) ve sonraki açılışlarda yeniden kullanılır. Varsayılan olarak açıktır. Bir değişiklik, dsh’yi yeniden başlattıktan sonra geçerli olur. | <a href="assets/features/contentSearch.webp"><img src="assets/features/contentSearch.webp" width="160" alt="Ekran görüntüsü: İçerik araması"></a> |
|
|
43
|
+
| **Tur geri alma** | <a id="feature-turnrollback"></a>Mesajlarınızdan birinin üzerine gelin ve **↶** düğmesine tıklayın (Kopyala düğmesinin yanında). **Yalnızca sohbet**, o mesajı ve sonrasındaki her şeyi (yanıtlar, araç çağrıları) sohbetten ve modelin bağlamından çıkarır. Mesajı da mesaj alanına geri koyar: mesajı değiştirip yeniden gönderin. **Sohbet ve dosyalar** önce o mesajdan sonra değişen proje dosyalarını listeler. Sonra bu dosyaları da eski hâline döndürür. Yalnızca dsh’nin düzenleme araçlarının değil, komutların (`bash`) yaptığı değişiklikler de buna dahildir. Çalışan bir tur önce durur. Sohbet günlüğü hiçbir zaman yeniden yazılmaz: geri çekilen kısmı tek bir gizli işaretçi gizler. dsh’nin kendi `/compact` komutu da eski mesajları aynı yolla gizler. [dsh-rewind-plugin](https://www.npmjs.com/package/dsh-rewind-plugin) yüklüyse bu işi o yapar ve Composer Plus ikinci bir düğme göstermez. | <a href="assets/features/turnRollback.webp"><img src="assets/features/turnRollback.webp" width="160" alt="Ekran görüntüsü: Tur geri alma"></a> |
|
|
44
|
+
| **Sohbeti sil** | <a id="feature-deletechat"></a>Kenar çubuğu → bir sohbetin **…** menüsü (ya da sağ tıklama) → **Sil…** → **Sil**. dsh kendisi yalnızca arşivleyebilir. Sohbet durur (dsh’nin kendi arşivlemesinde olduğu gibi turu, arka plan işleri, alt ajanları ve zamanlanmış hatırlatıcıları da durur). Kayıtlı geçmişi, alt ajan sohbetleriyle birlikte macOS Çöp Sepeti’ne taşınır (diğer sistemlerde: `$DSH_HOME/trash`). Sohbeti geri almak için klasörü yerine koyun ve dsh’yi yeniden başlatın: sohbet, kenar çubuğundaki **Yalnızca arşivlenmişler** görünümünde görünür. | <a href="assets/features/deleteChat.webp"><img src="assets/features/deleteChat.webp" width="160" alt="Ekran görüntüsü: Sohbeti sil"></a> |
|
|
45
|
+
| **Yazma kutusunda proje adı** | <a id="feature-projectname"></a>Mesaj alanının altındaki satır (turlar, token’lar, önbellek isabeti, bağlam) sohbetin proje adıyla başlar. Böylece bir sohbetin hangi projede çalıştığını her zaman görürsünüz. Bu ad, dsh’nin kendi proje başlığıdır. Projenin başlığı yoksa klasör adıdır. Klasörün tam yolunu görmek için adın üzerine gelin. Sohbeti kenar çubuğunda, liste ya da proje görünümünde bulmak için ada tıklayın: kenar çubuğu ve proje açılır (daraltılmış bir proje ve projenin **N oturum daha göster** kısmı da açılır), liste sohbete kayar ve sohbet 5 saniye boyunca yanıp söner. | <a href="assets/features/projectName.webp"><img src="assets/features/projectName.webp" width="160" alt="Ekran görüntüsü: Yazma kutusunda proje adı"></a> |
|
|
46
|
+
| **Mesaj geçmişi** | <a id="feature-inputhistory"></a>Boş mesaj alanında `↑` / `↓` tuşlarına basın. Terminaldeki gibi, gönderdiğiniz mesajlar arasında gezinirsiniz. | <a href="assets/features/inputHistory.webp"><img src="assets/features/inputHistory.webp" width="160" alt="Ekran görüntüsü: Mesaj geçmişi"></a> |
|
|
47
|
+
| **Shift+Tab ile plan modu** | <a id="feature-plantoggle"></a>`Shift+Tab`, taslağın başına `/plan ` ekler (kaldırmak için yeniden basın). Sohbet zaten plan modundaysa `Shift+Tab` plan modundan çıkar. | <a href="assets/features/planToggle.webp"><img src="assets/features/planToggle.webp" width="160" alt="Ekran görüntüsü: Shift+Tab ile plan modu"></a> |
|
|
48
|
+
| **Mesaj alanında odağı koru** | <a id="feature-keepfocus"></a>Bir `/` komutu veya beceri gönderdikten sonra imleç mesaj alanında kalır ve hemen yeniden yazabilirsiniz. Bu, bir komut yazıp `Enter` tuşuna basan klavye makrolarında da çalışır. dsh komutu çözümlerken mesaj alanını salt okunur yapar ve tarayıcı bu sırada odağı kaldırır. Bu özellik odağı geri verir. Odak bir menüde, bir iletişim kutusunda veya başka bir alandaysa odağı geri vermez. | <a href="assets/features/keepFocus.webp"><img src="assets/features/keepFocus.webp" width="160" alt="Ekran görüntüsü: Mesaj alanında odağı koru"></a> |
|
|
49
|
+
| **Tek tıkla devam** | <a id="feature-continuebutton"></a>Durdurulan, hata veren veya yarıda kesilen bir turdan sonra boş mesaj alanında **▶** görünür. Tek tıklama, giriş alanına bir şey yazmadan ve sohbete görünür bir mesaj eklemeden mevcut konuşmayı sürdürür. (Model kısa ve gizli bir “kaldığın yerden devam et” notu alır. Bunun nedeni, Claude gibi bazı sağlayıcıların asistan yanıtıyla biten bir isteği reddetmesidir.) Kuyrukta bekleyen mesajlar yerinde kalır: ▶ yalnız durdurulan işi sürdürür, sonra kuyruk çalışır. Tamamlanan bir turdan sonra normal gönderme düğmesi kalır. | <a href="assets/features/continueButton.webp"><img src="assets/features/continueButton.webp" width="160" alt="Ekran görüntüsü: Tek tıkla devam"></a> |
|
|
50
|
+
| **Yeniden açılışta sürdür** | <a id="feature-resumeafterrestart"></a>Varsayılan olarak kapalıdır: **Ayarlar → Composer Plus** içinden açın. Bir sohbet çalışırken dsh’den çıkarsanız (ya da dsh kapanırsa), dsh’yi yeniden açtığınızda o sohbet kendiliğinden devam eder. Bunun için Tek tıkla devam ile aynı gizli notu kullanır. Bir hedef turu (`/goal`) çalışıyorsa hedef bir sonraki turla devam eder (dsh her açılışta hedefleri, siz sürdürene kadar duraklatır). Sizin durdurduğunuz, tamamlanan veya hata veren sohbetler devam etmez. dsh’nin kendisinde bunun için bir ayar yoktur: dsh böyle bir turu yalnızca kesintiye uğradı olarak işaretler. | <a href="assets/features/resumeAfterRestart.webp"><img src="assets/features/resumeAfterRestart.webp" width="160" alt="Ekran görüntüsü: Yeniden açılışta sürdür"></a> |
|
|
51
|
+
| **Kuyrukta sürükle bırak** | <a id="feature-queuereorder"></a>Sıradaki mesajlarda bir tutamaç (⠿) görünür. Yerini değiştirmek için sürükleyin ya da tutamaca odaklanıp `↑` / `↓` tuşlarına basın. `Esc` taşımayı iptal eder. | <a href="assets/features/queueReorder.webp"><img src="assets/features/queueReorder.webp" width="160" alt="Ekran görüntüsü: Kuyrukta sürükle bırak"></a> |
|
|
52
|
+
| **Oturum bağlantısını kopyala** | <a id="feature-copydeeplink"></a>Kenar çubuğunda bir sohbete sağ tıklayın → **Oturum bağlantısını kopyala**. `dsh-session:…` bağlantısını başka bir sohbete yapıştırın. O sohbet, salt okunur bağlam olarak eklenir. dsh 0.2.1’in kendi **Oturum kimliğini kopyala** seçeneği vardır ve bu seçenek yalnızca düz kimliği kopyalar. Bu öğe hemen onun ardından gelir. | <a href="assets/features/copyDeeplink.webp"><img src="assets/features/copyDeeplink.webp" width="160" alt="Ekran görüntüsü: Oturum bağlantısını kopyala"></a> |
|
|
53
|
+
| **Sohbeti Markdown olarak dışa aktar** | <a id="feature-exportmarkdown"></a>Kenar çubuğunda bir sohbete sağ tıklayın (ya da sohbetin **…** menüsünü açın) → **Markdown olarak dışa aktar…**. Bir iletişim kutusu, sohbette kaç mesaj olduğunu gösterir. **Panoya kopyala**, sohbeti Markdown olarak kopyalar. **.md dosyası olarak kaydet**, sohbeti tarayıcının indirme özelliğiyle `<chat title>.md` adıyla kaydeder (dsh masaüstü uygulamasında, sisteminizin ayarına göre İndirilenler klasörüne kaydeder ya da bir kaydetme penceresi açar). Dosyada sohbet başlığı, proje adı ve tarih vardır. Sonra her mesaj için bir `## Siz` ya da `## Asistan` bölümü gelir. Kod blokları olduğu gibi kalır. Bir mesajın açık bıraktığı kod bloğu kapatılır. | <a href="assets/features/exportMarkdown.webp"><img src="assets/features/exportMarkdown.webp" width="160" alt="Ekran görüntüsü: Sohbeti Markdown olarak dışa aktar"></a> |
|
|
54
|
+
| **Proje yolunu kopyala** | <a id="feature-copyprojectpath"></a>Kenar çubuğunda bir projeye sağ tıklayın → **Yolu kopyala**. Proje klasörünün tam yolu kopyalanır. | <a href="assets/features/copyProjectPath.webp"><img src="assets/features/copyProjectPath.webp" width="160" alt="Ekran görüntüsü: Proje yolunu kopyala"></a> |
|
|
55
|
+
| **Yeni sohbette proje arama** | <a id="feature-projectpicker"></a>Yeni sohbet → mesaj alanının üstündeki proje düğmesi. Projeler A–Z sırasıyla görünür ve üstte bir **Projelerde ara** kutusu vardır. Adın bir kısmını yazın (büyük/küçük harf ve aksan fark etmez). İlk eşleşmeyi seçmek için `Enter` tuşuna basın. Hiçbir proje eşleşmezse **Eşleşen proje yok** yazar. dsh’nin kenar çubuğundaki kayıtlı proje sırası değişmez. | <a href="assets/features/projectPicker.webp"><img src="assets/features/projectPicker.webp" width="160" alt="Ekran görüntüsü: Yeni sohbette proje arama"></a> |
|
|
56
|
+
| **Sonraki mesaj tahmini** | <a id="feature-nextprediction"></a>Varsayılan olarak açıktır: **Ayarlar → Composer Plus** içinden kapatabilirsiniz. Ajan bir turu bitirince (durdurulan veya hata veren bir tur değilse) boş mesaj alanı, bir sonraki mesajınız için gri renkte bir tahmin gösterir. Yanında **Kabul için Tab** ipucu vardır. `Tab` metni mesaj alanına koyar ama göndermez. `Esc` tahmini o tur için gizler. Yazmaya başlamak da tahmini gizler. Yeni bir tur tahmini yenisiyle değiştirir. Anahtarın altındaki **Model** menüsü dsh’nin kendi modellerini listeler (dsh’nin model menüsündeki listenin aynısı). Varsayılan olarak **dsh varsayılanı** seçilidir ve dsh’nin varsayılan modelini izler. Biten her tur için kısa bir model çağrısı yapılır. Tether’de tahmin, boş mesaj alanının üstünde görünür: alana koymak için tahmine dokunun. | <a href="assets/features/nextPrediction.webp"><img src="assets/features/nextPrediction.webp" width="160" alt="Ekran görüntüsü: Sonraki mesaj tahmini"></a> |
|
|
57
|
+
| **Yazarken tamamla** | <a id="feature-typingcompletion"></a>Varsayılan olarak kapalıdır: **Ayarlar → Composer Plus** içinden açabilirsiniz. Siz yazarken imlecin hemen sonrasında gri bir metin, mesajınızın nasıl devam edebileceğini gösterir. `Tab` bu metni mesaja ekler ama göndermez. `Esc` metni gizler. Yalnız sizin yazacağınız sonraki kelimeleri önerir: size cevap vermez, uydurma hata metni ya da isim eklemez. Mesaj bitmiş görünüyorsa ya da model emin değilse hiçbir şey görünmez. Gri metnin sonraki harflerini yazarsanız metin kalır ve yeni bir model çağrısı yapılmaz. Anahtarının altında kendi **Model** menüsü vardır. Bu menünün ilk seçeneği olan **Sonraki mesaj tahminiyle aynı** (varsayılan), **Sonraki mesaj tahmini** modelini kullanır. Her özellikte farklı bir model kullanmak için başka bir model seçin (örneğin tamamlamalar için daha hızlı bir model). Yazarken her duraklamada bir model çağrısı yapar. Bu yüzden tahminden çok daha fazla token harcar: hızlı ve düşük maliyetli bir model seçin. Eğik çizgi komutunda, dosya etiketi olan bir mesajda veya imleç sonda değilken çalışmaz. Tether’de, siz yazarken metnin kalanı alanın üstünde görünür: eklemek için ona dokunun. | <a href="assets/features/typingCompletion.webp"><img src="assets/features/typingCompletion.webp" width="160" alt="Ekran görüntüsü: Yazarken tamamla"></a> |
|
|
58
|
+
| **İstemi iyileştir** | <a id="feature-promptimprove"></a>Kaba bir istek yazın, sonra model menüsünün yanındaki sihirli değneğe (**İstemi iyileştir**) tıklayın. Tek bir model çağrısı isteği daha net bir isteme dönüştürür: önce hedef, birden çok parça varsa kısa numaralı adımlar ve çalıştırılacak kontrol. Bu sohbeti (geri alınan mesajlar hariç), projenin README, AGENTS.md ve manifest dosyalarını, değişen dosyaları ve adı sözcüklerinizle eşleşen dosyaları okur; dilinizi korur. Dosya adı uydurmaz. Yeni metin taslağınızın yerine geçer ama gönderilmez: okuyun, düzenleyin, sonra `Enter` tuşuna basın. `Cmd/Ctrl+Z` metninizi tek adımda geri getirir; düğme (**İyileştirmeyi geri al**) de aynısını yapar. O çalışırken yazarsanız yeni metniniz kalır. `Esc` ya da ikinci tıklama iptal eder. Ayarlar'da kendi **Model** menüsü vardır (varsayılan: **Sohbetin modeliyle aynı**). Eğik çizgi komutları ve dosya chip'i olan mesajlar için çalışmaz. Tether'de değnek, yazı alanının yanındadır. | <a href="assets/features/promptImprove.webp"><img src="assets/features/promptImprove.webp" width="160" alt="Ekran görüntüsü: İstemi iyileştir"></a> |
|
|
59
|
+
| **Sohbet boyunca izin** | <a id="feature-allowforchat"></a>Otomatik inceleme size sorduğunda onay kartında **Bu sohbet boyunca izin ver** düğmesi görünür. Bundan sonra aynı sohbette aynı araca, parametreleri ne olursa olsun izin verilir. Başlıktaki küçük bir etiket izinleri listeler ve kaldırır. İzinler yeniden başlatmadan sonra da korunur. | <a href="assets/features/allowForChat.webp"><img src="assets/features/allowForChat.webp" width="160" alt="Ekran görüntüsü: Sohbet boyunca izin"></a> |
|
|
60
|
+
| **Proje durumu** | <a id="feature-projectstatus"></a>Kenar çubuğundaki proje satırı, sohbetlerindeki dönen simge / bekliyor / tamamlandı işaretinin aynısını gösterir. Böylece daraltılmış bir proje de içindeki bir sohbetin çalıştığını ya da sizi beklediğini gösterir. Önce sizi bekleyen bir sohbet gösterilir, sonra henüz açmadığınız tamamlanmış bir sohbet (yeşil nokta, başka bir sohbet hâlâ çalışırken de), sonra dönen simge. Ayrıntılar için üzerine gelin. | <a href="assets/features/projectStatus.webp"><img src="assets/features/projectStatus.webp" width="160" alt="Ekran görüntüsü: Proje durumu"></a> |
|
|
61
|
+
| **Etkin projeler üstte** | <a id="feature-activeprojectsfirst"></a>Bir sohbet çalışmaya başladığında ya da sizi beklediğinde, projesi dsh’nin kendi satır animasyonuyla kenar çubuğunun en üstüne taşınır (projeyi oraya sürüklediğinizdeki hareketin aynısı). Tamamlanan projeler yerinde kalır. Onları her zamanki gibi istediğiniz yere sürükleyebilirsiniz. Taşımalar dsh’nin proje sırasına kaydedilir. Bu yüzden özelliği kapatmak mevcut sırayı korur. | <a href="assets/features/projectStatus.webp"><img src="assets/features/projectStatus.webp" width="160" alt="Ekran görüntüsü: Etkin projeler üstte"></a> |
|
|
62
|
+
| **Yakın zamanda aktif proje filtresi** | <a id="feature-recentprojects"></a>Kenar çubuğu → görünüm seçenekleri (kaydırıcı simgesi) → **Son 2 saatte aktif olanlar**. Bu seçenek seçiliyken kenar çubuğu yalnızca son 2 saatte etkin bir sohbeti olan projeleri gösterir. Etkin sohbet şunlardan biridir: bu sürede güncellenen bir sohbet, çalışan ya da bekleyen bir sohbet, açık olan sohbet veya henüz açmadığınız tamamlanmış bir sohbet (dsh’nin yeşil “tamamlandı” noktası). Sonuncusu 2 saat geçtikten sonra da geçerlidir. Böyle bir sohbeti olmayan projeler gizlenir; yeni ve boş projeler de gizlenir. Tüm projeleri göstermek için seçeneği yeniden seçin. Seçim bu cihazda saklanır. | <a href="assets/features/recentProjects.webp"><img src="assets/features/recentProjects.webp" width="160" alt="Ekran görüntüsü: Yakın zamanda aktif proje filtresi"></a> |
|
|
63
|
+
| **Tüm projeleri daralt** | <a id="feature-collapseprojects"></a>Kenar çubuğunda bir proje açıkken görünüm seçeneklerinin (kaydırıcı simgesi) yanında bir düğme görünür. Açık olan tüm projeleri bir kerede kapatmak için bu düğmeye tıklayın (örneğin 5 projeden açık olan 3’ünü). Hiçbir proje açık değilse düğme yeniden gizlenir. | <a href="assets/features/collapseProjects.webp"><img src="assets/features/collapseProjects.webp" width="160" alt="Ekran görüntüsü: Tüm projeleri daralt"></a> |
|
|
64
|
+
| **Duruma göre sıralama** | <a id="feature-statusorder"></a>Kenar çubuğu → görünüm seçenekleri → **Sıralama ölçütü** → **Duruma göre** (**Tek listede** ile). Önce tamamlanan sohbetler gelir (dsh’nin “tamamlandı” noktası; hatayla biten bir tur da bu noktayı alır). Sonra çalışan ya da bekleyen sohbetler, sonra etkin bir otomasyonu (zamanlanmış görev) olan sohbetler, en sonda da diğerleri dsh’nin sırasıyla gelir. Tamamlanan bir sohbeti açmak onu aşağı taşır. Yalnızca görünüm değişir: geri dönmek için **Elle** ya da **Son güncelleme** seçin. | <a href="assets/features/statusOrder.webp"><img src="assets/features/statusOrder.webp" width="160" alt="Ekran görüntüsü: Duruma göre sıralama"></a> |
|
|
65
|
+
| **Arka plan bildirimleri** | <a id="feature-notifications"></a>dsh arka plandayken bir tur bittiğinde (yanıtın ilk satırıyla) ya da bir sohbet gerçekten sizi beklediğinde bildirim alırsınız. Bekleme nedeni bir onay (araç adı), bir yanıt (soru) veya bir plan incelemesi olabilir. Bir isteğin 1,5 sn sonra hâlâ açık olması gerekir. Bu yüzden otomatik yanıtlanan onaylar (Otomatik inceleme izinleri, diğer eklentiler) bildirim göstermez. Bir istek yanıtlanınca bildirimi de hemen geri çekilir. Dock/görev çubuğu rozeti bekleyen sohbetleri sayar. Bildirime tıklamak o sohbeti açar. | <a href="assets/features/notifications.webp"><img src="assets/features/notifications.webp" width="160" alt="Ekran görüntüsü: Arka plan bildirimleri"></a> |
|
|
66
|
+
| **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> |
|
|
67
|
+
| **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, 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. | <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> |
|
|
68
|
+
| **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ı bir kez gösterir (notlar aynı güncelleme denetiminden gelir, ek ağ çağrısı yapılmaz). **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> |
|
|
69
|
+
|
|
70
|
+
<!-- END GENERATED FEATURES -->
|
|
66
71
|
|
|
67
72
|
Düğmeler, araç ipuçları, uyarılar ve bildirimler seçili dsh dilini kullanır (aşağıdaki Uygulama dili bölümüne bakın).
|
|
68
73
|
|
|
69
74
|
## Ayarlar
|
|
70
75
|
|
|
71
|
-
Her özelliği ayrı ayrı açıp kapatabilirsiniz: dsh **Ayarlar → Composer Plus**. Her satırda küçük bir ekran görüntüsü vardır. Büyük önizleme için üzerine gelin, tam boyutta açmak için tıklayın (`Esc` kapatır). Üstteki **Özellik ara** kutusu sayfayı ada veya açıklamaya göre süzer (her dilde; büyük/küçük harf ve aksan fark etmez). `Esc` kutuyu temizler. Her satırda bir anahtar ve kısa bir açıklama vardır. Değişiklikler yeniden başlatma gerekmeden hemen uygulanır ve o cihazda hatırlanır. **Mobil bağlantı**, **Yeniden açılışta sürdür** ve **Yazarken tamamla** dışında her şey varsayılan olarak açıktır. Bu üçünün ve **İçerik araması**, **Tur geri alma** ile **Sonraki mesaj tahmini** özelliklerinin anahtarlarını dsh’nin Host’u saklar. Bu yüzden bu ayarlar her pencerede geçerlidir ve yeniden başlatmadan sonra da korunur. **Sonraki mesaj tahmini
|
|
76
|
+
Her özelliği ayrı ayrı açıp kapatabilirsiniz: dsh **Ayarlar → Composer Plus**. Her satırda küçük bir ekran görüntüsü vardır. Büyük önizleme için üzerine gelin, tam boyutta açmak için tıklayın (`Esc` kapatır). Üstteki **Özellik ara** kutusu sayfayı ada veya açıklamaya göre süzer (her dilde; büyük/küçük harf ve aksan fark etmez). `Esc` kutuyu temizler. Her satırda bir anahtar ve kısa bir açıklama vardır. Satır adının yanındaki küçük **?**, README’de o özelliği anlatan bölümü dsh’nin arayüz dilindeki README dosyasında açar. Değişiklikler yeniden başlatma gerekmeden hemen uygulanır ve o cihazda hatırlanır. **Mobil bağlantı**, **Yeniden açılışta sürdür** ve **Yazarken tamamla** dışında her şey varsayılan olarak açıktır. Bu üçünün ve **İçerik araması**, **Tur geri alma** ile **Sonraki mesaj tahmini** özelliklerinin anahtarlarını dsh’nin Host’u saklar. Bu yüzden bu ayarlar her pencerede geçerlidir ve yeniden başlatmadan sonra da korunur. **Sonraki mesaj tahmini**, **Yazarken tamamla** ve **İstemi iyileştir** için seçilen **Model** de Host’ta saklanır (**Yazarken tamamla** için varsayılan: **Sonraki mesaj tahminiyle aynı**; **İstemi iyileştir** için varsayılan: **Sohbetin modeliyle aynı**). **İçerik araması** yalnızca dsh yeniden başladıktan sonra değişir (dsh bu ayarı açılışta okur). O zamana kadar satırında **Bu değişikliğin geçerli olması için dsh’yi yeniden başlatın.** yazar.
|
|
72
77
|
|
|
73
78
|
<p align="center"><img src="docs/images/settings.webp" width="720" alt="Ayarlar → Composer Plus: özellik araması, dil seçici, güncelleme satırı ve her özellik için bir anahtar; üzerine gelince ekran görüntüsü önizlemesi"></p>
|
|
74
79
|
|
|
@@ -120,16 +125,17 @@ dsh `0.2.0-rc.2` (masaüstü ve web) ve `0.2.1-rc.2` (web) üzerinde test edildi
|
|
|
120
125
|
- **Tur geri alma:** Host, her mesajınızdan önce sohbetin klasörünün bir git anlık görüntüsünü alır ve bunu kendi ayrı deposunda saklar: `$DSH_HOME/cache/composer-plus/rollback/<chat>.git` (yalnızca sahibin erişebildiği klasör). Bu depo, o klasörde git’in gördüğü dosyaların kopyalarını tutar (yok sayılan dosyaları tutmaz). Bu yüzden proje kadar özeldir. Deponuzun nesnelerini okur (git’te zaten olanların kopyasını almaz). Deponuzun index’ine, `HEAD`’ine, dallarına, etiketlerine, stash’ine veya yapılandırmasına hiçbir zaman yazmaz. git’in orada yaptığı tek değişiklik, yeniden kullandığı nesne dosyalarının zaman damgasını yenilemektir (bu, `git gc` ile temizlenmelerini geciktirir). Dosyalarla geri alma, yalnızca sohbetin klasöründeki normal dosyalara yazar. Sembolik bağlantıları, kanalları (pipe) ve klasörün dışındaki her şeyi atlar. Hiçbir veri bilgisayarınızdan çıkmaz. Bu ayrı depoyu dsh kapalıyken silebilirsiniz (bu durumda yeni mesajlar gelene kadar geri alma yalnızca sohbet için çalışır). **Sohbeti sil**, sohbetin ayrı deposunu da siler. Anahtar `$DSH_HOME/storages/dsh-composer-plus/rollback.json` dosyasındadır.
|
|
121
126
|
- **Sohbeti Markdown olarak dışa aktar:** Host tarafı yalnızca sohbetin kendi günlüğünü okur (dsh’nin gösterdiği mesajların aynısı) ve bunları sayfaya verir. Hiçbir proje dosyasını okumaz ve ağ üzerinden hiçbir şey göndermez. Markdown metni yalnızca panonuza ya da kaydettiğiniz dosyaya gider.
|
|
122
127
|
- **Sohbeti sil:** sohbetin kendi günlük klasörlerini (`$DSH_HOME/sessions/<project>/<chat>`) Çöp Sepeti’ne taşır. Proje klasörüne dokunmaz.
|
|
123
|
-
- **Sohbet boyunca izin:** izinler `$DSH_HOME/storages/dsh-composer-plus/grants.json` dosyasında saklanır (yalnızca sahibin erişebildiği izinlerle). Bir izin,
|
|
128
|
+
- **Sohbet boyunca izin:** izinler `$DSH_HOME/storages/dsh-composer-plus/grants.json` dosyasında saklanır (yalnızca sahibin erişebildiği izinlerle). Bir izin, tek bir sohbetteki tek bir aracı kapsar. O araç yazabiliyorsa izin her türlü yazmayı da kapsar. İzni başlıktaki etiketten kaldırın.
|
|
124
129
|
- Otomatik inceleme yine her çağrıda çalışır. İnceleme hataları hiçbir zaman otomatik olarak onaylanmaz.
|
|
125
|
-
- **Mobil bağlantı:** siz açana kadar kapalıdır. Açıkken Host tarafı Tether ağ geçidini çalıştırır. Ağ geçidinde iki bölüm vardır: 19390 numaralı portta yalnızca Wi-Fi alt ağınızı ve tailnet’inizi (100.64.0.0/10) kabul eden HTTPS ve `127.0.0.1:19391` adresinde bir eşleştirme sayfası (yalnızca bu Mac). Bir telefonun eşleşmesi için QR kodundan tek kullanımlık bir kod (5 dakika geçerli) ve sizin Mac’te **Approve** ile onay vermeniz gerekir. Telefon, ağ geçidinin sertifikasını sabitler (pinning). Mac, her telefonun token’ının yalnızca bir özetini (hash) tutar (30 gün; kullanıldıkça yenilenir). **
|
|
130
|
+
- **Mobil bağlantı:** siz açana kadar kapalıdır. Açıkken Host tarafı Tether ağ geçidini çalıştırır. Ağ geçidinde iki bölüm vardır: 19390 numaralı portta yalnızca Wi-Fi alt ağınızı ve tailnet’inizi (100.64.0.0/10) kabul eden HTTPS ve `127.0.0.1:19391` adresinde bir eşleştirme sayfası (yalnızca bu Mac). Bir telefonun eşleşmesi için QR kodundan tek kullanımlık bir kod (5 dakika geçerli) ve sizin Mac’te **Approve** ile onay vermeniz gerekir. Telefon, ağ geçidinin sertifikasını sabitler (pinning). Mac, her telefonun token’ının yalnızca bir özetini (hash) tutar (30 gün; kullanıldıkça yenilenir). **Remove** o telefonun bağlantılarını hemen kapatır. Telefonlar yalnızca izin listesindeki dsh yöntemlerini çağırabilir (sohbetler, istemler, ekler, eğik çizgi komutları, onaylar, sorular, modeller, ajanlar, hedefler). Ayarları, kimlik bilgilerini, dosya tarayıcısını veya terminali çağıramaz. Veriler: `$DSH_HOME/storages/dsh-composer-plus/mobile/`. Ayrıntılar: [tether/README.md](tether/README.md).
|
|
126
131
|
- **Güncellemeler:** Host tarafı en son sürümü `api.github.com` adresine, o sürümün kendisini de `registry.npmjs.org` adresine sorar. Size veya sohbetlerinize ait hiçbir bilgi gönderilmez. Yükleme, dsh’nin eklenti yöneticisiyle yapılır (`pnpm add dsh-composer-plus@<version>`; dsh 0.2.1 yüklü bir eklenti için bunu reddederse `pnpm add https://registry.npmjs.org/dsh-composer-plus/-/dsh-composer-plus-<version>.tgz` kullanılır ve profil bundan sonra bu URL’yi eklentinin kaynağı olarak listeler). Bu yüzden dsh’nin kendi kayıt defteri, betik ve sürüm uyumluluğu denetimleri uygulanır. Ön sürüm etiketleri ve daha eski sürümler hiçbir zaman yüklenmez.
|
|
127
132
|
- **Sonraki mesaj tahmini:** varsayılan olarak açıktır. Bu model çağrılarını durdurmak için özelliği **Ayarlar → Composer Plus** içinden kapatın. Biten her turdan sonra Host tarafı, sohbetteki kendi mesajlarınızı ve ajanın metin yanıtlarını seçilen modele gönderir (siz başka bir model seçmediyseniz dsh’nin varsayılan modeli). Araç çıktısı, gizli bağlam ve akıl yürütme metni gönderilmez. En çok yaklaşık 6.000 karakter (en yeni kısım) gider. İstek, dsh’nin kendi sağlayıcı ayarları üzerinden tek bir istek olarak gider. Sohbete hiçbir şey kaydedilmez: tahmin sohbet geçmişine eklenmez. Anahtar ve model seçimi `$DSH_HOME/storages/dsh-composer-plus/predict.json` dosyasındadır (yalnızca sahibin erişebildiği dosya).
|
|
128
133
|
- **Yazarken tamamla:** siz açana kadar kapalıdır. Açıkken, yazarken her duraklamada Host tarafı o ana kadar yazdığınız metni, sohbetteki kendi mesajlarınızı ve ajanın metin yanıtlarını **Yazarken tamamla** için seçilen modele (varsayılan olarak **Sonraki mesaj tahmini** modeline) gönderir. Araç çıktısı, gizli bağlam ve akıl yürütme metni gönderilmez. Sohbetten en çok yaklaşık 3.000 karakter gider. Daha yeni bir duraklama eski isteği durdurur. Sohbete hiçbir şey kaydedilmez. Anahtar `$DSH_HOME/storages/dsh-composer-plus/complete.json` dosyasındadır (yalnızca sahibin erişebildiği dosya).
|
|
134
|
+
- **İstemi iyileştir:** siz sihirli değneğe tıklayana kadar hiçbir şey çalışmaz. Sonra Host tarafı, **İstemi iyileştir** için seçilen modele (varsayılan olarak sohbetin kendi modeline) tek bir istek gönderir. İstekte şunlar vardır: taslağınız; sohbetteki kendi mesajlarınız ve ajanın metin yanıtları (en çok yaklaşık 6.000 karakter, en yeni kısım); **Özellik fikirleri** ile aynı proje özeti (aynı dosya kurallarıyla: `.env*` dosyaları ve anahtar dosyaları okunmaz, klasörün dışını gösteren sembolik bağlantılar ve FIFO’lar atlanır); `git status` komutunun değişmiş olarak listelediği yollar ve adı taslağınızla ortak sözcük içeren en çok 30 izlenen veya izlenmeyen (yok sayılmayan) yol. Araç çıktısı, gizli bağlam, akıl yürütme metni ve geri alınan mesajlar gönderilmez. Bu özet dışında hiçbir dosya içeriği gönderilmez. Sohbete ve projeye hiçbir şey yazılmaz: yanıt yalnızca mesaj alanındaki taslağınızın yerine geçer ve göndermeye siz karar verirsiniz. Model seçimi `$DSH_HOME/storages/dsh-composer-plus/improve.json` dosyasındadır (yalnızca sahibin erişebildiği dosya).
|
|
129
135
|
|
|
130
136
|
## Sorun giderme
|
|
131
137
|
|
|
132
|
-
- **macOS’ta bildirim gelmiyor:** Sistem Ayarları → Bildirimler → DeepSeek Harness → bildirimlere izin verin. Bildirimlerin ekranda kalması için
|
|
138
|
+
- **macOS’ta bildirim gelmiyor:** Sistem Ayarları → Bildirimler → DeepSeek Harness → bildirimlere izin verin. Bildirimlerin ekranda kalması için Kalıcı stilini seçin.
|
|
133
139
|
- **dsh güncellemesinden sonra ▶, kuyruk tutamaçları, proje durumu, yakın zamanda aktif proje seçeneği, Tüm projeleri daralt, Yolu kopyala, proje arama kutusu, sonraki mesaj tahmini, yazarken tamamlama, Bu sohbet boyunca izin ver veya sağ tıklama öğeleri görünmüyor:** bu öğeler dsh’nin mevcut HTML yapısına bağlanır, çünkü dsh’de henüz bunlar için bir yuva yoktur. dsh bu yapıyı değiştirirse bu öğeler kendini gizler; başka hiçbir şey bozulmaz. Lütfen bir [issue](https://github.com/furkancak1r/dsh-composer-plus/issues) açın.
|
|
134
140
|
- **"Güncelleme başarısız" veya "npm’den yüklenmedi":** yerel bir klasörden bağlanmış ya da yeniden adlandırılmış bir kopya kendini güncelleyemez. `dsh-composer-plus` eklentisini Ayarlar → Eklentiler’den yeniden yükleyin. Diğer durumlarda mesaj, pnpm hatasının ilk satırını gösterir. **Güncellemeleri denetle** yeniden dener.
|
|
135
141
|
- **Mobil bağlantı "Telefon ağ geçidi çalışmıyor" diyor:** "no IPv4 address on en0", bu Mac’in Wi-Fi/Ethernet adresi olmadığı anlamına gelir. "EADDRINUSE", başka bir dsh’nin (ya da uygulamanın) 19390 veya 19391 numaralı portu kullandığı anlamına gelir. Mobil bağlantıyı aynı anda yalnızca bir dsh çalıştırabilir.
|
|
@@ -139,7 +145,7 @@ dsh `0.2.0-rc.2` (masaüstü ve web) ve `0.2.1-rc.2` (web) üzerinde test edildi
|
|
|
139
145
|
- **Sohbet ve dosyalar soluk görünüyor:** proje bir git deposu değil, o mesajdan önce alınmış bir anlık görüntü yok (mesaj eklentiden daha eski ya da en yeni 50 anlık görüntü onun yerini aldı) veya hiçbir dosya değişmedi.
|
|
140
146
|
- **Silme, bu sohbetin başka bir dsh’de açık olduğunu söylüyor:** aynı dsh ana klasörünü kullanan ikinci bir dsh, sohbetin kilidini tutuyor. O pencereyi ya da dsh’yi kapatın, sonra yeniden silin. Bu sırada sohbet arşivlenmiş olarak kalır.
|
|
141
147
|
- **Bir sohbet yeniden başlatmadan sonra devam etmedi:** dsh kapandığında Yeniden açılışta sürdür kapalıydı, o turu kendiniz durdurdunuz, tur bitmişti (tamamlandı ya da hata verdi), sohbet arşivlenmişti veya 20’den fazla sohbet çalışıyordu (en yeni 20 sohbet devam eder).
|
|
142
|
-
- **Bir yayından hemen sonra yükleme başarısız oluyor:** sürümü ekleyin (`dsh-composer-plus@1.
|
|
148
|
+
- **Bir yayından hemen sonra yükleme başarısız oluyor:** sürümü ekleyin (`dsh-composer-plus@1.12.0`) ve yukarıdaki kurulum notuna bakın.
|
|
143
149
|
|
|
144
150
|
## Sınırlar
|
|
145
151
|
|
|
@@ -156,7 +162,7 @@ dsh `0.2.0-rc.2` (masaüstü ve web) ve `0.2.1-rc.2` (web) üzerinde test edildi
|
|
|
156
162
|
- 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.
|
|
157
163
|
- 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.
|
|
158
164
|
- **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.
|
|
159
|
-
- **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). Telefon yalnızca Tether açıkken ya da arka plana yeni geçmişken bildirim alır (push hizmeti yoktur). iOS uygulaması henüz App Store’da değildir: uygulamayı Xcode ile `tether/ios` klasöründen derleyin.
|
|
165
|
+
- **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). Telefon yalnızca Tether açıkken ya da arka plana yeni geçmişken bildirim alır (push hizmeti yoktur). iOS uygulaması henüz App Store’da değildir: uygulamayı Xcode ile `tether/ios` klasöründen derleyin. 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.
|
|
160
166
|
- Oturum bağlantısı sohbetlerin içinde çalışır; bağlantıya tıklamak sohbeti açmaz.
|
|
161
167
|
- Yeniden başlatmadan önce gönderilen bir bildirime tıklamak yalnızca dsh’yi öne getirir.
|
|
162
168
|
- Etkin projeler dsh’nin kayıtlı proje sırasıyla taşınır. Bu yüzden yeni sıra yeniden başlatmadan sonra korunur. Hiçbir projeye ait olmayan sohbetler ("Gruplanmamış") taşınamaz; dsh bunları her zaman en sonda listeler.
|
|
@@ -165,6 +171,7 @@ dsh `0.2.0-rc.2` (masaüstü ve web) ve `0.2.1-rc.2` (web) üzerinde test edildi
|
|
|
165
171
|
- dsh’de yeni sohbetin proje menüsünde de bir uzantı noktası yoktur. Bu yüzden **Projelerde ara** kutusu ve A–Z sırası dsh’nin menü yapısına bağlanır. Bir dsh güncellemesi bu yapıyı değiştirirse menü, dsh’nin çizdiği gibi görünür: kayıtlı sırayla ve arama kutusu olmadan. A–Z sırası yalnızca bir görünümdür. dsh’nin kayıtlı proje sırasını değiştirmez.
|
|
166
172
|
- dsh’de mesaj alanı ipucu için de bir uzantı noktası yoktur. Bu yüzden **Sonraki mesaj tahmini** metni, dsh’nin kendi yer tutucu metninin (`[data-composer-placeholder]`) üstüne yerleşir. Bir dsh güncellemesi bu yapıyı değiştirirse tahmin görünmez. Özellik açıkken biten her tur, kısa bir model çağrısı yapar.
|
|
167
173
|
- **Yazarken tamamla**, metnini dsh’nin kendi mesaj alanı ipucuyla gösterir (dsh’nin eğik çizgi komutlarının parametre ipucu için kullandığı `--dsh-composer-hint` stili). Eğik çizgi komutunda, dosya veya sembol etiketi olan bir mesajda ya da imleç mesajın sonunda değilken çalışmaz. Bir dsh güncellemesi bu stili değiştirirse tamamlama görünmez. Yazarken her duraklamada bir model çağrısı yapılır.
|
|
174
|
+
- **İstemi iyileştir** yalnızca kısa bir proje özetini, değişen yolları ve adı sözcüklerinizle eşleşen yolları görür: kodun kendisini görmez. Bu yüzden doğru dosyayı kaçırabilir ve yalnızca kendisine verilen yolların adını yazar. Yeni metni göndermeden önce okuyun. Eğik çizgi komutunda veya dosya ya da sembol etiketi olan bir mesajda çalışmaz (yeni metin düz metindir, bu yüzden etiket kaybolurdu). Bir mesaj en çok 8.000 karakter olabilir. Görseller ekli kalır: yalnızca metin değişir. Her tıklama bir model çağrısı yapar. Güçlü bir model bir dakika sürebilir (`Esc` iptal eder).
|
|
168
175
|
- Yerleşik destek dsh geliştiricilerinden istendi: kuyruk `move` işlemi için [#773](https://github.com/deepseek-ai/deepseek-harness/discussions/773), Devam et durumu için [#9269](https://github.com/deepseek-ai/deepseek-harness/discussions/9269).
|
|
169
176
|
|
|
170
177
|
## SSS
|
|
@@ -189,6 +196,8 @@ dsh `0.2.0-rc.2` (masaüstü ve web) ve `0.2.1-rc.2` (web) üzerinde test edildi
|
|
|
189
196
|
|
|
190
197
|
**Tahmini hangi model yazar?** **Ayarlar → Composer Plus → Sonraki mesaj tahmini → Model** içinden seçtiğiniz model. Bu liste, dsh’nin kendi model listesidir. **dsh varsayılanı**, dsh’nin varsayılan modelini izler. dsh seçilen modeli artık listelemiyorsa tahmin varsayılan modeli kullanır. **Yazarken tamamla** özelliğinin kendi **Model** menüsü vardır: **Sonraki mesaj tahminiyle aynı** (varsayılan) tahminin modelini izler. Başka bir seçim yalnızca tamamlamalarda kullanılır. dsh bu modeli artık listelemiyorsa tamamlamalar tahminin modelini kullanır.
|
|
191
198
|
|
|
199
|
+
**dsh, Roo Code veya Augment’teki Enhance prompt düğmesi gibi, istemimi göndermeden önce iyileştirebilir mi?** Evet, **İstemi iyileştir** ile (varsayılan olarak açık): kaba bir istek yazın ve model menüsünün yanındaki sihirli değneğe tıklayın. Metni bu sohbeti ve projeyi bağlam olarak kullanarak sizin dilinizde yeniden yazar ve göndermez. `Cmd/Ctrl+Z` veya **İyileştirmeyi geri al** metninizi geri getirir. Modelini **Ayarlar → Composer Plus → İstemi iyileştir → Model** içinden seçin.
|
|
200
|
+
|
|
192
201
|
**dsh’de sıradaki mesajların sırasını nasıl değiştiririm?** Sıradaki bir mesajın ⠿ tutamacını sürükleyin ya da tutamaca odaklanıp `↑` / `↓` tuşlarına basın.
|
|
193
202
|
|
|
194
203
|
**Otomatik inceleme’nin tek bir sohbette aynı araç için tekrar sormasını nasıl durdururum?** Onay kartında **Bu sohbet boyunca izin ver** düğmesine tıklayın. Bu izin yalnızca o sohbetteki o aracı kapsar. İzni başlıktaki etiketten kaldırın.
|
|
@@ -219,8 +228,12 @@ SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-sidebar-projects.mjs /pa
|
|
|
219
228
|
PLAYWRIGHT=/path/to/playwright node test/browser-recent-finished.mjs /path/to/dsh/lib/bin.js
|
|
220
229
|
# Order by status (fake model + Schedule): real-app test + its thumbnail
|
|
221
230
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-status-order.mjs /path/to/dsh/lib/bin.js
|
|
222
|
-
# every Settings feature row shows a loading screenshot
|
|
231
|
+
# every Settings feature row shows a loading screenshot and a ? link to its README row
|
|
223
232
|
PLAYWRIGHT=/path/to/playwright node test/browser-settings-shots.mjs /path/to/dsh/lib/bin.js
|
|
233
|
+
# What's new after an update: the release notes show once, Esc and Close close them
|
|
234
|
+
PLAYWRIGHT=/path/to/playwright node test/browser-whats-new.mjs /path/to/dsh/lib/bin.js
|
|
235
|
+
# README feature anchors (the ? links) on github.com, headless: each #feature-… shows the start of its row
|
|
236
|
+
PLAYWRIGHT=/path/to/playwright node test/browser-readme-anchors.mjs
|
|
224
237
|
# Keep composer focus (fake model + demo skill): typing goes on after a / command + its thumbnail
|
|
225
238
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-keep-focus.mjs /path/to/dsh/lib/bin.js
|
|
226
239
|
# Mobile connect: switch on, QR popover, a fake iPhone pairs and calls dsh through the gateway, switch off + its thumbnail
|
|
@@ -235,14 +248,17 @@ SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-export-markdown.mjs /pat
|
|
|
235
248
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-content-search.mjs /path/to/dsh/lib/bin.js
|
|
236
249
|
# Turn rollback + Delete chat (fake model, made-up git project): bash edit → ↶ Chat and files → files back, .git unchanged; Delete… → Trash + its thumbnails
|
|
237
250
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-turn-rollback.mjs /path/to/dsh/lib/bin.js
|
|
251
|
+
# Improve prompt (fake model, made-up git project): the wand sends the draft with the chat and the project, the answer replaces the draft, Cmd+Z and Undo bring it back + its thumbnail
|
|
252
|
+
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-prompt-improve.mjs /path/to/dsh/lib/bin.js
|
|
238
253
|
```
|
|
239
254
|
|
|
240
255
|
```sh
|
|
241
256
|
npm run build:locales # after editing locales/<id>.json
|
|
257
|
+
npm run build:readme # after editing docs/features.json
|
|
242
258
|
npm test
|
|
243
259
|
```
|
|
244
260
|
|
|
245
|
-
**Yeni özellikler için kural:** Ayarlar → Composer Plus içindeki her özellik satırı bir ekran görüntüsü gösterir. Özellik kimliğini `client.js` içindeki `SHOT_OF` ve `index.js` içindeki `SHOTS` listesine ekleyin. `assets/features/<id>.webp` dosyasını da pakete ekleyin (geçici demo dsh’den, İngilizce arayüzle alınmış, yaklaşık 60 kB veya daha küçük). Özelliği aynı resimle
|
|
261
|
+
**Yeni özellikler için kural:** Ayarlar → Composer Plus içindeki her özellik satırı bir ekran görüntüsü gösterir. Özellik kimliğini `client.js` içindeki `SHOT_OF` ve `index.js` içindeki `SHOTS` listesine ekleyin. `assets/features/<id>.webp` dosyasını da pakete ekleyin (geçici demo dsh’den, İngilizce arayüzle alınmış, yaklaşık 60 kB veya daha küçük). Özelliği aynı resimle `docs/features.json` dosyasına ekleyin ve `npm run build:readme` komutunu çalıştırın. Bu komut `README.md` ile çevrilmiş her `README.<id>.md` dosyasındaki özellik tablosunu ve `llms.txt` içindeki listeyi yazar. Bir özelliğin ekran görüntüsü yoksa `test/shots.test.mjs` başarısız olur. `test/browser-settings-shots.mjs` ise gerçek Ayarlar sayfasını denetler. Her değişiklik için tam kontrol listesi [AGENTS.md](AGENTS.md) dosyasındadır.
|
|
246
262
|
|
|
247
263
|
Testler, gerçek `client.js` dosyasını sahte bir React/DOM ortamında, gerçek `index.js` dosyasını (Host tarafı) da geçici bir git deposunda çalıştırır. Tether ağ geçidi testleri (`test/tether-gateway.test.mjs`) sahte bir dsh host’u ve gerçek bir TLS ağ geçidi kullanır. iPhone uygulaması `tether/ios` klasöründedir (bkz. [tether/README.md](tether/README.md) ve [tether/AGENTS.md](tether/AGENTS.md)). `node test/browser-history.mjs '<dsh web URL with ?token=…>'`, mesaj geçmişini gerçek bir tarayıcıda denetler. Bu denetim, kendi `DSH_HOME` klasörü olan geçici bir `dsh web` örneğine karşı çalışır.
|
|
248
264
|
|