dsh-composer-plus 1.22.0 → 1.23.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 +39 -11
- package/README.es.md +39 -11
- package/README.fr.md +39 -11
- package/README.hi.md +39 -11
- package/README.id.md +39 -11
- package/README.ja.md +39 -11
- package/README.ko.md +39 -11
- package/README.md +39 -11
- package/README.pt-BR.md +39 -11
- package/README.ru.md +39 -11
- package/README.tr.md +39 -11
- package/README.vi.md +39 -11
- package/README.zh.md +39 -11
- package/assets/features/featureFilter.webp +0 -0
- package/assets/features/issueReport.webp +0 -0
- package/assets/features/previewQuote.webp +0 -0
- package/assets/features/remoteComputers.webp +0 -0
- package/assets/features/turkishSkill.webp +0 -0
- package/assets/features/untangleCodebase.webp +0 -0
- package/assets/features/windowSize.webp +0 -0
- package/assets/skills/untangle-codebase/LICENSE +21 -0
- package/assets/skills/untangle-codebase/SKILL.md +142 -0
- package/client.js +941 -161
- package/index.js +467 -39
- package/package.json +4 -3
- package/release-notes.json +14 -14
- package/tether/gateway/server.mjs +24 -5
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.
|
|
17
|
+
Resmî olmayan bir topluluk eklentisidir. Güncelleme denetimi ağ çağrısı yapar (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. **Türkçe skill paketi** (varsayılan olarak açık) yalnız **Uygulama dili** Türkçe iken turkish-anti-ai-skill paketini GitHub’dan indirir ve günde bir kez yeni sürüm olup olmadığına bakar; bu çağrıları durdurmak için **Ayarlar → Composer Plus** içinden 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. **Görev panosu**, panoda başlattığınız her görevin etiketleri için yeni sohbetin modelini bir kez çağırır. **AI özeti** ayarıyla (varsayılan **Hızlı (AI’sız)**), çalışan bir görevin ilerlemesine panoda ya da Tether'da baktığınızda kısa bir ilerleme notu için o sohbetin modelini de çağırır. **Hedef kontrolü** (varsayılan olarak açık), ajan otomatik bir turda bir `/goal` hedefini tamamlandı olarak her işaretlediğinde bir modeli bir kez ç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,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.23.0`.
|
|
33
33
|
|
|
34
34
|
## Özellikler
|
|
35
35
|
|
|
@@ -48,6 +48,7 @@ Sonra dsh’yi yeniden başlatın. (CLI, masaüstü profiline yükleme yapamaz;
|
|
|
48
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
49
|
| **Soru kartını pencereye sığdır** | <a id="feature-questionfit"></a>Ajan size bir soru sorduğunda soru ve cevaplar kartta birlikte kayar, **Atla** ve **Gönder** altta görünür kalır. Kart pencerenin yüksekliğini kullanır (sohbet başlığı ve sohbetin bir şeridi için 200 px eksik), bu yüzden pencereyle birlikte büyür ve küçülür. Bu özellik olmadan dsh kartı pencerenin %60'ında (en çok 520 px) tutar ve yalnız cevaplar kayar: uzun bir soru kendi sonunu, cevapları ve düğmeleri kartın dışına itebilir. | <a href="assets/features/questionFit.webp"><img src="assets/features/questionFit.webp" width="160" alt="Ekran görüntüsü: Soru kartını pencereye sığdır"></a> |
|
|
50
50
|
| **Sohbet başlığını pencereye sığdır** | <a id="feature-headerfit"></a>Dar bir pencerede dsh'nin sohbet başlığındaki düğmeler (mod, alt ajanlar, arka plan işleri, Şurada aç, dal etiketi ve izin çipi) artık birbirinin üstüne binmez. Sohbet başlığı en az 120 px kalır; sığmayan düğmeler sağda ikinci satıra geçer ve her biri tıklanabilir kalır. Her şey tek satıra sığdığında (geniş pencere) başlık tam olarak dsh'ninkidir. Bu özellik olmadan dsh yalnız başlığı daraltır: alt ajan ve arka plan işleri varken dar bir sohbet sütununda düğmeleri birbirinin üstüne kayar. Dal etiketi (**Sohbet başına dal**) ve izin çipi (**Sohbet boyunca izin**) bu anahtar kapalıyken de başlığa sığar. | <a href="assets/features/headerFit.webp"><img src="assets/features/headerFit.webp" width="160" alt="Ekran görüntüsü: Sohbet başlığını pencereye sığdır"></a> |
|
|
51
|
+
| **Pencere boyutunu hatırla** | <a id="feature-windowsize"></a>dsh'nin masaüstü uygulaması her açılışta penceresini 1280 × 820 boyutunda açar. Bu özellikle pencere, son kullandığınız boyut ve yerde açılır. Pencereyi her boyutlandırdığınızda ya da taşıdığınızda boyut kaydedilir; sonraki açılışta eklenti yüklenince geri gelir. Tam ekran ya da küçültülmüş pencere kaydedilmez; şu an bağlı olmayan bir ekrandaki yer, ana ekranda açılır. Yalnız masaüstü uygulamasında çalışır: bir tarayıcı sekmesi kendi pencere boyutunu değiştiremez. | <a href="assets/features/windowSize.webp"><img src="assets/features/windowSize.webp" width="160" alt="Ekran görüntüsü: Pencere boyutunu hatırla"></a> |
|
|
51
52
|
| **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> |
|
|
52
53
|
| **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> |
|
|
53
54
|
| **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> |
|
|
@@ -69,6 +70,8 @@ Sonra dsh’yi yeniden başlatın. (CLI, masaüstü profiline yükleme yapamaz;
|
|
|
69
70
|
| **Yeni sohbette devam et** | <a id="feature-handoffchat"></a>Kenar çubuğunda bir sohbete sağ tıklayın (ya da sohbetin **…** menüsünü açın) → **Yeni sohbette devam et…**. Sohbetin kendi modeline yapılan tek çağrı, sohbetten bir devir notu yazar: Görev, Çıktılar, Tamamlananlar, Kararlar, Açık sorunlar ve Sonraki adım. Not, sohbetin gösterdiklerinden yazılır (araç çağrıları ve sonuçları kanıttır; geri aldığınız adımlar dışarıda kalır). Not bir pencerede açılır: okuyun ve düzenleyin. **Yeniden yaz** yeni bir not yazar. **Yeni sohbet başlat** (ya da `Cmd/Ctrl+Enter`), aynı projede ilk mesajı not ve eski sohbetin bağlantısı olan yeni bir sohbet açar; eski sohbet olduğu gibi kalır. Uzun bir sohbet dolduğunda ya da yavaşladığında veya ertesi gün devam etmek için kullanın. Projeye hiçbir şey yazılmaz. | <a href="assets/features/handoffChat.webp"><img src="assets/features/handoffChat.webp" width="160" alt="Ekran görüntüsü: Yeni sohbette devam et"></a> |
|
|
70
71
|
| **Bağlam dökümü** | <a id="feature-contextbreakdown"></a>Sağ kenar çubuğu → `+` → **Bağlam**. Sayfa, açık sohbetin model bağlamını şu anda neyin doldurduğunu ve bağlam penceresinin ne kadarını kullandığını gösterir: sistem istemi, proje talimatları (AGENTS.md), beceriler, mesajlarınız, ajan yanıtları ve araç çağrıları, araç sonuçları (araca göre), MCP sonuçları (sunucuya göre), araç tanımları, sıkıştırma özeti ve diğer bağlam notları; her biri token sayısı ve payıyla. Bir parçaya tıklayın, araçlarını ya da sunucularını görün. Yalnız sohbet günlüğünü okur (`/compact` ve geri almalardan sonraki hâlini), model çağırmaz; her turdan sonra ve **Yenile** ile yeniden okur. Bir sohbetin neden yavaş ya da dolu olduğunu görmek için kullanın, örneğin büyük bir MCP araç sonucu ya da çok sayıda araç tanımı. | <a href="assets/features/contextBreakdown.webp"><img src="assets/features/contextBreakdown.webp" width="160" alt="Ekran görüntüsü: Bağlam dökümü"></a> |
|
|
71
72
|
| **Planlı adımlar** | <a id="feature-plannedsteps"></a>Varsayılan olarak kapalıdır: **Ayarlar → Composer Plus** içinden açın. Ajan `plan_next_steps` aracını alır: bir komutla aynı mesajda, sonraki komutları kesin argümanları ve bir koşulla planlayabilir; örneğin "derleme geçince `npm test` çalıştır". Sonuç koşulu karşılarsa Composer Plus sonraki adımı yeni bir model çağrısı yapmadan kendisi çalıştırır; böylece uzun bir sohbet daha az token harcar. Adım sohbette kısa bir satırla görünür: "Composer Plus · Planned steps: ran `test` … without a model call"; ardından araç çağrısı ve sonucu gelir. Yalnız `bash`, `read`, `grep` ve `glob` adımları; onaylar, sandbox ve Korunan dosyalar her adımda her zamanki gibi geçerlidir. Koşul tutmazsa, aynı anda iki adım hazırsa, son adımdan sonra ve siz mesaj yazınca model yeniden yanıt verir. Fikir HarnessMM'den (arXiv 2610.32813) gelir. | <a href="assets/features/plannedSteps.webp"><img src="assets/features/plannedSteps.webp" width="160" alt="Ekran görüntüsü: Planlı adımlar"></a> |
|
|
73
|
+
| **Türkçe skill paketi** | <a id="feature-turkishskill"></a>Yalnız **Uygulama dili** Türkçe iken çalışır (varsayılan olarak açıktır; **Ayarlar → Composer Plus** içinden kapatabilirsiniz). Composer Plus, açık kaynaklı [turkish-anti-ai-skill](https://github.com/yucezerey/turkish-anti-ai-skill) paketini (MIT, Yüce Zerey) GitHub’dan indirir ve dsh’nin skill’lerine ekler. Ajandan bir Türkçe metni insanlaştırmasını, yeniden yazmasını ya da yazmasını isteyin: dsh skill’i yükler; kuralları ajanın yapay zekâ kalıpları olmadan doğal Türkçe yazmasına yardım eder. Paketin yalnız Markdown dosyaları tutulur; her dosya GitHub’ın dosya listesiyle eşleşmelidir ve paketin hiçbir betiği çalışmaz. Eklenti günde bir kez GitHub’a yeni sürüm olup olmadığını sorar ve varsa kurar. Satır, kurulu sürümü ya da neden kurulmadığını gösterir. Başka bir dilde skill kurulmaz; dili yeniden Türkçe yapınca geri gelir. | <a href="assets/features/turkishSkill.webp"><img src="assets/features/turkishSkill.webp" width="160" alt="Ekran görüntüsü: Türkçe skill paketi"></a> |
|
|
74
|
+
| **Kod tabanını toparla** | <a id="feature-untanglecodebase"></a>Varsayılan olarak açıktır; **Ayarlar → Composer Plus** içinden kapatabilirsiniz. [caldoai/skills](https://github.com/caldoai/skills) deposundaki `/untangle-codebase` becerisini (MIT, © 2026 Maze) dsh'nin beceri listesine ekler. Bir sohbete `/untangle-codebase` yazın (`/` menüsünde görünür); isterseniz arkasına odaklanılacak bir alan ekleyin, örneğin `/untangle-codebase src/api`, sonra gönderin. Ajan önce, kodu yalnız tekrarlayan yorumları ve gerçek bir hatayı yakalayamayan testleri de kaldırıp kaldırmayacağını sorar. Sonra her kopyayı, gizli ve gereksiz bağı, çağrıyı yalnız aktaran sarmalayıcıyı, ölü kodu ve tek seferlik özel durumu listeler; düzeltmeleri temel ilkelerden planlar, bunları bir hedef olarak yapar ve düzeltmeye değer bir şey kalmayana kadar alt ajanlarla yeniden kontrol eder. Yalnız siz başlatabilirsiniz: model bu beceriyi beceri listesinde görmez, bu yüzden diğer sohbetlerde token harcamaz. Projede ya da `~/.dsh/skills` içinde aynı adlı bir beceri varsa o önce gelir. Beceriyi bir **Sohbet başına dal** sohbetinde başlatın ve sonucu **Değişiklikler paneli** içinde inceleyin. Tether'de: yazı alanına `/untangle-codebase` yazın. | <a href="assets/features/untangleCodebase.webp"><img src="assets/features/untangleCodebase.webp" width="160" alt="Ekran görüntüsü: Kod tabanını toparla"></a> |
|
|
72
75
|
| **Korunan dosyalar** | <a id="feature-protectedfiles"></a>Varsayılan olarak açık. Ajanın kendi dosya araçları, desenlerinizle eşleşen dosyaları okuyamaz ve değiştiremez: **okuma ve yazma** desenlerinde bir dosya üzerindeki `read`, `read_image` ve `grep` reddedilir; her iki türde de `write`, `edit` ve `str_replace_editor` reddedilir. Ajan nedenini okur ve size sorması söylenir. Varsayılan desenler `.env*`, `*.pem` ve `*.key`. Ayarlar → Composer Plus → **Korunan dosyalar**: bir desen ekleyin (örneğin `published/**` ya da `config/*.yml`), türüne tıklayarak **okuma ve yazma** ile **yalnızca yazma** arasında geçin, ✕ ile kaldırın ya da **Varsayılanları kullan**. `/` içermeyen bir desen, her klasördeki dosya adıyla eşleşir. Bu bir korkuluktur, korumalı alan değildir: bir kabuk komutu (`cat .env`), bir betik ya da bir MCP aracı dosyaya yine erişebilir (bkz. Sınırlar). | <a href="assets/features/protectedFiles.webp"><img src="assets/features/protectedFiles.webp" width="160" alt="Ekran görüntüsü: Korunan dosyalar"></a> |
|
|
73
76
|
| **Engellenen komutlar** | <a id="feature-blockedcommands"></a>Varsayılan olarak açık, liste başta boştur. Ajanın kabuk komutları (`bash`, `pwsh`) kurallarınızla eşleşen bir komutu çalıştıramaz: bir **engelle** kuralı çağrıyı reddeder (ajan nedenini okur ve size sorması söylenir), bir **önce sor** kuralı dsh’nin onay kartını gösterir ve komut yalnızca siz izin verince çalışır. Ayarlar → Composer Plus → **Engellenen komutlar**: bir kural yazın (örneğin `npm publish`, `git push --force` ya da `ssh *192.168.2.19`), türüne tıklayarak **engelle** ile **önce sor** arasında geçin, sonra **Ekle** düğmesine tıklayın; bir kuralın türünü değiştirmek için türüne tıklayın, kuralı ✕ ile kaldırın. Bir kural, bir komut adı ve ondan sonra bu sırayla gelmesi gereken sözcüklerdir; `*` herhangi bir metinle eşleşir. Kontrol, komutu `&&`, `;`, `\|` sonrasında, `$(…)`, `bash -c "…"` ya da `eval` içinde ve `sudo` ya da `env` sonrasında da bulur. Bu bir korkuluktur, korumalı alan değildir: bir değişken (`$CMD`), bir betik dosyası ya da başka bir program komutu yine çalıştırabilir (bkz. Sınırlar). | <a href="assets/features/blockedCommands.webp"><img src="assets/features/blockedCommands.webp" width="160" alt="Ekran görüntüsü: Engellenen komutlar"></a> |
|
|
74
77
|
| **Görev panosu** | <a id="feature-taskboard"></a>Sol kenar çubuğu → **Görev panosu** ya da dsh’nin her yerinde `Cmd+Shift+K` (Windows ve Linux’ta `Ctrl+Shift+K`). Kenar çubuğunun gösterdiği canlı durumla dsh sohbetlerinizin kanban panosu: onayınızı, yanıtınızı ya da plan incelemenizi bekleyen sohbet turuncu bir noktayla **İncelemede** sütunundadır, çalışan sohbet **Yapılıyor** sütunundadır, henüz açmadığınız biten sohbet **Bitti** sütunundadır (yeşil). Bir sohbeti açınca kartı **Bitti** sütunundan kendiliğinden çıkar; okuduğunuz biten sohbetleri görmek için yeşil kartların altındaki **Son bitenler (N)** satırına tıklayın (en yeni 10 tanesi, sonra **Daha eski N görevi göster**; açık ya da kapalı olması bu cihazda kalır). Panonun arkasında açıkken biten sohbet (**Yeni görev**) siz açana kadar yeşil kalır. Proje listesini açmak için panonun üstündeki proje adına tıklayın, sonra bir proje ya da **Tüm projeler** seçin; “Sohbet başına dal” klasörü kendi projesinden sayılır. Liste seçimden sonra, `Esc` ile ya da dışına tıklayınca kapanır. Bir projeyi adıyla bulmak için listenin en üstündeki **Projelerde ara** kutusuna yazın (büyük/küçük harf ve aksanlar fark etmez; `Esc` kutuyu boşaltır), ilk eşleşmeyi seçmek için `Enter` tuşuna basın ve yalnız bekleyen, çalışan, görülmeden biten ya da son 2 saatte değişen bir sohbeti olan projeleri göstermek için **Son 2 saatte aktif olanlar** seçeneğine tıklayın (bu seçim bu cihazda saklanır). **Yeni görev** (ya da `n`), panonun gösterdiği projede dsh’nin kendi yeni sohbetini açar (**Tüm projeler** seçiliyken dsh’nin Yeni oturum düğmesinin seçtiği projede); böylece her sohbette olduğu gibi dosya ekleyebilir, komut kullanabilir ve modeli seçebilirsiniz. İlk mesajınız gidince pano kendiliğinden geri gelir. O zamana kadar sohbet **Yapılıyor** sütununun en üstünde **Yeni görev** olarak bekler: ilk mesajı yazmak için ona tıklayın. Sizi bekleyen bir sohbeti olan projenin yanında, proje listesinde turuncu bir nokta görünür (herhangi bir sohbet beklerken üstteki proje adında da görünür). Sohbete dsh ad verir ve sohbetin modeli o mesajdan en çok 3 etiket yazar. Sohbetini açmak için bir karta tıklayın. Turuncu bir kartı panoda yanıtlamak için karta (ya da **Yanıtla** düğmesine) tıklayın; sohbetin tamamı için paneldeki **Sohbeti aç** düğmesini kullanın: **Reddet** ya da **Bir kez izin ver**, plan için **Onayla** ya da **Değişiklik iste**, soru için seçenekler ve kendi metniniz. Bir kartı panodan kaldırmak için biten karttaki **×** düğmesine tıklayın; **Son bitenler** açıkken bu kartları panodan kaldırmak için **Bitti** sütununun üstündeki **Tümünü temizle** düğmesine tıklayın: önce hangi projeden kaç kartın kalkacağını gösterir, okunmamış (yeşil) kartlar kalır. Sonraki 8 saniye içinde **Geri al** kartları geri getirir; **Bitti** sütununun altındaki **Kaldırılanlar (N)** panodan kalkan kartları listeler, **Panoya geri koy** bir kartı yeniden **Bitti** sütununda gösterir. Hiçbir sohbet silinmez: sohbetler dsh’nin kenar çubuğunda kalır, pano bunu yeniden başlatmadan sonra da hatırlar (Tether aynı panoyu gösterir) ve yeniden çalışan bir sohbet panoya geri gelir. İlerlemesini görmek için **Yapılıyor** sütunundaki bir kartın üzerine gelin (ya da klavye odağını karta taşıyın): sohbetin ne kadar süredir çalıştığı, yapılacaklar listesindeki adımı, şu an çalışan araç ve ajanın son satırı. Ayarlar → Composer Plus → Görev panosu bölümünde **Üzerine gelince ilerleme** ile **Hızlı (AI’sız)** (varsayılan: yalnız sohbeti okur) ya da **AI özeti** (sohbetin modeline yapılan kısa bir çağrı bir iki cümle de yazar) seçilir. | <a href="assets/features/taskBoard.webp"><img src="assets/features/taskBoard.webp" width="160" alt="Ekran görüntüsü: Görev panosu"></a> |
|
|
@@ -84,6 +87,7 @@ Sonra dsh’yi yeniden başlatın. (CLI, masaüstü profiline yükleme yapamaz;
|
|
|
84
87
|
| **Not ile reddet** | <a id="feature-rejectnote"></a>Onay kartında **Reddet** düğmesinin yanında **Not ile reddet…** görünür. Ona tıklayın, nedenini ya da bunun yerine ne yapılacağını yazın ve **Reddet**’e tıklayın (ya da `Enter`’a basın; `Shift+Enter` yeni satır ekler, `Esc` alanı kapatır). Not önce bekleyen tura bir mesaj olarak ajana gider, sonra istek reddedilir: model reddi ve notunuzu aynı turda okur, sizin ayrıca mesaj göndermeniz gerekmez. Not gönderilemezse hiçbir şey reddedilmez ve alan açık kalır. Tether’de: onay sayfası → Reject with note. | <a href="assets/features/rejectNote.webp"><img src="assets/features/rejectNote.webp" width="160" alt="Ekran görüntüsü: Not ile reddet"></a> |
|
|
85
88
|
| **Gizli değer girişi** | <a id="feature-secretinput"></a>Ajan `request_secret` aracını alır. Bir parola, token ya da API anahtarı gerektiğinde bunu sohbette sormak yerine bu araçla ister: aracın satırında bir kart açılır. Kartta değerin adı, neden gerektiği, bir parola alanı, **Kaydet** ve **Reddet** vardır. **Kaydet** değeri bu Mac'te yalnız sizin okuyabildiğiniz bir dosyaya yazar. Ajan yalnız dosyanın yolunu alır ve onu bir komutta girdi olarak kullanır (örneğin `"$(cat <path>)"`). Sonraki bir araç sonucu değeri gösterirse, model görmeden önce değerin yerine `[secret]` yazılır. Dosya tur bitince silinir. **Reddet**, ajana değeri vermediğinizi söyler. Aracı kaldırmak için **Ayarlar → Composer Plus** içinden kapatın. Tether'de: yazma alanının üstündeki "Secret: …" çubuğu → Enter. | <a href="assets/features/secretInput.webp"><img src="assets/features/secretInput.webp" width="160" alt="Ekran görüntüsü: Gizli değer girişi"></a> |
|
|
86
89
|
| **Yanıtta alıntıla** | <a id="feature-quotereply"></a>Bir yanıtın bir bölümünü seçin: seçimin üstünde **Alıntıla** düğmesi görünür. Düğmeye tıklayınca o bölüm, yazma alanında imlecin olduğu yere Markdown alıntısı (`> …`) olarak girer, altına bir boş satır eklenir ve yazma alanı odağı alır. Böylece yanıtınızı hemen altına yazarsınız. Yalnız yanıt metni sayılır; düşünme adımları, araç satırları ve kendi mesajlarınız sayılmaz. Bir alıntı en çok 2.000 karakterdir. `Cmd+Z` (`Ctrl+Z`) alıntıyı geri alır. Tether'de: bir yanıta basılı tutun → Quote (yanıtın tamamı). | <a href="assets/features/quoteReply.webp"><img src="assets/features/quoteReply.webp" width="160" alt="Ekran görüntüsü: Yanıtta alıntıla"></a> |
|
|
90
|
+
| **Dosya önizlemesinden alıntıla** | <a id="feature-previewquote"></a>Sağ kenar çubuğunda bir dosya açın (**Çalışma alanı dosyaları** ya da sohbetin açtığı bir dosya) ve içinde satırlar seçin: seçimin üstünde **Alıntıla** düğmesi görünür. Düğmeye tıklayınca dosya yolu, satır numaraları ve satırlar yazma alanında imlecin olduğu yere girer ve yazma alanı odağı alır. Böylece ajan hangi bölümden söz ettiğinizi bilir. Kod ve metin dosyaları `src/login.js:2-3` ve kod bloğu olarak satırları verir; Markdown ve PDF dosyaları yolu (PDF için sayfayı da: `docs/spec.pdf#page=3`) ve bir `> …` alıntısı verir. Dosya sohbetin klasöründeyse yolu bu klasöre göre yazılır. En çok 2.000 karakter girer. `Cmd+Z` (`Ctrl+Z`) eklenen metni geri alır. Tether'de yok. | <a href="assets/features/previewQuote.webp"><img src="assets/features/previewQuote.webp" width="160" alt="Ekran görüntüsü: Dosya önizlemesinden alıntıla"></a> |
|
|
87
91
|
| **Yan sohbet** | <a id="feature-sidechat"></a>Yazma alanına bir yan soru yazın ve konuşma balonları düğmesine (**Yan sohbette sor**) tıklayın: sohbetin bir kopyası açılır ve soruyu dsh'nin salt okunur modunda yanıtlar, sohbet ise çalışmaya devam eder. Kopya, sohbeti şimdiye kadar bilir; yalnız kuyrukta hâlâ bekleyen mesajları bilmez. Sohbetin modelini kullanır. Kopyanın yazma alanının üstündeki çubukta **Geri getir** vardır: sohbet açılır ve yazma alanına sorularınız (`> ` alıntısı olarak) ve yanıtlar girer. **Sohbete dön** yalnız sohbeti açar. Yan sohbet kenar çubuğunda "↳ <soru>" adıyla kalır; orada arşivleyin. Tether'de: sohbet başlığı menüsü → Side chat…. | <a href="assets/features/sideChat.webp"><img src="assets/features/sideChat.webp" width="160" alt="Ekran görüntüsü: Yan sohbet"></a> |
|
|
88
92
|
| **Diff notları** | <a id="feature-diffcomments"></a>**Değişiklikler paneli** içinde bir dosyanın farkını açın ve bir satırdaki **+** düğmesine tıklayın (aralık için aynı bloktaki ikinci satıra Shift ile tıklayın), bir not yazın ve **Notu kaydet** düğmesine tıklayın. Sohbetin notları panelin üstündeki bir çubukta bekler; **Yazma alanına gönder** onları yazma alanında imlecin olduğu yere Markdown olarak koyar: `path:12-14`, `diff` bloğu olarak satırlar ve notunuz. **Temizle** onları siler. Notlar, siz gönderene ya da temizleyene kadar bu tarayıcıda kalır. **Değişiklikler paneli** gerekir. Tether'de: bir dosyanın farkı → bir satıra basılı tutun → Add note…. | <a href="assets/features/diffComments.webp"><img src="assets/features/diffComments.webp" width="160" alt="Ekran görüntüsü: Diff notları"></a> |
|
|
89
93
|
| **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. **Çalışma alanı ağacı** görünümünde üst klasörün satırı, içindeki her projenin (örneğin `.worktrees/` içindeki her dal klasörünün) sohbetlerini de gösterir. Bu, klasör daraltılmışken de geçerlidir. | <a href="assets/features/projectStatus.webp"><img src="assets/features/projectStatus.webp" width="160" alt="Ekran görüntüsü: Proje durumu"></a> |
|
|
@@ -95,12 +99,14 @@ Sonra dsh’yi yeniden başlatın. (CLI, masaüstü profiline yükleme yapamaz;
|
|
|
95
99
|
| **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> |
|
|
96
100
|
| **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> |
|
|
97
101
|
| **Boştayken bekleyen sohbeti aç** | <a id="feature-idleswitch"></a>Bir sohbet soru sorduğunda, bir onay veya plan incelemesi beklediğinde (turuncu nokta) ya da henüz okumadığınız bir turu bitirdiğinde (yeşil nokta) ve siz dsh'yi 30 saniye kullanmadığınızda, dsh o sohbeti açar. Turuncu sohbetler yeşillerden önce açılır. Her grupta en uzun süredir bekleyen önce açılır. Sonraki, yine 30 saniye kullanılmadığında açılır. Bir tuş, tıklama, fare hareketi, kaydırma tekerleği veya dokunma 30 saniyeyi yeniden başlatır. Odaktaki alanda metin olması, seçili metin ya da açık bir menü veya iletişim kutusu da geçişi durdurur. Bekleyen bir sohbet ekrandayken hiçbir şey değişmez. Bekleyen bir sohbetten yanıt vermeden ayrılırsanız, sohbet bir sonraki 30 saniyelik boşlukta yeniden açılabilir. Yeşil bir sohbet açılınca noktası kalkar. Sonraki yeşil sohbet, siz dsh'yi yeniden kullandıktan sonra 30 saniye boşta kalınca açılır. Bu, dsh arka plandayken de çalışır ama dsh öne gelmez. | <a href="assets/features/idleSwitch.webp"><img src="assets/features/idleSwitch.webp" width="160" alt="Ekran görüntüsü: Boştayken bekleyen sohbeti aç"></a> |
|
|
98
|
-
| **Sıradaki bekleyen sohbet** | <a id="feature-nextwaiting"></a>Kenar çubuğunun başlığındaki düğme, sizi bekleyen diğer sohbetlerin sayısını sıradaki sohbetin renginde bir noktayla gösterir: soru sorduğunda ya da onay veya plan incelemesi beklediğinde turuncu, henüz okumadığınız bir turu bitirdiğinde yeşil. O sohbeti açmak için düğmeye tıklayın veya Cmd+Shift+E (Windows ve Linux'ta Ctrl+Shift+E) tuşlarına basın. Turuncu sohbetler yeşillerden önce gelir; her grupta en uzun süredir bekleyen sohbet önce gelir. Ekrandaki sohbet sayılmaz. Bekleyen başka sohbet yoksa düğme görünmez ve tuş bir şey yapmaz. Tuşu dsh'nin Klavye kısayolları sayfasında (Sıradaki bekleyen sohbet) değiştirebilirsiniz. | <a href="assets/features/nextWaiting.webp"><img src="assets/features/nextWaiting.webp" width="160" alt="Ekran görüntüsü: Sıradaki bekleyen sohbet"></a> |
|
|
102
|
+
| **Sıradaki bekleyen sohbet** | <a id="feature-nextwaiting"></a>Kenar çubuğunun başlığındaki düğme, sizi bekleyen diğer sohbetlerin sayısını sıradaki sohbetin renginde bir noktayla gösterir: soru sorduğunda ya da onay veya plan incelemesi beklediğinde turuncu, henüz okumadığınız bir turu bitirdiğinde yeşil. O sohbeti açmak için düğmeye tıklayın veya Cmd+Shift+E (Windows ve Linux'ta Ctrl+Shift+E) tuşlarına basın. Düğmeye tıkladığınızda sohbet kenar çubuğunda da bulunur: daraltılmış proje açılır, liste sohbete kayar ve sohbet 5 saniye boyunca yanıp söner. Turuncu sohbetler yeşillerden önce gelir; her grupta en uzun süredir bekleyen sohbet önce gelir. Ekrandaki sohbet sayılmaz. Bekleyen başka sohbet yoksa düğme görünmez ve tuş bir şey yapmaz. Tuşu dsh'nin Klavye kısayolları sayfasında (Sıradaki bekleyen sohbet) değiştirebilirsiniz. | <a href="assets/features/nextWaiting.webp"><img src="assets/features/nextWaiting.webp" width="160" alt="Ekran görüntüsü: Sıradaki bekleyen sohbet"></a> |
|
|
99
103
|
| **Seçenek düğmeleri** | <a id="feature-optionpicks"></a>Bir yanıt bir seçenek listesiyle bittiğinde ("Seçenekler" başlığı ya da kalın "Seçenekler" satırı altında 1–9 maddelik numaralı bir liste; "Sonraki adımlar" ve uygulamanın dillerindeki aynı sözcükler de geçerlidir), yanıtın altında her seçenek için bir düğme görünür. Tıklama, seçeneğin tamamıyla birlikte "Option N: …" metnini, siz yazmışsınız gibi mesajınız olarak gönderir. "(önerilen)" ile işaretli seçenek vurgulanır. Düğmeler yalnızca en yeni yanıtın altında, sohbet boştayken ve mesaj kutusu boşken görünür; seçim yapılmış bir yanıtta ve geri alınmış bir yanıtta düğme yoktur. Düğmeler görünürken Sonraki mesaj tahmini tahmin göstermez. Ajanın soru kartında 1–9 tuşları, tıklama gibi o seçeneği seçer (yanıt alanında çalışmaz, soru göründükten sonraki ilk 0,8 saniyede de çalışmaz). | <a href="assets/features/optionPicks.webp"><img src="assets/features/optionPicks.webp" width="160" alt="Ekran görüntüsü: Seçenek düğmeleri"></a> |
|
|
100
104
|
| **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
105
|
| **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
|
-
| **Uzak bilgisayarlar** | <a id="feature-remotecomputers"></a>Diğer Mac’lerinizdeki dsh’yi [Tailscale](https://tailscale.com) üzerinden açın ve
|
|
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> |
|
|
106
|
+
| **Uzak bilgisayarlar** | <a id="feature-remotecomputers"></a>Diğer Mac’lerinizdeki dsh’yi [Tailscale](https://tailscale.com) üzerinden açın ve bu dsh penceresinde kullanın. Ö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 sol kenar çubuğundaki bilgisayar seçicide (marka adının sağında, **Yeni oturum** düğmesinin üstünde) **Bilgisayar ekle…** seçeneğini seçin, bağlantıyı yapıştırın, bir **Ad** yazın (bu Mac’in ya da başka bir bilgisayarın adı olmamalı) 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 bu pencereyi kaplar. Orada o bilgisayarın kendi sohbetleri, kenar çubuğu, araçları ve dosyaları vardır. Bu sırada bu Mac arkada çalışmaya devam eder. Diğer Mac aynı seçiciyi aynı yerde gösterir: geri dönmek için orada **Bu Mac** seçeneğini seçin. 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> |
|
|
107
|
+
| **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. Notların altındaki bir satır GitHub’da yıldız ister; bu satır en çok 30 günde bir görünür (ağ çağrısı yapılmaz). **GitHub’da yıldız ver** ya da **Bir daha sorma** tıklandıktan sonra bir daha görünmez. 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> |
|
|
108
|
+
| **Açık/kapalı filtresi** | <a id="feature-featurefilter"></a>**Ayarlar → Composer Plus** içinde **Özellik ara** kutusunun yanında: **Tümü** tüm özellikleri, **Açık** yalnız anahtarı açık olanları, **Kapalı** yalnız anahtarı kapalı olanları gösterir. Her satırın kendi anahtarı belirler; dsh’nin Host’unun tuttuğu anahtarlar da dahildir (örneğin **Mobil bağlantı**). Aramayla birlikte çalışır: bir sözcük yazıp **Kapalı**’yı seçerek kapattığınız bir özelliği bulursunuz. **Açık** ya da **Kapalı** seçiliyken anahtarını değiştirdiğiniz satır, yeniden bir filtre seçene kadar kalır; böylece odak anahtarında kalır. **Açık** ve **Kapalı**, **Uygulama dili** ve **Composer Plus güncellemeleri** satırlarını gizler (anahtarları yoktur). Ayarlar her açılışta **Tümü** ile başlar. | <a href="assets/features/featureFilter.webp"><img src="assets/features/featureFilter.webp" width="160" alt="Ekran görüntüsü: Açık/kapalı filtresi"></a> |
|
|
109
|
+
| **Issue bildir** | <a id="feature-issuereport"></a>Ayarlar → Composer Plus → **Issue bildir…** (giriş metninin altında) ya da kenar çubuğunda bir sohbete sağ tıklayın (ya da sohbetin **…** menüsünü açın) → **Composer Plus için issue bildir…**. Bir tür seçin: **Hata**, **Özellik isteği**, **İyileştirme**, **Çeviri** ya da **Soru**. Kendi sözlerinizle ve kendi dilinizde anlatın, sonra **Taslak yaz** düğmesine tıklayın (ya da `Cmd/Ctrl+Enter`). dsh’nin varsayılan modeline yapılan tek bir çağrı İngilizce bir issue yazar: türün önekiyle bir başlık (örneğin `[Bug]`) ve o türün bölümleri (hata için: What happened, Steps to reproduce, Expected, Actual), ayrıca Composer Plus, dsh ve sistem sürümlerini içeren bir satır. Başlığı ve açıklamayı okuyun ve düzenleyin; **Yeniden yaz** yeni bir taslak yazar. **Issue aç**, issue’yu GitHub CLI (`gh`) oturumunuzla Composer Plus GitHub deposunda açar ve bağlantısını gösterir. Issue herkese açıktır: anahtara ya da parolaya benzeyen metin reddedilir. `gh` issue’yu açamazsa **Bunun yerine GitHub’da aç**, GitHub’ın kendi sayfasını taslakla doldurulmuş olarak açar. | <a href="assets/features/issueReport.webp"><img src="assets/features/issueReport.webp" width="160" alt="Ekran görüntüsü: Issue bildir"></a> |
|
|
104
110
|
| **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
111
|
| **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
112
|
| **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> |
|
|
@@ -112,7 +118,7 @@ Düğmeler, araç ipuçları, uyarılar ve bildirimler seçili dsh dilini kullan
|
|
|
112
118
|
|
|
113
119
|
## Ayarlar
|
|
114
120
|
|
|
115
|
-
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**, **Sonraki mesaj tahmini** ile **Hedef kontrolü** ö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**, **İstemi iyileştir** ve **Hedef kontrolü** için seçilen **Model** ile **Sohbet boyunca izin** için seçilen **Süre sınırı** da Host’ta saklanır (**Yazarken tamamla** için varsayılan: **Sonraki mesaj tahminiyle aynı**; **İstemi iyileştir** ve **Hedef kontrolü** için varsayılan: **Sohbetin modeliyle aynı**; **Süre sınırı** için varsayılan: 1 saat). **İç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.
|
|
121
|
+
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. Yanındaki **Tümü**, **Açık** ve **Kapalı**; tüm özellikleri, yalnız açık olanları ya da yalnız kapalı olanları gösterir (bu düğmeleri gizlemek için **Açık/kapalı filtresi** anahtarını kapatın). 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**, **Sonraki mesaj tahmini** ile **Hedef kontrolü** ö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**, **İstemi iyileştir** ve **Hedef kontrolü** için seçilen **Model** ile **Sohbet boyunca izin** için seçilen **Süre sınırı** da Host’ta saklanır (**Yazarken tamamla** için varsayılan: **Sonraki mesaj tahminiyle aynı**; **İstemi iyileştir** ve **Hedef kontrolü** için varsayılan: **Sohbetin modeliyle aynı**; **Süre sınırı** için varsayılan: 1 saat). **İç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.
|
|
116
122
|
|
|
117
123
|
<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>
|
|
118
124
|
|
|
@@ -172,6 +178,7 @@ dsh `0.2.0-rc.2` (masaüstü ve web) ve `0.2.1-rc.2` (web) üzerinde test edildi
|
|
|
172
178
|
- **İçerik araması:** sohbetlerinizde yeni bir kod arama yapmaz. Eklenti yalnızca dsh’nin kendi mesaj dizinini (SQLite FTS5, `dsh-session-query-sqlite`) açar ve ona bir dosya verir: `$DSH_HOME/cache/composer-plus/session-search.db` (dosyaya ve klasöre yalnızca sahibi erişebilir). Dosya, kullanıcı ve asistan mesajlarınızın metnini içerir. Bu yüzden `$DSH_HOME/sessions` içindeki sohbet günlükleri kadar özeldir. Hiçbir veri bilgisayarınızdan çıkmaz. Dosya, dsh’nin yeniden oluşturabileceği bir kopyadır: dsh kapalıyken onu silebilirsiniz. Anahtar `$DSH_HOME/storages/dsh-composer-plus/content-search.json` dosyasındadır.
|
|
173
179
|
- **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. Dosyalarla geri alma, dosyaların geri almadan hemen önceki hâlini de **Yeniden uygula** için saklar (aynı ayrı depoda, `refs/r/…`). Yeniden uygulanan geri almalar `$DSH_HOME/storages/dsh-composer-plus/redone.json` dosyasında listelenir (yalnızca sahibin erişebildiği dosya).
|
|
174
180
|
- **GitHub’da issue aç** (Özellik fikirleri → **Sonra** listesi): yalnızca siz tıkladığınızda çalışır. Host tarafı, sohbetin klasöründe sizin kendi GitHub CLI aracınızı (`gh issue create`) fikrin kayıtlı başlığı ve özetiyle (ve neden önemli olduğuyla) çalıştırır. `gh` kendi oturumunu ve klasörün GitHub uzak deposunu (remote) kullanır. Bu yüzden issue sizin hesabınızla o depoda açılır ve GitHub onu o depoyu görebilen herkese gösterir. dsh, başlattığı komutlardan adı token’a benzeyen değişkenleri kaldırır. `gh` aracına `GH_TOKEN` ya da `GITHUB_TOKEN` ile bir token verdiyseniz eklenti `gh` aracına yalnızca bu değişkenleri geçirir. Issue bağlantısı, fikirle birlikte `later.json` dosyasında saklanır.
|
|
181
|
+
- **Issue bildir** (Ayarlar → Composer Plus → **Issue bildir…** ya da bir sohbetin **…** menüsü → **Composer Plus için issue bildir…**): siz tıklayana kadar hiçbir şey çalışmaz. **Taslak yaz**, yalnızca türü ve yazdığınız metni (sohbeti ve projeyi değil) tek bir çağrıyla dsh’nin varsayılan modeline gönderir. Host tarafı Composer Plus, dsh ve işletim sistemi sürümlerini içeren bir satır ekler ve kullanıcı klasörünüzün yolunun yerine `~` yazar. **Issue aç**, kendi GitHub CLI aracınızı (`gh issue create --repo furkancak1r/dsh-composer-plus`) kendi `gh` oturumunuzla çalıştırır. Bu yüzden issue herkese açıktır ve GitHub hesabınızı gösterir. Anahtara, token’a ya da parolaya benzeyen metin reddedilir ve Mac’inizden çıkmaz.
|
|
175
182
|
- **Bu dosyayı değiştiren sohbetler** (Değişiklikler, bir dosyanın "…" menüsü): Host tarafı, klasörü aynı depoda olan sohbetlerin günlüklerini dsh’nin sakladığı biçimiyle okur ve her sohbetin başlığını, zamanı ve isteğin ilk satırını döndürür. Dosyanın kendisini hiçbir zaman açmaz.
|
|
176
183
|
- **Sohbet satırlarında Git dalı:** Host tarafı, bir tur başlarken ve biterken sohbetin klasöründe `git branch --show-current` komutunu (salt okunur) çalıştırır. Yalnızca sohbet kimliğini, dal adını ve zamanı `$DSH_HOME/storages/dsh-composer-plus/session-branches.json` dosyasında saklar (yalnızca sahibin erişebildiği dosya, en yeni 2000 sohbet). Anahtar, onun yanındaki `branches.json` dosyasındadır.
|
|
177
184
|
- **Sohbette bul** yalnızca sayfada çalışır: sayfanın gösterdiği metni okur ve hiçbir şey göndermez.
|
|
@@ -180,9 +187,10 @@ dsh `0.2.0-rc.2` (masaüstü ve web) ve `0.2.1-rc.2` (web) üzerinde test edildi
|
|
|
180
187
|
- **Sohbet boyunca izin:** izinler, verildikleri zamanla birlikte `$DSH_HOME/storages/dsh-composer-plus/chat-grants.json` dosyasında saklanır (yalnızca sahibin erişebildiği izinlerle). Bir izin, tek bir sohbetteki tek bir aracı süre sınırı dolana kadar kapsar (varsayılan olarak 1 saat). O araç yazabiliyorsa izin her türlü yazmayı da kapsar. İzni başlıktaki etiketten kaldırın.
|
|
181
188
|
- Otomatik inceleme yine her çağrıda çalışır. İnceleme hataları hiçbir zaman otomatik olarak onaylanmaz.
|
|
182
189
|
- **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. "Tailscale only" yerel ağdan gelen her bağlantıyı reddeder ve zaten açık olan bağlantıları da kapatır. Erişim günlüğü en yeni 200 bağlantı denemesini (zaman, IP adresi, cihaz adı, izin verildi ya da reddedildi ve nedeni) `access.json` dosyasında tutar. Günlükte hiçbir zaman bir token ya da eşleştirme kodu bulunmaz. Veriler: `$DSH_HOME/storages/dsh-composer-plus/mobile/` (yalnızca sahibin erişebildiği dosyalar). Ayrıntılar: [tether/README.md](tether/README.md).
|
|
183
|
-
- **Uzak bilgisayarlar:** siz her Mac’te ayrı ayrı açana kadar kapalıdır. **Diğer bilgisayarların bu Mac’i açmasına izin ver** ikinci bir HTTPS portu (19392) açar. Bu port yalnızca bu Mac’in Tailscale adresindedir (Wi-Fi’da değildir, Bonjour ile duyurulmaz). Başka bir Mac’in bağlanması için tek kullanımlık bir eşleştirme bağlantısı (5 dakika geçerli), eşleşen sertifika (sabitlenmiş) ve sizin **Onayla** ile onay vermeniz gerekir. Bu Mac, o bilgisayarın token’ının yalnızca bir özetini (hash) tutar. Eşleştirilmiş bir bilgisayar, bu Mac’teki dsh’yi tam olarak denetler, sanki siz burada kullanıyormuşsunuz gibi: sohbetleri, modelleri, araçları, dosyaları ve terminali. Bilgisayarı Ayarlar panelinden kaldırdığınızda bağlantıları hemen kapanır. Başka bir Mac’i açan Mac, o bilgisayarın token’ını `$DSH_HOME/storages/dsh-composer-plus/computers.json` dosyasında tutar (yalnızca sahibin erişebildiği dosya). Seçtiğiniz her bilgisayar için `127.0.0.1` üzerinde bir aktarıcı (relay) açar. Sayfa tek kullanımlık bir bağlantı alır (60 saniye geçerli). Aktarıcı yalnızca kendi sayfasını kabul eder (kendi adresini; başka bir siteyi kabul etmez).
|
|
190
|
+
- **Uzak bilgisayarlar:** siz her Mac’te ayrı ayrı açana kadar kapalıdır. **Diğer bilgisayarların bu Mac’i açmasına izin ver** ikinci bir HTTPS portu (19392) açar. Bu port yalnızca bu Mac’in Tailscale adresindedir (Wi-Fi’da değildir, Bonjour ile duyurulmaz). Başka bir Mac’in bağlanması için tek kullanımlık bir eşleştirme bağlantısı (5 dakika geçerli), eşleşen sertifika (sabitlenmiş) ve sizin **Onayla** ile onay vermeniz gerekir. Bu Mac, o bilgisayarın token’ının yalnızca bir özetini (hash) tutar. Eşleştirilmiş bir bilgisayar, bu Mac’teki dsh’yi tam olarak denetler, sanki siz burada kullanıyormuşsunuz gibi: sohbetleri, modelleri, araçları, dosyaları ve terminali. Bilgisayarı Ayarlar panelinden kaldırdığınızda bağlantıları hemen kapanır. Başka bir Mac’i açan Mac, o bilgisayarın token’ını `$DSH_HOME/storages/dsh-composer-plus/computers.json` dosyasında tutar (yalnızca sahibin erişebildiği dosya). Seçtiğiniz her bilgisayar için `127.0.0.1` üzerinde bir aktarıcı (relay) açar. Sayfa tek kullanımlık bir bağlantı alır (60 saniye geçerli). Aktarıcı yalnızca kendi sayfasını kabul eder (kendi adresini; başka bir siteyi kabul etmez). Bu penceredeki diğer Mac’in sayfası, bu Mac’in bilgisayarlarının adlarını ve durumlarını okuyabilir (adresini ve token’ını okuyamaz). Bu pencereyi onlar arasında değiştirebilir. Bilgisayar ekleyemez, yeniden adlandıramaz, kaldıramaz ve bu Mac’in ayarlarını değiştiremez.
|
|
184
191
|
- **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.
|
|
185
|
-
- **
|
|
192
|
+
- **Türkçe skill paketi:** varsayılan olarak açıktır ve yalnız uygulama dili Türkçe iken çalışır: tarayıcı, dsh’nin arayüz dilini Host tarafına bildirir. Sonra Host tarafı en çok günde bir kez `api.github.com` adresine `yucezerey/turkish-anti-ai-skill` deposunun en yeni commit’ini ve dosya listesini sorar, değişen Markdown dosyalarını `raw.githubusercontent.com` adresinden indirir. Her güncelleme denetiminde olduğu gibi GitHub IP adresinizi görür; sizinle ya da sohbetlerinizle ilgili hiçbir bilgi gönderilmez. Yalnız `skills/turkish-anti-ai-skill/` klasöründeki normal `.md` dosyaları tutulur (en çok 20 dosya ve 1 MB) ve her dosya GitHub’ın dosya listesindeki kimliğiyle eşleşmelidir. Kopya `$DSH_HOME/cache/composer-plus/turkish-skill/<commit>` klasöründedir (yalnız sahibi erişir) ve dsh’nin skill listesine eklenir; paketin hiçbir betiği çalışmaz. Anahtar ve son bildirilen dil `$DSH_HOME/storages/dsh-composer-plus/turkish-skill.json` dosyasındadır. Kapatınca skill kaldırılır ve kopya silinir.
|
|
193
|
+
- **Kullanım sayımı:** Host tarafı GitHub'dan, kurulu sürümün release'indeki iki küçük dosyayı ister (`github.com/furkancak1r/dsh-composer-plus/releases/download/v<version>/<file>`): `active.txt` dosyasını günde bir kez, `installed.txt` dosyasını her dsh ana klasörü için yalnız bir kez. GitHub bu istekleri dosya başına sayar. Böylece geliştirici yalnız şunu görür: o gün her sürümün kaç kopyası `active.txt` istedi ve toplam kaç kopya `installed.txt` istedi (kopya sayısı). İstekte kimlik, çerez ya da size veya sohbetlerinize ait bir veri yoktur. Her güncelleme denetiminde olduğu gibi GitHub IP adresinizi görür. Son `active.txt` isteğinin günü `$DSH_HOME/storages/dsh-composer-plus/active.json` dosyasında tutulur. `installed.txt` isteğinin sayıldığını gösteren işaret `$DSH_HOME/storages/dsh-composer-plus/installed.json` dosyasında tutulur. Bu deponun git kopyası ve adı değiştirilmiş bir kopya istek göndermez. Bu sayım için bir anahtar yoktur.
|
|
186
194
|
- **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).
|
|
187
195
|
- **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).
|
|
188
196
|
- **İ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).
|
|
@@ -212,10 +220,11 @@ dsh `0.2.0-rc.2` (masaüstü ve web) ve `0.2.1-rc.2` (web) üzerinde test edildi
|
|
|
212
220
|
- **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).
|
|
213
221
|
- **Yeniden başlatmadan sonra kuyruk boş:** Kuyruğu dsh kapanırken kendisi boşaltır. Yeniden açılışta sürdür kuyruğu yalnız sürdürdüğü sohbette geri koyar; diğer sohbetlerde mesajları yeniden gönderin. Kapanıştan hemen önce kaldırdığınız bir mesaj geri gelebilir: Onu yeniden kaldırın.
|
|
214
222
|
- **GitHub’da issue aç "gh could not open the issue" diyor:** bu mesaj, `gh` aracının kendi ilk satırıdır. Bir terminalde `gh auth status` komutunu çalıştırın ve `gh auth login` ile oturum açın. Sohbetin klasöründe bir GitHub uzak deposu (remote) olmalıdır (`git remote -v`). "not installed or not on the PATH of dsh", dsh’nin `gh` aracını bulamadığı anlamına gelir: aracı yükleyin ya da dsh’yi `gh` aracının çalıştığı bir terminalden başlatın.
|
|
223
|
+
- **Issue bildir "gh could not open the issue" diyor:** bu mesaj, `gh` aracının kendi ilk satırıdır. Bir terminalde `gh auth status` komutunu çalıştırın ve `gh auth login` ile oturum açın. Ya da **Bunun yerine GitHub’da aç** düğmesine tıklayın: GitHub’ın kendi yeni issue sayfası taslakla doldurulmuş olarak açılır ve issue’yu orada siz gönderirsiniz.
|
|
215
224
|
- **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
225
|
- **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
226
|
- **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.
|
|
227
|
+
- **Bir yayından hemen sonra yükleme başarısız oluyor:** sürümü ekleyin (`dsh-composer-plus@1.23.0`) ve yukarıdaki kurulum notuna bakın.
|
|
219
228
|
- **Ş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
229
|
- **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
230
|
- **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.
|
|
@@ -237,9 +246,11 @@ dsh `0.2.0-rc.2` (masaüstü ve web) ve `0.2.1-rc.2` (web) üzerinde test edildi
|
|
|
237
246
|
- 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
247
|
- **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
248
|
- 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.
|
|
249
|
+
- Notların altındaki GitHub yıldız satırı, depoya yıldız verip vermediğinizi bilemez: eklenti bunun için ağ çağrısı yapmaz. Her tarayıcı (ve masaüstü uygulaması) kendi kaydını tutar. Bu yüzden satır başka bir tarayıcıda bir kez daha görünebilir.
|
|
240
250
|
- **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.
|
|
241
251
|
- **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.
|
|
242
252
|
- **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.
|
|
253
|
+
- **Dosya önizlemesinden alıntıla**, dsh'nin kendi dosya önizlemesini okur: satır numaraları önizlemenin satırlarından gelir, bu yüzden kod ve metin dosyalarında doğrudur. Markdown dosyası biçimlendirilmiş bir sayfa olarak görünür; bu yüzden alıntısında metin, Markdown işaretleri ve satır numaraları olmadan gelir. PDF alıntısında satır değil, sayfa vardır. Yol başlığındaki, başka bir görüntüleyicideki (elektronik tablo, Office dosyası, görsel) ya da iki açık dosyaya yayılan bir seçimde düğme görünmez. Sağ kenar çubuğu tam ekrandayken de düğme görünmez (o sırada yazma alanı ekranda değildir). Düğme önizlemeyi dsh'nin sayfa yapısından bulur, çünkü dsh'de orada seçim için bir slot yok. Bir dsh güncellemesi bu yapıyı değiştirirse düğme görünmez. Yazma alanına yalnız seçili metin girer: dosya sonra değişirse alıntı değişmez.
|
|
243
254
|
- **Yan sohbet**, salt okunurluğu dsh'nin kendi salt okunur moduyla sağlar: dosya araçları yazamaz, kabuk komutları dsh'nin yazma izni olmayan korumalı alanında çalışır (korumalı alan başlayamazsa hiç çalışmaz). Ajan yine de dsh'nin onay kartıyla daha fazla izin isteyebilir; bir ağ çağrısı (örneğin bir API isteği) bilgisayarın dışında bir şeyi yine değiştirebilir. Kopya, kuyrukta hiçbir mesajın beklemediği en yeni anda alınır; bu yüzden kuyrukta mesaj beklerken sorulan bir soru, onlardan sonra olanları görmez. Sohbetin çalışan adımı kopyada kapatılır; yan sohbet o adımın başını bilir, sonucunu bilmez. Yan sohbet sıradan bir sohbettir: kenar çubuğunda kalır ve model kullanımınıza sayılır; onu orada arşivleyin. Geri getir, yan sohbetin yalnız kendi mesajlarını alır (en çok 12.000 karakter) ve her sorunun yalnız son yanıtını alır; ajanın araç çağrıları arasındaki notları gelmez. dsh, bir eklentinin sağ kenar çubuğunda sohbet göstermesi için bir yuva sunmuyor; bu yüzden yan sohbet ana görünümde açılır.
|
|
244
255
|
- **Diff notları** yalnız Değişiklikler panelinde çalışır; dsh'nin kendi Son tur görünümünde çalışmaz. Bir aralık, farkın tek bir bloğunda (tek bir `@@` bölümünde) kalmalıdır. Notlar bu tarayıcının depolamasında tutulur; başka bir tarayıcı ya da başka bir bilgisayardaki dsh onları görmez. Tether kendi notlarını bellekte tutar. Bir not, tıkladığınız andaki satırları saklar: ajan dosyayı sonra değiştirirse not yine eski satırları ve numaraları gösterir. Sohbet başına en çok 50 not, not başına en çok 2.000 karakter ve 40 satır vardır (fazlası `…` satırıyla gösterilir).
|
|
245
256
|
- **Sohbet boyunca izin**, süre sınırını iznin verildiği andan başlayarak sayar. Yeni bir süre sınırı, geçerli izinlere hemen uygulanır. Bu yüzden daha kısa bir süre sınırı bu izinleri hemen bitirebilir. 1.12 ve önceki sürümlerden kalan izinlerin bir süresi yoktur: güncellemeden sonra ajan bu araçlar için bir kez daha sorar.
|
|
@@ -247,7 +258,7 @@ dsh `0.2.0-rc.2` (masaüstü ve web) ve `0.2.1-rc.2` (web) üzerinde test edildi
|
|
|
247
258
|
- **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.
|
|
248
259
|
- **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.
|
|
249
260
|
- **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.
|
|
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.
|
|
261
|
+
- **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. Seçici yalnızca sol kenar çubuğu açıkken görünür (simge sütununda görünmez). Diğer Mac’in sayfasında seçici yalnızca o Mac’te Composer Plus’ın bu sürümü ya da daha yenisi varsa görünür. Daha eski bir sürüm varsa birkaç saniye sonra üstte **Bu Mac’e dön** düğmesi çıkar. Açtığınız her bilgisayarın sayfası, özelliği kapatana ya da dsh’yi yeniden başlatana kadar bellekte kalır. Masaüstü uygulamasında diğer Mac’in sayfası gömülü bir sayfadır: dsh’nin kendi klavye kısayolları (örneğin yeni sohbet) orada çalışmaz. Dosya indirme, mikrofon ve bildirimler de orada çalışmaz. Özellik 19392 numaralı portu kullanır (her Mac’te yalnızca bir dsh diğer bilgisayarların girmesine izin verebilir). Diğer Mac’in sayfasındaki seçici yalnızca bu Mac’in bilgisayarları arasında geçiş yapar. Bu yüzden diğer Mac üzerinden üçüncü bir Mac açamazsınız.
|
|
251
262
|
- 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.
|
|
252
263
|
- **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.
|
|
253
264
|
- **Kuyruktaki mesajı yerinde düzenle**, bu arada gönderilmeye başlayan ya da başka bir yerde (örneğin iPhone’daki Tether’de) değişen bir mesajı değiştirmez ve bunu bir uyarıyla bildirir. Yeni görsel için görselleri kabul eden bir model gerekir (dsh’nin kendi görsel sınırları da geçerlidir), yeni dosyanın da yüklemesi bitmeden mesaj kaydedilemez. Yalnızca kendi mesajlarınızı düzenleyebilirsiniz: kuyruktaki bir hedef turu ya da bir soruya verilen yanıt düzenlenemez. Eklenti güncellendikten sonra yalnızca metin değişikliği hemen çalışır: görsel ya da dosya içeren bir mesajı kaydetmeden önce dsh’yi yeniden başlatın (Host tarafı açılışta yüklenir).
|
|
@@ -255,6 +266,7 @@ dsh `0.2.0-rc.2` (masaüstü ve web) ve `0.2.1-rc.2` (web) üzerinde test edildi
|
|
|
255
266
|
- **Ağaç** dal haritası her okun nereye gittiğini tahmin eder, çünkü git bir dalın hangi dala birleştirildiğini kaydetmez. Birleştirilmiş bir dal, onu ilk olarak bir birleştirme commit’iyle alan dalı gösterir. Bekleyen bir dal, başladığı en yakın dalı gösterir (önce ana dal). İki dal aynı commit’ten başladıysa harita yanlış olanı seçebilir. İleri sarma (fast-forward) ile ilerleyen bir dalın birleştirme commit’i yoktur, bu yüzden **Birleştirildi** etiketi hiçbir şey açmaz. Ana dal, `origin` uzak deposunun varsayılan dalıdır. Bu yoksa `main` ya da `master`, o da yoksa açık daldır. Harita en yeni 20.000 commit’i okur ve en çok 60 dal gösterir. Geçmiş daha uzunsa bazı okların yanlış olabileceğini söyler. Squash ya da rebase ile birleştirilen bir dal (örneğin GitHub’da) **Bekliyor** olarak görünür: git, onun commit’leriyle bir bağ tutmaz.
|
|
256
267
|
- **Bu sohbet** yalnızca dsh’nin dosya araçlarının (`write`, `edit`, `str_replace_editor`) yazdığı dosyaları sayar. Bir komutun (`bash`) değiştirdiği dosyalar bu görünümde yoktur. Bu dosyalar **Commit edilmemiş** altında görünür. Sohbetin Tur geri alma anlık görüntüsü yoksa (Tur geri alma kapalı, dsh-rewind-plugin yüklü ya da sohbet eklentiden daha eski), görünüm son commit ile karşılaştırır ve bunu belirtir. Tur geri alma bir sohbetin en yeni 50 anlık görüntüsünü saklar. Daha uzun bir sohbette görünüm, saklanan en eski anlık görüntüyle karşılaştırır, hangi mesajdan başladığını söyler ve daha önceki değişiklikleri saymaz. **Boşluk değişikliklerini gizle**, `git diff -w` ile aynıdır: yalnızca satır içindeki boşlukları değişen bir satır da gizlenir.
|
|
257
268
|
- **GitHub’da issue aç** için dsh’nin PATH’inde GitHub CLI (`gh`) ve sohbetin klasöründe bir GitHub uzak deposu (remote) gerekir. En çok 60 sn çalışır. `gh` daha uzun sürerse issue GitHub’da açılmış olabilir, ama bağlantısı listede görünmez. Yeniden tıklamadan önce GitHub’a bakın: liste bağlantıyı yalnızca tamamlanan bir çalıştırmadan okur, bu yüzden yeni bir tıklama ikinci bir issue açabilir. Birden çok GitHub uzak deposu olan bir klasör, `gh` aracının kendi varsayılanını kullanır (`gh repo set-default`).
|
|
269
|
+
- **Issue bildir** yalnızca Composer Plus deposunda (`furkancak1r/dsh-composer-plus`) issue açar, kendi projenizde açmaz (bunun için Özellik fikirleri **Sonra** listesindeki **GitHub’da issue aç** düğmesini kullanın). Taslak için dsh’de bir varsayılan model, issue’yu açmak için de oturum açılmış GitHub CLI (`gh`) gerekir. Taslak her zaman İngilizcedir. Model bir ayrıntıyı yanlış yazabilir: **Issue aç** düğmesine tıklamadan önce taslağı okuyun. Açma işlemi en çok 60 sn çalışır; aynı başlık ve metni bir saat içinde yeniden gönderirseniz yeni bir kopya açılmaz, önceki issue gösterilir. **Bunun yerine GitHub’da aç**, bağlantıyı kısa tutmak için çok uzun bir açıklamayı kısaltır.
|
|
258
270
|
- **Bu dosyayı değiştiren sohbetler**, **Bu sohbet** gibi yalnızca dsh’nin dosya araçlarını (`write`, `edit`, `str_replace_editor`) tanır: bir komutun (`bash`) yaptığı değişiklik listelenmez. Deponun en yeni 300 sohbetini okur (oluşturulma zamanına göre) ve daha fazlası varsa bunu belirtir. En çok 100 satır gösterir. Yeniden adlandırılan bir dosya, aracın yazdığı adla listelenir. Klasörü deponun dışında olan bir sohbet (aynı dosyalara başka bir yoldan ulaşsa bile) sayılmaz. dsh açıldıktan sonraki ilk açılış, deponun tüm sohbet günlüklerini okur (275 sohbet için yaklaşık 4 sn). Sonraki açılışlar yalnızca o zamandan beri değişen sohbetleri okur.
|
|
259
271
|
- **Sohbet satırlarında Git dalı**, şu anki dalı değil, sohbetin son turu başladığında ya da bittiğinde sohbetin klasörünün bulunduğu dalı gösterir: bir tur dışında yapılan dal değişikliği bir sonraki turdan sonra görünür. Bu sürümden önceki sohbetlerde bir sonraki turlarına kadar etiket görünmez. Etiket, dsh’nin sohbet satırı yapısına yerleşir (dsh’de orada bir yuva yoktur). Bir dsh güncellemesi bu yapıyı değiştirirse etiket görünmez. Etiket yalnızca “Tek listede” görünümünde görünür.
|
|
260
272
|
- **Sohbet başına dal** plan modunda: dsh, `/plan <mesaj>` metnini mesaj olarak değil, komut olarak gönderir. Bu yüzden Composer Plus, komutun gönderilmesini dsh’nin mesaj alanında yakalar (herkese açık API değildir). Bir dsh güncellemesi bunu değiştirirse **Yeni dal** seçiliyken `/plan <mesaj>`, açık Yeni sohbet ekranında dsh’nin kendi komutu olarak çalışır. Host yeni sohbette plan modunu açamazsa dal klasörü kalır ve mesaj gönderilmez. Böylece yeni sohbet, varsayılan modda dosyaları değiştirmez.
|
|
@@ -279,6 +291,8 @@ dsh `0.2.0-rc.2` (masaüstü ve web) ve `0.2.1-rc.2` (web) üzerinde test edildi
|
|
|
279
291
|
- **Yeni sohbette devam et** sohbeti (mesajlar, araç çağrıları ve her araç sonucunun sonu; en çok yaklaşık 60.000 karakter, en yeni kısım) sohbetin kendi modeline gönderir. Not bir kararı ya da dosyayı atlayabilir: başlatmadan önce okuyun. Yeni sohbet yalnız notu ve bağlantılı sohbeti bilir (dsh eski sohbeti salt okunur bağlam olarak ekler); model bağlamı küçük başlar, eski sohbet olduğu gibi kalır. Her sohbet için aynı anda tek not ya da başlatma çalışır.
|
|
280
292
|
- **Bağlam dökümü** dsh'nin kendi kuralıyla tahmin gösterir (token başına yaklaşık 4 karakter), dsh'nin bağlam halkasıyla aynı kural; modelin kendi sayımı farklı olabilir. Araç tanımları en yeni isteğinkilerdir. Bağlamı sohbet günlüğündeki hâliyle gösterir; şu anda çalışan bir tur bir sonraki adımından sonra görünür.
|
|
281
293
|
- **Planlı adımlar** yalnız model plan yaptığında token kazandırır: açıkken her istek `plan_next_steps` aracını ve kısa bir talimatı (yaklaşık 500 token) taşır; modelin hiç plan yapmadığı sohbetlerde de. Koşul yalnız yazdığını kanıtlar (örneğin: derlemenin çıkış kodu 0 oldu); işin doğru olduğunu kanıtlamaz. `ok`, dsh'nin kendi sonuç işaretlerini okur (`[exit code: N]`, zaman aşımı, sandbox reddi); sıfırdan farklı çıkış kodu vermeden başarısız olan bir komut geçmiş sayılır. Adımlar tek tek çalışır; aynı anda hazır olan iki adım modele geri döner. Adımın mesajı, sohbetin modelinin bir asistan mesajı olarak kaydedilir (dsh'de bir eklentinin yazdığı mesaj için işaret yok); bu yüzden metni, adımı Composer Plus'ın çalıştırdığını söyler. Tether'de yok.
|
|
294
|
+
- **Türkçe skill paketi** üçüncü taraf bir skill kurar: kuralları Composer Plus’tan değil, yazarın GitHub deposundan gelir; yeni bir sürüm, biz incelemeden bir sonraki günlük denetimden sonra kullanılır. Denetim, dosyaların GitHub’ın o commit için listelediği dosyalar olduğunu kanıtlar; kuralların iyi olduğunu kanıtlamaz. Skill’in ne zaman yükleneceğine model karar verir (siz de adıyla çağırabilirsiniz); kurallar yalnız Türkçe metinlere uygulanır. Host, bir tarayıcının en son bildirdiği dili kullanır: iki tarayıcı farklı diller kullanırsa en yeni bildirim geçerli olur. GitHub, giriş yapılmadan saatte 60 API çağrısına izin verir; reddedilen bir denetim kurulu kopyayı korur ve nedenini Ayarlar’da gösterir.
|
|
295
|
+
- **Kod tabanını toparla** becerinin sabit bir kopyasıyla gelir (caldoai/skills, commit f3cf477): kaynaktaki bir değişiklik yalnız yeni bir Composer Plus sürümüyle gelir. Beceri, çok dosya değiştirebilen uzun bir hedef çalıştırır; alt ajanları ve kontrolleri çok token harcar. Projenin testi olmayan yerlerde davranışı fark ettirmeden değiştirebilir: ayrı bir dalda başlatın ve birleştirmeden önce farkı okuyun. Projede, özel bir beceri klasöründe ya da `~/.dsh/skills` içinde aynı adlı bir beceri varsa bunun yerine o kullanılır. Anahtar kapalıyken `/untangle-codebase` modele düz metin olarak gider.
|
|
282
296
|
- **Görev panosu** bu pencerede dsh'nin listelediği sohbetleri gösterir: proje dışındaki bir sohbet yalnız **Tüm projeler** içinde görünür ve “Sohbet başına dal” klasörü (`<project>/.worktrees/<name>`) kendi projesinden sayılır. Bir kartın sütunu sohbetin canlı durumudur, bu yüzden kartlar sürüklenemez: bir sohbet, turu bitince (bir hatadan ya da durdurmadan sonra da) **Bitti** sütununa geçer ve yeniden çalışınca **Yapılıyor** sütununa döner. Yeşil nokta dsh'nin kendi “bitti” noktasıdır ve dsh onu yalnız bu pencerede tutar: sayfa yeniden yüklenince biten sohbetler noktasız görünür. **Bitti** en yeni 50 sohbeti gösterir (**Daha eski N görevi göster** kalanları gösterir). **Projelerde ara** bir projeyi yalnız adıyla bulur, klasör yoluyla bulmaz. **Son 2 saatte aktif olanlar**, bir projenin her sohbeti 2 saatten eski, boşta ve okunmuş olduğunda o projeyi gizler; pano, seçtiğiniz projeyi yine gösterir. **Yeni görev**, bu penceredeki yeni sohbetlerden yalnız en yenisini hatırlar: ilk mesajdan önce başka bir sohbet açarsanız o sohbet, siz içine yazana kadar **Yapılıyor** sütununun en üstünde **Yeni görev** olarak kalır, ama pano yalnız en yenisi için kendiliğinden geri gelir. Sayfa yeniden yüklenince mesajı olmayan yeni sohbet panoda görünmez (dsh onu kendi boş Yeni oturumu olarak tutar). Etiketler, her görev için ilk mesajından yapılan tek bir model çağrısından gelir: yanlış olabilirler ve panoda başlatmadığınız bir sohbetin etiketi yoktur. Başlık, dsh'nin kendi sohbet başlığıdır (dsh'nin başlık hizmeti, sohbetin modeliyle); başlık gelene kadar kart ilk mesajın ilk satırını gösterir. **×** ve **Tümünü temizle** kartları yalnız panodan kaldırır: hiçbir sohbet silinmez. **Geri al** yalnız 8 saniye ve yalnız bu pencerede görünür; daha sonra **Kaldırılanlar (N)** → **Panoya geri koy** bir kartı geri getirir, yeniden çalışan bir sohbet de kendiliğinden geri gelir. **Tümünü temizle** önce sorar, sonra gösterilen projenin okunmuş biten kartlarını (**Tüm projeler** seçiliyken tüm projelerinkini), **Daha eski N görevi göster** arkasında kalanlar da dahil, panodan kaldırır; okunmamış (yeşil) kart kalır. dsh yeşil noktasını yalnız bu pencerede tutar, bu yüzden sayfa yeniden yüklendikten sonra Tümünü temizle, yanıtını okumadığınız bir kartı da kaldırabilir. Liste bu Mac'te tutulur ve her pencerede ve Tether'da geçerlidir; listede 5.000 sohbet olunca en eskileri geri gelir. **Yanıtla** yalnız sohbetin en yeni isteğini yanıtlar: sohbet o isteği başka bir yerde yanıtladıysa (başka bir pencere, Tether, Otomatik inceleme) ya da yeni bir şey soruyorsa panel bunu söyler ve hiçbir şey göndermez. Önceki sürümlerde yorumlu bir görev listesi ve ajan araçları vardı; bunlar kaldırıldı ve eski `board.json` gösterilmez. Fikir ve görünüm emanuele-em'in [Kanzo](https://github.com/emanuele-em/kanzo) projesinden gelir (AGPL-3.0); Composer Plus onun kodunu kullanmaz. `Cmd+Shift+K` bir dsh kısayoludur: Linux’taki tarayıcıda varsayılan tuşu yoktur (dsh’nin Klavye kısayolları sayfasında bir tuş atayın) ve bir tarayıcı uzantısı ya da başka bir uygulama tuşu önce alabilir. Bir kart, dsh’nin kendi yeşil noktası gidince (sohbeti açtığınızda) **Bitti** sütunundan çıkar; panonun arkasında açık sohbetken biten bir sohbet için, o sohbet üstünde panel olmadan görününce çıkar. Bu okundu bilgisi dsh’nin kendi noktaları gibi yalnız bu dsh penceresinde tutulur: sayfayı yenileyince ya da başka bir pencerede biten her sohbet okunmuş sayılır, yani **Son bitenler** içindedir.
|
|
283
297
|
- **Durdurduktan sonra gönderilen önce gider** yalnız sohbeti durdurduktan sonra çalışır (ya da bir tur hata verdikten sonra veya hâlâ kuyruğu olan bir sohbeti açtığınızda): bir tur çalışırken gönderdiğiniz mesaj yine kuyruğun sonunda bekler. Mesaj yalnız sizin kuyruktaki mesajlarınızın önüne geçer: kuyrukta bir hedef turu ya da bir soru yanıtı bekliyorsa dsh’nin kendi sırası kalır. dsh’nin herkese açık API olmayan bir bölümünü okur (durdurulan turun hâlâ bitip bitmediğini); bir dsh güncellemesi bunun adını değiştirirse mesaj, o tur bittikten sonra öne alınır. Alt ajan sohbetleri dsh’nin kendi sırasını korur.
|
|
284
298
|
- **Proje hafızası** sohbetin ilk klasörüne (dsh'nin proje klasörüne) aittir: klasörünü `cd` ile değiştiren bir sohbet ilk projesinin hafızasını kullanmaya devam eder; aynı klasör aynı dosyalara giden başka bir yoldan açılırsa hafızayı paylaşır. Bir sohbet, başladığında hafıza bölümünü dondurur; bu yüzden sonra kaydedilen bir not bir sonraki sohbette görünür (`memory_recall` onu hemen bulur). İnceleme yalnız modelin saklamaya karar verdiği şeyi saklar: bir olguyu kaçırabilir ya da yanlış bir şeyi saklayabilir. Notları **Hafızayı aç** içinde kontrol edip orada değiştirin ya da dsh kapalıyken dosyaları elle düzenleyin. **Hafızayı aç**, seçili projenin notlarını ve genel notları (Tüm notlar seçiliyse bütün projeleri; en çok yaklaşık 60.000 karakter, kalanı yalnız sayılır ve o istekte değişemez) ve yazdığınız metni sohbetin modeline değil, dsh’nin varsayılan modeline gönderir. Önizleme Mac’te 30 dakika ve dsh yeniden başlayana kadar tutulur; bu arada bir inceleme ya da ajan notları değiştirirse **Uygula** reddeder ve yeniden önizlersiniz. **Uygula** bir önizlemenin ya bütün değişikliklerini ya hiçbirini kaydeder: bir değişiklik kaydedilemezse (örneğin MEMORY.md doluysa) notlar olduğu gibi kalır ve nedeni görünür. Sizden bir mesaj içeren her bitmiş tur bir model çağrısına mal olur; başarısız bir çağrı, sonraki turdan sonra aynı mesajları yeniden okur. Alt ajan sohbetleri incelenmez. Fikir ve dosya biçimi [DS Bot](https://github.com/Fei2411/DS-Bot) projesinden gelir (Apache-2.0); Composer Plus onun kodunu kullanmaz ve DS Bot'un kendi hafızasını hiçbir zaman okumaz ya da yazmaz.
|
|
@@ -293,6 +307,8 @@ dsh `0.2.0-rc.2` (masaüstü ve web) ve `0.2.1-rc.2` (web) üzerinde test edildi
|
|
|
293
307
|
- **Geri yükleme:** yalnızca kurtarma konsolunda, dsh kapalıyken çalışır ve dsh ana klasörünün tamamını değiştirir. Eski klasör, siz silene kadar yanında `.dsh.pre-restore-<time>` olarak kalır. Bu yüzden diskte ikisine de yer olmalıdır. Sohbetler proje yollarını korur: başka bir bilgisayarda, başka bir yoldaki proje, siz onu yeniden ekleyene kadar eksik görünür. dsh ana klasörünün dışını gösteren sembolik bağlantılar (örneğin başka bir klasörden bağlanan beceriler) bağlantı olarak geri gelir; hedefleri o bilgisayarda bulunmalıdır.
|
|
294
308
|
- **Oturum günlüğü kontrolü** her sohbetin en yeni günlüğünü, dsh’nin neyin açılacağına dair kendi kurallarıyla okur: JSON olmayan ya da sırası bozuk bir satır, yalnızca ondan sonra bir tur sonu geliyorsa hasar sayılır (gelmiyorsa dsh sohbeti o satır ve sonrası olmadan açar, bu yüzden sohbet listelenmez). Günlüğün olaylarını dsh’nin kendi olay kurallarına göre kontrol etmez. Bu yüzden sağlam dediği bir günlük, bir dsh yükseltmesinden sonra yine de açılmayabilir. Onarım, kopyayı bir yedekten alır: o yedekten sonraki mesajlar o sohbetten kaybolur (hasarlı dosya yanında kalır). Bu dsh’de açık olan bir sohbet Ayarlar’da onarılmaz: dsh onu tutar.
|
|
295
309
|
- **Otomatik yedekleme** yalnızca dsh çalışırken çalışır: dsh kapalıyken zamanı gelen bir yedekleme, bir sonraki açılıştan yaklaşık 45 sn sonra çalışır. Yeni bir sürümün anlık görüntüsü güncellemeden önce değil, o açılıştan sonra alınır.
|
|
310
|
+
- **Pencere boyutunu hatırla** yalnız masaüstü uygulamasında çalışır. Her açılışta dsh pencereyi önce 1280 × 820 gösterir; eklenti yüklenince pencere kaydedilen boyuta geçer. Bir sayfanın pencere taşıma olayı yoktur, bu yüzden eklenti pencereyi saniyede bir okur: dsh kapanmadan önceki son 2 saniyedeki değişiklik kaydedilmez. Boyut her bilgisayar için ayrı, uygulamanın kendi deposunda tutulur.
|
|
311
|
+
- **Kullanım sayımı:** kişileri değil, kopyaları sayar: her dsh ana klasörü bir kopyadır. Tekil kopya sayımı (`installed.txt`) yalnız bu dosyanın olduğu ilk sürüme ya da daha yeni bir sürüme güncelleyen kopyaları sayar. Daha eski bir sürümde kalan kopya sayılmaz. `storages` klasörü silinen kopya yeniden sayılır. GitHub, aynı IP adresinden (örneğin aynı NAT yönlendiricisinin arkasındaki bilgisayarlardan) yaklaşık 10 dakika içinde gelen istekleri tek istek sayabilir.
|
|
296
312
|
- 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).
|
|
297
313
|
|
|
298
314
|
## SSS
|
|
@@ -363,6 +379,8 @@ dsh `0.2.0-rc.2` (masaüstü ve web) ve `0.2.1-rc.2` (web) üzerinde test edildi
|
|
|
363
379
|
|
|
364
380
|
**Uzun bir yanıtın yalnız bir bölümüne nasıl yanıt veririm?** O bölümü seçin ve seçimin üstündeki **Alıntıla** düğmesine tıklayın (**Yanıtta alıntıla**, varsayılan olarak açık). Bölüm yazma alanına `> …` alıntısı olarak girer; yanıtınızı altına yazarsınız.
|
|
365
381
|
|
|
382
|
+
**Ajana bir dosyanın belirli satırlarını nasıl gösteririm?** Dosyayı sağ kenar çubuğunda açın (**Çalışma alanı dosyaları**), satırları seçin ve seçimin üstündeki **Alıntıla** düğmesine tıklayın (**Dosya önizlemesinden alıntıla**, varsayılan olarak açık). Yazma alanına yol ve satır numaraları (örneğin `src/login.js:2-3`) ile kod bloğu olarak satırlar girer; sorunuzu bunların altına yazın.
|
|
383
|
+
|
|
366
384
|
**Ajan çalışırken onu durdurmadan bir şey sorabilir miyim?** Soruyu yazın ve yazma alanındaki **Yan sohbette sor** düğmesine tıklayın (**Yan sohbet**, varsayılan olarak açık). Sohbetin salt okunur bir kopyası soruyu yanıtlar, sohbet ise çalışmaya devam eder. Yan sohbette **Geri getir**, yanıtı sohbetin yazma alanına koyar.
|
|
367
385
|
|
|
368
386
|
**Ajana, farkında neyi değiştirmesi gerektiğini nasıl söylerim?** **Değişiklikler paneli** içinde dosyanın farkını açın, bir satırdaki **+** düğmesine tıklayın ve bir not yazın (**Diff notları**, varsayılan olarak açık). Sonra **Yazma alanına gönder** düğmesine tıklayın: notlar, dosya, satır numaraları ve satırlarla birlikte yazma alanına girer.
|
|
@@ -371,7 +389,7 @@ dsh `0.2.0-rc.2` (masaüstü ve web) ve `0.2.1-rc.2` (web) üzerinde test edildi
|
|
|
371
389
|
|
|
372
390
|
**iPhone’umu kaybettim. Mac’ime erişmesini nasıl engellerim?** Kenar çubuğunun sol altındaki **Mobil bağlantı** düğmesine tıklayın, sonra o iPhone’un yanındaki **Remove** düğmesine tıklayın. iPhone’un anahtarı hemen geçersiz olur. iPhone, ancak sizin Mac’te onayladığınız yeni bir eşleştirmeyle yeniden bağlanabilir.
|
|
373
391
|
|
|
374
|
-
**Diğer Mac’imdeki bir sohbete bu Mac’ten nasıl devam ederim?** Diğer Mac’te **Ayarlar → Composer Plus → Uzak bilgisayarlar** ve **Diğer bilgisayarların bu Mac’i açmasına izin ver** seçeneklerini açın. **Eşleştirme bağlantısı oluştur** düğmesine tıklayın ve bağlantıyı kopyalayın (bağlantıyı kendinize gönderin, örneğin AirDrop ya da Notlar ile). Bu Mac’te de **Uzak bilgisayarlar** özelliğini açın.
|
|
392
|
+
**Diğer Mac’imdeki bir sohbete bu Mac’ten nasıl devam ederim?** Diğer Mac’te **Ayarlar → Composer Plus → Uzak bilgisayarlar** ve **Diğer bilgisayarların bu Mac’i açmasına izin ver** seçeneklerini açın. **Eşleştirme bağlantısı oluştur** düğmesine tıklayın ve bağlantıyı kopyalayın (bağlantıyı kendinize gönderin, örneğin AirDrop ya da Notlar ile). Bu Mac’te de **Uzak bilgisayarlar** özelliğini açın. Sol kenar çubuğundaki seçicide (marka adının sağında, **Yeni oturum** düğmesinin üstünde) **Bilgisayar ekle…** seçeneğini seçin, bağlantıyı yapıştırın, bir **Ad** yazın ve **Bağlan** düğmesine tıklayın. Sonra diğer Mac’te **Onayla** düğmesine tıklayın. Bundan sonra o bilgisayarı aynı menüden seçin: bu pencereyi kaplar. Geri dönmek için aynı yerde **Bu Mac** seçeneğini seçin. Bu sırada bu Mac’teki sohbetler çalışmaya devam eder.
|
|
375
393
|
|
|
376
394
|
**Tether’i Face ID ile kilitleyebilir miyim?** Evet: Tether’de "Settings → Privacy → Lock with Face ID" seçeneğini açın. Bundan sonra Tether, açıldığında ve ona geri döndüğünüzde Face ID (ya da parola) ister.
|
|
377
395
|
|
|
@@ -403,6 +421,12 @@ dsh `0.2.0-rc.2` (masaüstü ve web) ve `0.2.1-rc.2` (web) üzerinde test edildi
|
|
|
403
421
|
|
|
404
422
|
**dsh, modele yeniden sormadan sonraki komutu çalıştırabilir mi?** Evet, **Planlı adımlar** ile (varsayılan olarak kapalı): Ayarlar → Composer Plus içinden açın. Model sonraki komutlarını bir koşulla planlayabilir, örneğin "derleme geçince testleri çalıştır"; sonuç koşulu karşılarsa Composer Plus adımı yeni bir model çağrısı yapmadan çalıştırır. Onaylar ve sandbox olduğu gibi kalır.
|
|
405
423
|
|
|
424
|
+
**Türkçe skill nereden geliyor, kaldırabilir miyim?** GitHub’daki [yucezerey/turkish-anti-ai-skill](https://github.com/yucezerey/turkish-anti-ai-skill) deposundan (MIT). Composer Plus onu yalnız **Uygulama dili** Türkçe iken kurar, yalnız Markdown dosyalarını tutar ve hiçbir betiğini çalıştırmaz. Kaldırmak için Ayarlar → Composer Plus içinden **Türkçe skill paketi** anahtarını kapatın: skill ve indirilen kopya hemen silinir.
|
|
425
|
+
|
|
426
|
+
**Composer Plus’taki bir hatayı nasıl bildiririm ya da yeni bir özelliği nasıl isterim?** Ayarlar → Composer Plus → **Issue bildir…** (ya da bir sohbetin **…** menüsü → **Composer Plus için issue bildir…**). Bir tür seçin, kendi dilinizde anlatın ve **Taslak yaz** düğmesine tıklayın. İngilizce taslağı kontrol edin, sonra **Issue aç** düğmesine tıklayın.
|
|
427
|
+
|
|
428
|
+
**Ajan dağınık bir kod tabanını nasıl toparlar?** Bir sohbete `/untangle-codebase` yazın (**Kod tabanını toparla**, varsayılan olarak açık); isterseniz bir alan ekleyin, örneğin `/untangle-codebase src/api`. Ajan önce kopyaları, gizli bağları, gereksiz sarmalayıcıları, ölü kodu ve özel durumları listeler, sonra bunları bir hedef olarak düzeltir ve alt ajanlarla yeniden kontrol eder. İşin kendi dalında kalması için beceriyi bir **Sohbet başına dal** sohbetinde başlatın.
|
|
429
|
+
|
|
406
430
|
**Masaüstü uygulamasıyla çalışır mı?** Evet: Ayarlar → Eklentiler → **Eklenti ekle** → `dsh-composer-plus`. dsh 0.2.0-rc.2 (masaüstü ve web) ve 0.2.1-rc.2 (web) üzerinde test edildi.
|
|
407
431
|
|
|
408
432
|
## Geliştirme
|
|
@@ -422,6 +446,8 @@ SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-status-order.mjs /path/t
|
|
|
422
446
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-agentbox-ideas.mjs /path/to/dsh/lib/bin.js
|
|
423
447
|
# Reject with note, Secret input, Quote in reply, Side chat and Diff notes (fake model + a test-only approval gate): the button on dsh's card, the note after the rejection in the next request, Esc; the secret card, Save, the value in no request, file or page, Decline, Stop; a selected part of an answer → Quote → the sent message; a side question while the chat waits on a card (read-only, no queued message in it), Bring back; notes on a diff line and range → Send to composer → the sent message; switch off + their thumbnails
|
|
424
448
|
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-t3code-ideas.mjs /path/to/dsh/lib/bin.js
|
|
449
|
+
# Quote from file preview (fake model): lines of a code, text, Markdown and PDF file in the right sidebar → Quote → the path, the line numbers and the lines in the sent message; no button for the path header; switch off + its thumbnail
|
|
450
|
+
SHOT=1 PLAYWRIGHT=/path/to/playwright node test/browser-preview-quote.mjs /path/to/dsh/lib/bin.js
|
|
425
451
|
# every Settings feature row shows a loading screenshot and a ? link to its README row
|
|
426
452
|
PLAYWRIGHT=/path/to/playwright node test/browser-settings-shots.mjs /path/to/dsh/lib/bin.js
|
|
427
453
|
# 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
|
|
@@ -494,3 +520,5 @@ PLAYWRIGHT=/path/to/playwright node test/browser-language.mjs /path/to/dsh/lib/b
|
|
|
494
520
|
## License
|
|
495
521
|
|
|
496
522
|
MIT
|
|
523
|
+
|
|
524
|
+
`assets/skills/untangle-codebase/SKILL.md`, [caldoai/skills](https://github.com/caldoai/skills) deposundaki `untangle-codebase` becerisidir; © 2026 Maze, MIT Lisansı ([lisansı](assets/skills/untangle-codebase/LICENSE)).
|