· kaynak dev.to (home feed)
AIClaw v3.7.21, geçici tarayıcı sekmelerini agent tur başına bağlayarak sahiplik temelli temizlik sunuyor
AIClaw v3.7.21, her agent turuna kendi tarayıcı durumunu veriyor ve yalnızca o turun açtığı sekmeleri kapatıyor; kullanıcının sayfalarına dokunmadan temizlik işini modelden host tarafına taşıyor.

Ne değişti
23 Ekim'de yayımlanan AIClaw v3.7.21, tarayıcı işleri için sahiplik temelli temizlik getiriyor: geçici sayfalar artık onları oluşturan agent çalışma turuyla birlikte açılıyor ve kapanıyor. Detaylı bir dev.to yazısına göre her tur kendi tarayıcı durumuna sahip; tur sona erdiğinde host, o turun açtığı sayfaları kapatırken kullanıcının zaten açık olan sayfalarına yalnızca debug bağlantılarını bırakıyor.
Hedeflenen sorun, tarayıcı agent'ı çalıştıran herkese tanıdık gelecektir: bir adım doğru şekilde tamamlanabilir ama arkasında boşta arama sayfaları bırakabilir, sonraki bir çalışma eski paylaşılan tarayıcı durumunu yeniden kullanabilir ve kaba bir temizlik rutini kullanıcının kişisel olarak açtığı bir sekmeyi kapatma riski taşır.
Tur başına bir tarayıcı durumu
Masaüstü oturum yöneticisi, tur-başladı ve tur-tamamlandı bildirimlerini dinleyerek ilk olayda tarayıcı durumu oluşturuyor, ikincisinde temizliği başlatıyor. Runtime çıkışı ve durdurma da hâlâ aktif olan turların temizliğini talep ediyor. Buradaki tur, bir konuşma içindeki tek bir çalıştırma anlamına gelir; böylece temizlik, konuşmanın arşivlenmesini veya silinmesini beklemeden hızlıca yapılır.
İçeride, oturum kimliği ve tur kimliği çiftiyle anahtarlanan bir koordinatör, bir tarayıcı örneği ile devam eden işlem promise'lerinden oluşan bir küme tutuyor. Bir kayıt oluşturmak tek başına pencere açmaz; yerleşik pencere sürücüsü bir pencereyi yalnızca bir işlem ihtiyaç duyduğunda tembel biçimde açar. Bu, eşzamanlı çalışmaları izole tutar — bir turu bitirmek, başka bir çalışmanın hâlâ ihtiyaç duyabileceği uygulama genelindeki tarayıcı nesnesini yıkmak yerine yalnızca o turun kaydını kaldırır.
Koordinatör geç gelen sayfaları da ele alır. Her işlemin promise'unu beklemeye başlamadan önce kaydeder, biten turun map kaydını önce siler ki o tur için yeni iş başlatılamasın, ardından kapatmadan önce kayıtlı promise'ları Promise.allSettled ile bekler. allSettled seçimi bilinçlidir: bir sayfayı açarken veya gezinirken oluşan hata, temizliğin atlanmasına neden olmamalıdır; ancak devam eden bir işlem sonuçlanırken kapatma, tur sonu olayının gerisinde kalabilir.
Sahipliği sekme grubu değil, oluşturma tanımlar
AIClaw iki tarayıcı backend'i destekliyor ve bunlar farklı şekilde temizlik yapıyor. Yerleşik Electron tarayıcısı turun kendi penceresini kapatıyor; bu pencere kullanıcının Chrome veya Edge sayfalarından ayrıdır. Extension backend'i daha ince taneli: sürücüsü tur başına rastgele bir sahip kimliği (owner ID) üretir ve sekme oluştururken bunu dahil eder. Extension'ın background script'i her sayısal sekme kimliğini chrome.storage.session içindeki bir agentTab anahtarı altına, değer olarak sahibiyle birlikte kaydeder; temizlik yalnızca istenen sahibe uyan kayıtları kaldırır ve diğer sekmeleri kapatmadan sadece onlardan ayrılır.
Tasarım, görünür AIClaw sekme grubunu sahiplik kanıtı olarak görmeyi açıkça reddediyor. Aynı gruptaki bir kullanıcı sayfası temizlik süpürmesinden sağ çıkmalıdır ve mevcut bir kullanıcı sekmesini seçmek onu sürücünün oluşturduğu bir sayfaya dönüştürmez. Oturum deposu, background worker'ın askıya alınması veya yeniden başlatılmasından sonra kalıcıdır; ancak Chrome, extension yeniden yüklenirken, güncellenirken veya devre dışı bırakılırken ya da tarayıcı yeniden başlarken bu depoyu temizler — yani bu kayıtlar terk edilmiş sekmeler için genel bir kurtarma veritabanı değildir.
Son pencere ve eşzamanlılık uç durumları
Bir pencerenin son sekmesini kaldırmak tüm pencereyi kapatabilir; bu yüzden extension, sahip olunan bir sekmeyi kapatmadan önce kardeş sekmelerini kontrol eder ve bu son sekme ise önce bir about:blank yedeği oluşturur. Bu düzeltme kendine özgü bir yarış durumu getirir: iki sahip olunan sekme kaldığında, eşzamanlı iki temizlik her ikisi de kardeş sayısını iki görüp ikisi de yedek bırakmadan bir sekme kaldırabilir. Bu nedenle extension, temizlik isteklerini bir promise zinciri üzerinden sıraya sokar; başarısız bir istek çağıran tarafa yine bildirilirken kuyruğun hata işleyicisi sonraki temizliklerin devam etmesini sağlar. dev.to yazısı, bunun yalnızca AIClaw'ın kendi isteklerini koordine ettiğini, diğer extension'ları veya kullanıcının eşzamanlı manuel sekme işlemlerini değil, belirtiyor.
Testler ve bilinen sınırlar
Yazının bir AI agent tarafından oluşturulduğunu ve kamuya açık etiketli kaynakla doğrulandığını belirten yazar, kamuya açık v3.7.21 etiketinden tarayıcı test modülünü yeniden çalıştırdı ve beş Node testinin de geçtiğini raporluyor. Sahiplik regresyon testi, gerçek extension background script'ini kontrollü Chrome API yedekleriyle çalıştırıyor; bir sahibin temizliğinin diğer sahibin sekmesini ve aynı gruptaki bir kullanıcı sekmesini koruması, taze bir worker bağlamının kayıtları oturum deposundan kurtarması, zararsız tekrarlanan temizlik ve eşzamanlı son sekme kaldırmalarının bir boş sekme bırakması gibi durumları kapsıyor. Ek bir Electron smoke script'i tur koordinatörünü eşzamanlı turlar ve hata durumlarıyla sınıyor; ancak yazar bu kontrolleri test takımını yeniden çalıştırmadan incelemiş.
Sınırlar sürüyor: elle yüklenmiş bir extension'ın yeni temizlik davranışını alması için yeniden yüklenmesi gerekiyor, başarısız temizlik yeniden denenmek yerine yalnızca loglanıyor ve uygulama çöktüğünde ya da extension'a erişilemediğinde geçici sayfaların kaybolacağını garanti eden bir şey yok.
Neden önemli
Sızan sekmeler ve bozulan kullanıcı oturumları, agent destekli tarayıcı çalışmalarında süregelen rahatsızlıklardır ve v3.7.21 bunlara net bir sözle yanıt veriyor: neyin geçici olduğunu oluşturma tanımlar ve geçici bir sayfa, tam olarak onu yapan turun kadar yaşar. En az bunun kadar önemlisi, yaşam döngüsü işi artık modelde değil host'ta yaşıyor; böylece agent'ın temizliği son bir görev adımı olarak hatırlamasına gerek kalmıyor — bu da prompt düzeyindeki tüm bir hata sınıfını ortadan kaldırıyor. Sürüm o zamandan beri v3.7.22 ile yerini bıraktı, ama getirdiği sahiplik modeli tasarımın kalıcı parçasıdır.
- #browser-automation
- #ai-agents
- #release-notes
- #developer-tools
- #chrome-extension
İlgili yazılar
- GitHub, Copilot düzeltme eylemlerini Microsoft Teams'teki issue bildirimleriyle eşleştirdi
- Cursor'un Computer Use özelliği, agent'ların makinenizdeki masaüstü uygulamalarına tıklamasına izin veriyor
- JetBrains, git worktree'ler ve spec graph'lar üzerine kurulu ajan temelli IDE ThinkRail'ı açık kaynak yaptı