CodeNomad/docs/help/tr/history.md
Pascal André 5bc483d08d
feat(ui): toggle several rows at once by dragging across toggles (#1221)
Setting many rows of the same kind (Message content eyes, session
selection checkboxes, model visibility) took one click per row. Image
editors let users drag across a column of layer eyes instead; CodeNomad
now does the same.

Pressing a toggle and dragging out of it flips it, and every toggle of
the same column or list the pointer then crosses takes that new state;
toggles already in that state stay as they are. Releasing the button
clicks nothing, including the first toggle when the drag returns to it.
It works for mouse and pen; touch drags keep scrolling, and a touch
landing during a mouse drag leaves the sweep going.

Implementation: `lib/toggle-sweep.ts` installs one capture listener on
first use. Toggles opt in with `data-toggle-sweep={toggleSweepGroup(...)}`,
one group per column or list, so the Message content eyes and chevrons
sweep separately and exclusive selectors (tabs, presets) never sweep.
Each toggle changes through its own click, so its handlers, disabled
state and accessibility are unchanged; state is read from `checked`
(labels stand for their checkbox) or `aria-pressed`/`aria-checked`. The
drag is sampled every 4 px so fast moves skip no row, text selection
and native drag are blocked during a sweep, the trailing click is
swallowed, and a sweep whose release went elsewhere ends at the next
move without the button. `afterSweep` defers costly work until the
sweep ends.

Groups: Message content visibility and expansion columns, session
selection checkboxes, right-panel customization (built-in tabs and
Status sections; extension activation is a trust decision and stays
out), notification routing, model visibility, and the multi-select
options of agent forms and provider sign-in forms.

Message content dropped clicks made while a save was pending and showed
a row only once the server confirmed it, re-rendering the transcript
for each. Rows now show their requested state at once; a sweep saves
once, on release, so the transcript re-renders once. Saves run in
order and each batch of rows is sealed as it joins the queue, so a
later click never jumps ahead of a preset change nor rides along with a
sweep still held.

Notification routing shows each box at once, writes the whole table
once per sweep, runs its writes one after another so an older table
never lands last, and asks for System permission once per gesture.
Model visibility already showed pending changes and wrote them in
order.

Validation: browser regressions in transcript-presets (a single jump
across four eyes with slow saves, shown during the drag with nothing
saved, then one write on release; a hidden row that stays hidden; a
release back on the origin; the chevron column alone; a held sweep not
persisted by queued saves; a row clicked after a preset applying after
it), session-search (both directions, a release over a row title
opening no session, a lost release leaving no sweep, a touch mid-drag)
and notification-routing (one write per sweep, serialized writes with
the last winning, one permission request). Each fails with its part of
the fix removed. Two gatekeeper rounds ended with no P0-P2 finding; the
user validated the behaviour in a separate Electron dev instance.
dev-docs/UI_CONVENTIONS.md and dev-docs/TRANSCRIPT.md record the
convention, and the help describes the gesture in all ten languages.
2026-10-31 00:49:50 +01:00

11 KiB
Raw Permalink Blame History

Geçmiş, arama ve temizleme

Saklanan geçmiş, konuşma dökümünün şu anda görüntüledikleri ve modelin sıkıştırılmış bağlamı ayrıdır. Herhangi bir şeyi silmeden önce gezinmeyi veya filtrelemeyi seçin.

  1. Konuşma başlığında Sohbet geçmişinde ara öğesini açın veya yapılandırılmış kısayolunu (varsayılan Ctrl/Cmd+F) kullanın.
  2. Tüm oturum veya Tüm çalışma alanı öğesini seçin ve bir arama terimi girin.
  3. Okunabilir metnin yanı sıra teknik içeriğe de ihtiyacınız varsa Araçları ve düşünceleri dahil et öğesini etkinleştirin.
  4. Bir alıntı seçin. Tüm oturum kapsamında kronolojik sayfalarda ilerlemek için Sonraki sonuçlar öğesini kullanın.

Tüm oturum, saklanan geçmişte büyük/küçük harfe duyarsız tam ifade arar. Tüm çalışma alanı, açık projenin yetkili dizin ve çalışma ağaçlarında en fazla altı terimle arama yapıp en iyi 40 sonucu tek listede sıralar. Her konuşmanın en iyi eşleşmesi önce gelir; başlıklar ve güncel çalışma ağacı etiketleri sıralamayı korur. Terimler alıntılarda ve Oturumda aç sonrasında hedef konuşmada vurgulanır. Okunabilir metin ve isteğe bağlı araçlar ile düşünceler aranır.

Konuşma sayfaları gruplar geldikçe Bu sayfa: … sonuç · … mesaj tarandı bilgisini gösterir. Proje araması En iyi sonuçlar: … ile kısmi tarama veya hariç tutulan dizinlere ilişkin kısa bildirimler gösterir. Sıralanmış arama çalışma ortamında yoksa Tüm oturum kullanın. Atlanan mesajlar bildirilir; yeni mesajlar için yeniden arayın.

Boş arama açmak geçmişi taramaz. Sorguyu/kapsamı değiştirmek, pencereyi kapatmak veya oturumdan ayrılmak geçerliliğini yitiren aramayı iptal eder. Okuma başarısızsa Yeniden dene eylemini kullanın; bu istem göndermez veya geçmişi değiştirmez.

Proje taraması her konumdaki en yeni en fazla 16.384 kayıtlı mesajdan başlar. Daha eskiyi ara, listeyi sonraki eski pencerenin en iyi sonuçlarıyla değiştirir. Bildirim, projenin her konumunda yeniden eskiye incelenen aralığı gösterir. Sıralama yalnızca o pencere içinde geçerlidir. Sorgu, kapsam veya teknik içerik değişikliği, aramayı kapatma ya da oturumdan ayrılma pencereyi sıfırlar. Yeni arama yeni mesajları da içerir.

Arama penceresinin süresi dolarsa veya geçmiş değişirse Yeni arama başlat, aynı sorgu ve seçeneklerle en yeni mesajlardan başlar. Bildirim bu kurtarmayı açıklar. Olağan okuma hatalarında Yeniden dene, geçerli pencereyi tekrar okur.

Sonuçları açın ve zaman çizelgesini kullanın

  1. Çevresindeki pasaja atlamak için geçerli oturum arama sonucunu seçin.
  2. Söz konusu mesajın ayrı bir önizlemesini açmak için başka bir oturumdan bir sonuç seçin; o konuşmaya isabetin olduğu yerde gitmek için Oturumda aç öğesini kullanın.
  3. Mesaj zaman çizelgesi bölümünde bir alıntı için işaretçinin üzerine gelin veya odaklanın, ardından gezinmek için onu seçin: bloğu en üste gelir ve siz kaydırana kadar işaretçi vurgulu kalır; sonra vurgu, konuşmanın en üstündeki bloğu izler. Saklanan geçmişin sonuna dönmek için ilk/en son mesaj kontrollerini kullanın.

Zaman çizelgesi, konuşma dökümü yalnızca sınırlı bir pasaj içerdiğinde bile tam oturum yapısını temsil eder. Atlamalar, araya giren her mesajı getirmek yerine hedefi yükler. Diğer oturum arama önizlemeleri o oturumun tüm metnini yüklemez veya onu seçmez; konuşmayı yalnızca Oturumda aç değiştirir.

Araç işaretçileri Mesaj içeriği ayarlarını izler: orada gizlenen bir araç türünün işaretçisi olmaz (Hiçbir şey ile hiç işaretçi olmaz); izin bekleyen bir araç bunun istisnasıdır. Yalnızca araç çalıştıran bir adım, boş bir ajan işaretçisi olmadan yalnızca araç işaretçilerini gösterir.

Atlama yüklenirken eski bölüm görünür kalır. Yeni atlama veya konuşma dökümüne elle müdahale, eski gezinmeyi geçersiz kılar; başarısız atlama görünür bölümü korur. Tüm projeyi tekrar tekrar yüklemek yerine hedefi yeniden deneyin. Geçmişi okumak ileti düzenleyicisindeki ajan/model seçimini değiştirmez.

Konuşma çok dar olduğunda (420 CSS pikselinin altında) zaman çizelgesi gizlenir; orada arama ve konuşma dökümü kontrollerini kullanın. Kaydedilen görünürlük tercihi, bu duyarlı değişiklik nedeniyle silinmez.

Doğru geçmiş işlemini seçin

Operasyon Nerede Kapsam ve sonuç
Görüntü filtreleme Mesaj içeriği veya Ayarlar → Sohbet Paylaşılan konuşma dökümü görüntüleme tercihleri; içeriği silmeden gizler / daraltır
Sıkıştırma Palet Session'ı Sıkıştır Teknik çıktının silinmesi değil, seçilen oturum için yerel özet/bağlam sıkıştırması
Tek yanıtlı temizleme Mesaj Diğer eylemler → Bu yanıttan araçları ve akıl yürütmeyi kaldır Uygun tamamlanmış teknik parçaları kalıcı olarak kaldırır; son metni korur
Oturumun teknik temizliği Palet Oturum Araçlarını ve Akıl Yürütmeyi Kaldır Sıkıştırma öncesi mesajlar dahil saklanan oturum geçmişinin tamamında planlama yapar; son metni ve mesaj/oturum meta verilerini korur
Oturumu sil Oturum satırı Session'ı sil veya seçilen oturumun silinmesi Onaylandıktan sonra yerel konuşmayı ve onun alt oturumlarını/geçmişini yinelemeli olarak siler; geri alma yok
Session'ları Temizle Komut paleti Görüntüleme veya bağlam boyutu ayarı değil, daha kapsamlı oturum silme

Mesaj içeriği konuşmalar genelinde geçerlidir. Üst kısmından veya Ayarlar → Sohbet bölümünden bir hazır ayar (Hiçbir şey, Minimal, Dengeli veya Her şey) seçin, ardından satırları tek tek ayarlayın; Mesaj içeriği hazır ayar menüsü bundan sonra Özel gösterir. Araçları gizlemek araçları devre dışı bırakmaz, izinleri değiştirmez veya saklanan çıktıyı kaldırmaz. Arayüzün akıcı kalması için çok büyük mesajlar atlanan bölümün yerinde … tane daha göster kontrolünü gösterir; çok uzun metin veya araç çıktısı ise Tümünü göster ile birlikte Bu mesajın akıcı kalması için … karakter daha gizlendi satırında durur; çok fazla içerik kaldığında Tümünü göster yerine … tane daha göster görünür ve bu birkaç adım gerektirebilir. İkisini de açmak yalnızca görüntülemeyi etkiler ve silinmiş içeriği kurtarmaz. Birden fazla satırı tek seferde ayarlamak için göz veya ok düğmelerinin üzerinde sürükleyin: ilk ayrıldığınız düğme değişir ve aynı sütunda üzerinden geçtiğiniz her düğme onun yeni durumunu alır. Konuşma, düğmeyi bıraktığınızda güncellenir.

Bir oturumu sıkıştırın

  1. Amaçlanan konuşmayı seçin.
  2. Komut paletinden Session'ı Sıkıştır öğesini çalıştırın.
  3. Yeniden denemeye karar vermeden önce yerel sıkıştırma sonucunu bekleyin veya Sıkıştırma başarısız öğesini inceleyin.

Sıkıştırma, OpenCode'un oturuma devam etmek için kullandığı bağlamı değiştirir. Daha önce saklanmış mesajların silineceğini vaat etmez: tam geçmiş araması ve teknik temizlik sıkıştırma öncesi içeriğe hâlâ ulaşabilir. Saklanan hassas geçmişi silmek yerine sıkıştırmayı kullanmayın.

Araçları ve akıl yürütmeyi kaldırın

  1. Tek yanıtlı eylemi seçin veya seçilen oturum için Oturum Araçlarını ve Akıl Yürütmeyi Kaldır öğesini çalıştırın.
  2. Planlanan araç/akıl yürütme sayılarını ve atlanan içerik uyarılarını gözden geçirin.
  3. Kaldır öğesini onaylayın. Tüm oturum çalışması için konuşma dökümünün üzerindeki ilerlemeyi takip edin ve gerekirse iptal kontrolünü kullanın.

Yalnızca uygun, tamamlanmış araçlar ve akıl yürütme parçaları kaldırılır. Etkin/tamamlanmamış içerik budanmaz; OpenCode'un okuduğu haliyle (ekli dosyalar dahil) boyutu 16 MB üzerinde olan bir mesaj da budanmaz ve atlanan içerik sayılır; onayladığınız kapsamı sessizce genişletmek yerine değişmiş içerik reddedilir. Son metin ve mesaj/oturum meta verileri korunur, ancak kaldırılan teknik çıktı geri alınamaz. Onaylamadan önce gereken her şeyi koruyun.

Oturum temizliği bütün oturum için atomik değildir. Sonraki mesaj çakışır veya başarısız olursa önceki başarılı kaldırmalar kalır. İptal sonraki toplu işlemleri durdurur; zaten gönderilmiş toplu işlemi geri almaz; o işlem yine de tamamlanabilir.

Meşgul depolama hatası durumunda mevcut yürütme/depolama işinin bitmesini bekleyin. Değiştirilen mesaj hatası için yeniden yükleyin ve tekrar seçin. Kullanılamayan bir eklenti için CodeNomad'i yeniden bağlayın/yeniden açın ve yeniden denemeden önce hatayı inceleyin. Belirsiz bir yanıtın ardından kalan içeriği yenileyin ve değerlendirin; hiçbir şeyin olmadığını ya da tüm oturumun temizlendiğini varsaymayın.

Oturumları silme ve temizleme

Üst oturumu silmek tüm alt oturumlarını ve geçmişlerini de siler. Onaylamadan önce konuşma ailesini inceleyin. Görev uzmanı temizliği farklıdır: alt oturumları olan oturumları korur.

  1. Tam olarak hangi konuşmanın gitmesi gerektiğini bildiğinizde belirli bir satırın Session'ı sil'sini tercih edin.
  2. Daha kapsamlı bakım için Session'ları Temizle öğesini çalıştırın ve Session'ları Derin Temizle onayını okuyun.
  3. Yalnızca boş oturumların, tamamlanmış alt ajan oturumlarının ve kullanılmayan çatallanmaların kaldırılmasını kabul ediyorsanız onaylayın.

Scrub, mevcut projenin bilinen oturum adayları üzerinde çalışır ve boş ana oturumlardan fazlasını kaldırabilir. Bu bir arşivleme işlemi değildir ve geri dönüşü yoktur. Bunu yalnızca meşgul bir kenar çubuğunu gizlemek için kullanmayın. Bağımsız Boş session'ları otomatik temizle tercihi daha dardır: yüklenmemiş bir konuşma dökümünü boş olarak değerlendirmek yerine bir oturumun gerçekten boş olup olmadığını kontrol eder.

Silme konuşmaları kaldırır; Git commitlerini kaldırmaz ve dosya sistemi/harici etkileri geri almaz. Temizlik kısmen başarılı olursa silinmiş oturumlar silinmiş kalır. Yeniden denemeden önce kalan listeyi ve hataları inceleyin. Çatallama/geri alma için Konuşmalar, geçici klasör veya çalışma ağacı silme için Projeler sayfalarına bakın.