1 puan yazan GN⁺ 3 시간 전 | 1 yorum | WhatsApp'ta paylaş
  • Claude Code 2.1.198, AskUserQuestion için 60 saniye yanıt gelmezse modelin kendi değerlendirmesiyle işi sürdürdüğü otomatik devam özelliğini varsayılan olarak etkinleştirdi; ancak çıkış sırasında bunu değişiklik günlüğüne ve belgelere yazmadı
  • İzin isteklerini otomatik onaylamıyordu; ancak zaten izin verilmiş araçların bulunduğu veya --dangerously-skip-permissions kullanılan ortamlarda “staging mi production mı” gibi karar kapılarından kullanıcı yerine geçebiliyor, kullanıcı yalnızca bazı yanıtları girse bile kalanlarını model seçiyordu
  • Sorunun gündeme gelmesinden yaklaşık iki gün sonra çıkan 2.1.200, özelliği kaldırmadı; yalnızca varsayılanı kapattı ve /config içinde 60s, 5m, 10m, never seçeneklerinden birinin seçildiği opt-in modele geçti
  • Açık depoda gerçek ürün kaynak kodu ya da ekleme/geri alma commit’leri yok; ancak npm’deki Bun çalıştırılabilir dosyasına gömülü JavaScript bundle’ları karşılaştırılarak 2.1.198 sürümünde AFK dizeleri, şema ve analiz olaylarının birlikte eklendiği doğrulanabiliyor
  • Varsayılan otomatik güncelleme ile eksik değişiklik kayıtları birleştiğinde, kullanıcı müdahalesi olmadan güvenlik varsayımları değişebilir. CLI’ı sabit tutup eklentileri güncellemek için DISABLE_AUTOUPDATER=1 ve FORCE_AUTOUPDATE_PLUGINS=1 birlikte ayarlanmalı

60 saniye sonra insan yerine karar veren 2.1.198

  • 1 Temmuz 2026’da yayımlanan Claude Code 2.1.198, AskUserQuestion insan yanıtını 60 saniye bekledikten sonra engeli kaldırıyor ve modele bağlama göre en iyi kararı verip devam etmesini söylüyordu
    • Çıktıda No response after 60s — continued without an answer gösteriliyordu
    • Yeniden soru sorulabileceğine dair bir bilgilendirme de vardı; ancak yeniden sorulan soruya da aynı zaman aşımı uygulanıyordu
  • Kullanıcı soruların yalnızca bir kısmını yanıtladıktan sonra bilgisayar başından ayrılırsa, girişi atmıyor ve kısmi yanıtları gönderiyordu
    • Üç sorudan yalnızca ilkine yanıt verilirse, bu yanıt ve modelin seçtiği kalan yanıtlarla iş sürdürülüyordu
    • Ekran mesajı, yanıt verilip verilmediğine göre continued with the answers selected so far veya continued without an answer seçiyordu
  • Ekranda hiç geri sayım yok değildi
    • Bir tuşa basıldığında zamanlayıcı yeniden başlıyor ve auto-continue in 12s · any key to stay gibi bir ifade görünüyordu
    • Ancak CLAUDE_AFK_COUNTDOWN_MS varsayılanı 20 saniye olduğu için ilk 40 saniye boyunca normal bir engelleyici soru gibi görünüyor, uyarı yalnızca son 20 saniyede gösteriliyordu
    • Birden fazla ajanı farklı sekmelerde çalıştıran veya bilgisayar başından ayrılan kullanıcılar uyarıyı görmeyebilirdi

Kapsam ve güvenlik kapılarının sınırı

  • Zaman aşımı yalnızca AskUserQuestion için geçerliydi; plan onayı veya Do you want to allow … gibi izin istemlerine bağlanmamıştı
    • Çalıştırılabilir dosyada geri sayım bileşeni ve zamanlayıcı hook’u yalnızca soru iletişim kutusuna bağlanmıştı
    • Araç referansı da izin istemlerinin boşta kalma durumunda otomatik çözülmediğini belirtiyor
  • İzin isteminin en başta görünmediği çalıştırma biçimlerinde bu ayrım bir koruma mekanizması olamıyordu
    • bypassPermissions, acceptEdits, allowedTools, --dangerously-skip-permissions, PreToolUse hook’ları kullanılabiliyordu
    • Dağıtım komutu izin listesinde yer alıyorsa veya izin kontrolü atlanmışsa AskUserQuestion içindeki “staging mi production mı?”, “hangi config?” gibi seçimler geriye kalan tek kapı olabiliyordu
  • Zamanlayıcı izin vermiyordu; ancak zaten izni olan işlerde seçimin kendisini modele bırakabiliyordu
  • Araç şemasında timeout girdisi yoktu ve model bunu ayarlayamıyor ya da kontrol edemiyordu
    • Girdi parametreleri yalnızca questions, answers, annotations, metadata idi
    • Yanıtı atlayan taraf model değil, yanıtı otomatik döndüren ajan harness’iydi

Çıkış ve geri alma zaman çizelgesi

  • Doğrulanan açık kayıtlar şu sırayla ilerliyor
    • 2026-06-29: 2.1.196 yayımlandı; bildirimi yapan kişinin son normal sürüm olduğunu tahmin ettiği sürüm
    • 2026-06-30: 2.1.197 yayımlandı; değişiklik günlüğünde yalnızca Sonnet 5 çıkışıyla ilgili tek satır vardı
    • 2026-07-01: otomatik devam özelliğini içeren 2.1.198 yayımlandı
    • 2026-07-02 02:54 UTC: Aleksey Nogin #73125 numaralı issue’yu açtı
    • 2026-07-02 03:45 UTC: yorumlarda özel kaçış yolu olan CLAUDE_AFK_TIMEOUT_MS paylaşıldı
    • 2026-07-02: issue açıkken 24 madde içeren 2.1.199 yayımlandı; otomatik devam hâlâ belirtilmiyordu
    • 2026-07-03: 2.1.200 ile varsayılan davranış geri alındı
    • 2026-07-04 18:04 UTC: issue kapatıldı
  • Issue’da 384 👍 ve 143 yorum vardı; bildirim ortamı 2.1.198, Opus, AWS Bedrock ve VS Code terminaliydi
  • Sorun bildiriminden varsayılanın değiştirilmesine kadar yaklaşık iki gün geçti

2.1.200 düzeltmeyi nasıl yaptı

  • 2.1.200, özelliği kaldırmadı; otomatik devamı varsayılan olarak devre dışı bıraktı ve /config üzerinden opt-in hâline getirdi
  • Düzeltme öncesi 2.1.198 sürümünde /config ayarı olan askUserQuestionTimeout yoktu; etkiden kaçınmak için çıkış belgelerinde yer almayan bir ortam değişkeni kullanmak gerekiyordu
  • 2.1.211 sürümünde de tüm uygulama korunuyor
    • /config öğesinin adı Question auto-continue timeout
    • İzin verilen değerler 60s, 5m, 10m, never
    • Ayarlanmadığında never olarak işleniyor ve özellik kapalı kalıyor
    • Dahili varsayılan zaman aşımı hâlâ 60.000 ms, geri sayım eşiği 20.000 ms
    • CLAUDE_AFK_TIMEOUT_MS ve CLAUDE_AFK_COUNTDOWN_MS ayar değerlerini geçersiz kılabiliyor
  • Düzeltme, zamanlayıcıyı silmek değil; yalnızca bir ayar değeri veya ortam değişkeni varsa etkinleşmesini sağlayan tek bir kapı koşulu eklemekti
  • Etkilenen sürümlere sabitlenmiş kullanıcılar, settings.json içinde CLAUDE_AFK_TIMEOUT_MS için çok büyük bir değer girerek geçici olarak etrafından dolaşabiliyordu

Değişiklik günlüğüne girmeden eklenen özellik

  • Sürüm notları, resmî değişiklik günlüğü ve deponun CHANGELOG.md dosyasında aynı içerikle yayımlanıyor
  • O dönemdeki kayıtlar sabitlenmiş commit üzerinden incelendiğinde, otomatik devam özelliğinin eklenmesi hiçbir sürümde görünmüyor
    • 2.1.197: Sonnet 5’in çıkışına dair tek satır
    • 2.1.198: Yaklaşık 30 madde var, ancak otomatik devam yok
    • 2.1.199: Sorun açıldıktan sonra yayımlanan 24 maddede de yok
  • AskUserQuestion, 2.0.55 sonrasında 13 sürümde toplam 15 kez görünecek kadar normalde değişiklik günlüğüne kaydedilen bir araçtı
    • Ancak değişikliğin girdiği aralık olan 2.1.181den 2.1.200 öncesine kadar bir kez bile görünmüyor
    • Açılma ve kapanma şeklindeki iki davranış değişikliğinden yalnızca kapanma kaydedilmiş
  • Otomatik devamı ilk kez kayda geçiren tek madde, 2.1.200 içinde yer alan “artık varsayılan olarak otomatik devam etmiyor ve /config ile opt-in” ifadesiydi
  • CLAUDE_AFK_TIMEOUT_MS, değişiklik günlüğünde de README’de de hiçbir yerde yoktu

Davranış geri alındıktan sonra eklenen belgeler

  • Mevcut ortam değişkenleri referansı, iki AFK ortam değişkenini kaydediyor ve 2.1.198 ile 2.1.199da 60 saniyelik otomatik devamın varsayılan olarak etkin olduğunu açıkça belirtiyor
  • Bu belge, çıkış günündeki durumu yansıtan bir belge olamaz
    • Mevcut metnin yönlendirdiği askUserQuestionTimeout, 2.1.198 yürütülebilir dosyasında yok
    • Wayback Machine’in 23 Haziran ve 1 Temmuz 12:11·21:35 UTC yakalamalarında CLAUDE_AFK ve AskUserQuestion için sayı ayrı ayrı 0’dı
    • Karşılaştırma maddesi olan DISABLE_AUTOUPDATER, tüm yakalamalarda 2 kez görüldü; yani bu, sayfanın eksik toplanmasından kaynaklanan bir atlama değildi
  • 2.1.198, 1 Temmuz 16:50:16 UTC’de npm’e yayımlandı; ancak 4 saat 45 dakika sonraki belgede de AFK, otomatik devam, soru aracı veya geri sayım yoktu
  • İlgili ifadeler 1 Temmuz 21:35 ile 5 Temmuz 13:58 arasında eklendi; bu aralık 2.1.200 ile yapılan geri almayı da içeriyor
  • Yeni belge, yalnızca zaten “varsayılan olarak devre dışı” olan düzeltme sonrası durumu kaydetti; 1–2 Temmuz’daki gerçek varsayılan davranışın belgelendiği bir an hiç olmadı

Kamu deposunda olmayan ürün kaynağı ve commit’ler

  • Özelliği ekleyen açık bir commit de, geri alan açık bir commit de yok
  • Kamuya açık Git geçmişinde yalnızca değişiklik günlüğü ve feed.xml dosyasını güncelleyen iki otomatik commit kalmış
    • 75709ea: 2.1.198 sürüm notlarının yayımlanması
    • 1322e9b: 2.1.200 sürüm notlarının yayımlanması
  • anthropics/claude-code deposunda 216 izlenen dosya var; bunların 104’ü Markdown ve gerçek dağıtılan ürün kaynak kodu yok
    • Çalıştırılabilir dosyalar, örnekler veya sorun takibi otomasyon betikleri
    • plugins/ ve examples/ da örnek eklentiler, GCP ağ geçidi Terraform ayarları, MDM profilleri gibi içerikler barındırıyor
  • 2.1.197 ve 2.1.198 etiketleri arasındaki fark yalnızca CHANGELOG.md ve bunun RSS olarak yinelenmiş hâli olan feed.xml
    • 2.1.196dan 2.1.206ya kadar arka arkaya on sürümde de yalnızca aynı iki dosya değişiyor
    • Etiketler kaynak sürümü değil, fiilen sürüm notu etiketi
  • Değişiklik günlüğü veya depo/etiket karşılaştırmalarıyla gerçek dağıtım davranışı doğrulanamıyor; yazılan kaynak kodu yayımlanmadan yalnızca derlenmiş yürütülebilir dosya olarak dağıtılıyor

Bilinçli olarak tasarlanıp ölçümlendiğine dair izler

  • Resmî tasarım belgesi, PR veya değişiklik günlüğü metni gibi eklenme gerekçesini doğrulayacak materyal yok
  • Adlar ve mesajlar, paralel ajanların klavye başında olmayan biri yüzünden süresiz engellendiği durumu hedeflediğini gösteren dolaylı kanıtlar sunuyor
    • Dahili ad AFK, away from keyboard anlamına geliyor
    • Mesaj, “kullanıcının klavye başından uzak olabileceğini” varsayıyor
    • Sorundaki katılımcılar, onlarca ajanın günler boyunca bir insan yanıtını beklediği iş akışları kullandıklarını belirtti
  • 2.1.198te, otomatik çözüm olup olmadığını gösteren afkTimeoutMs alanı araç sonuç şemasına eklendi
    • İnsanın yanıt verdiği yolda yok; otomatik çözümde boşta kalma süresini kaydediyor
    • Modele yanıtın otomatik çözüldüğünü bildirmek ve terminal çıktı bileşenini seçmek için kullanılıyor
  • Aynı sürüme tengu_ask_user_question_afk_auto_advance analitik olayı da eklendi
    • timeoutMs, soru sayısı, plan modu olup olmadığı ve kısmi yanıt olup olmadığını gönderiyor
    • Sorunun metni gönderilmiyor; source_hash ve sayaçlar kullanılıyor
  • hadPartialAnswers ayrı ölçümlendiğine göre, kısmi yanıt yolu da bağımsız kod ve ölçüme sahipti
  • Davranış, geri sayım arayüzü, şema alanı ve analitik olayı aynı sürümde birlikte girdiği için bu, tesadüfi tek satırlık bir değişiklik değil; ölçüm sistemi olan bir özellikti
  • Bu kanıtlar tek başına kimin yazdığını, incelediğini, onayladığını veya birleştirdiğini ya da insanın hangi aşamada devreye girdiğini göstermiyor

Kapalı kaynak ama okunabilir Bun yürütülebilir dosyası

  • Kurulu Claude Code, yaklaşık 250MB boyutunda, sembolleri kaldırılmamış yerel bir yürütülebilir dosya
  • Bun’un tek dosyalık yürütülebilir biçimi, çalışma zamanının arkasına modül grafiğini ekler; Claude Code yürütülebilir dosyasında da ---- Bun! ---- işareti bulunabiliyor
  • Bun, JavaScript paketini yürütülebilir dosyanın içine dahil ettiği için strings ile ayar adları, mesajlar, analitik olaylar vb. okunabiliyor
  • Yerel kurulum dizini son sürümlerin yalnızca bir kısmını saklıyor, ancak npm’de her sürümün platforma özel yürütülebilir dosyaları kalıyor
    • @anthropic-ai/claude-code, yaklaşık 152KB’lık kurulum amaçlı bir stub
    • Linux x64 için gerçek 2.1.198 paketi yaklaşık 249MB
  • Açık kaynak kod yok; ancak her sürüm artefaktı indirilip dağıtılan davranış doğrulanabildiği için tamamen kara kutu değil

2.1.197 ve 2.1.198 çalıştırılabilir dosyalarının karşılaştırması

  • İki çalıştırılabilir dosyada AFK ile ilgili dizgiler arandığında sınır net biçimde görülüyor
    • 2.1.197: away from keyboard, CLAUDE_AFK_TIMEOUT_MS, CLAUDE_AFK_COUNTDOWN_MS hepsi 0 kez
    • 2.1.198: sırasıyla 2, 3, 3 kez görünüyor
  • Düzeltme sonrasında 2.1.211deki zamanlayıcı kapısına /config değerinin veya bir ortam değişkeninin mevcut olması gerektiği koşulu eklendi
    • 2.1.198de de harici bir rakip sürecin çalışıp çalışmadığını denetleyen kapılar vardı
    • Ancak kullanıcının kapatabileceği bir koşul yoktu; düzeltme de buraya bir && koşulu daha eklemek şeklindeydi
  • Özelliğin adı ve sorunun yaşandığı sürüm bilinmeden genel sürümleri karşılaştırmak çok daha zor
    • strings -n 8 temelinde yapılan basit karşılaştırmada 21.903 dizgi farklı çıkıyor
    • Minimum dizgi uzunluğuna göre bu sayı 81.289 veya 29.910 olabildiğinden 21.903 sabit bir sürüm özelliği değil
    • Her derlemede minifier tanımlayıcı adlarını değiştirdiği için bunların çoğu gerçek işlev değişikliği değil, gürültü
  • Eklenen dizgiler içinden yalnızca büyük harfle başlayan, normal cümle biçiminde olan ve 5 kelime ya da daha uzun İngilizce cümleler filtrelendiğinde sayı 156 satıra düşüyor
    • Bunların içinde Before going idle the user had selected: yer alıyor
    • Diyalog kutusu insan yerine yanıt verdiğinde konuşmaya eklenen bir dizgi olduğu için, ön bilgi olmadan okunsa bile incelemeyi durdurmaya değecek bir değişiklikti
  • curl, strings, diff ile yaklaşık 5 dakika içinde bulunabilirdi; ancak kullanıcıların her otomatik güncelleme sürümünde çalıştırılabilir dosyayı incelemesi, değişiklik günlüğünün yerini tutamaz

Maliyetten daha büyük güvenlik sorunu

  • Yanlış yol otomatik seçilirse gereksiz token tüketilebilir
  • Daha büyük sorun, AskUserQuestionı engelleyici bir güvenlik kapısı olarak varsayan hook ve kuralların 60 saniyelik geri sayıma dönüşmesi
  • Claude Code dağıtım, altyapı ve prodüksiyona yakın betikler gibi riskli ortamlarda da kullanılıyor
  • Claude Code varsayılan olarak otomatik güncellendiğinden, sessiz davranış değişiklikleriyle birleştiğinde kullanıcı hiçbir şey yapmasa bile mevcut güvenlik varsayımları değişebilir
  • En yeni sürümü hemen alma politikasının başlı başına riskli bir tercih olabileceği tartışması On Cooldowns and Dependabot Tuning ile bağlantılı

Otomatik güncellemeyi kapatma yöntemi ve öncelik sırası

  • Güncellemelerin devre dışı bırakılıp bırakılmadığı aşağıdaki ortam değişkenleri sırayla kontrol edilerek belirlenir; ilk eşleşen değer uygulanır
    • DISABLE_UPDATES=1: elle çalıştırılan claude update dahil tüm güncelleme yollarını engeller
    • DISABLE_AUTOUPDATER=1: yalnızca arka plan denetimini durdurur, elle güncellemeye izin verir ve autoUpdates ayarından önceliklidir
    • CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1: otomatik güncellemeyi, geri bildirim komutunu, hata raporlamayı ve telemetriyi birlikte durdurur
  • Bunu shell profilinden ziyade ~/.claude/settings.json içindeki env bloğuna koyarsanız CI, cron, systemd ve IDE terminalleri dahil tüm oturumlara uygulayabilirsiniz
{
  "env": {
    "DISABLE_AUTOUPDATER": "1"
  }
}
  • Ayar kapsamı, shell profili, kullanıcıya özel ~/.claude/settings.json, depoya özel .claude/settings.json, merkezi yönetim için managed-settings.json sırasıyla güçlenir
  • managed-settings.json yolları şöyledir
    • macOS: /Library/Application Support/ClaudeCode/managed-settings.json
    • Linux/WSL: /etc/claude-code/managed-settings.json
    • Windows: C:\Program Files\ClaudeCode\managed-settings.json
    • Eski C:\ProgramData\ClaudeCode yolu artık okunmuyor
  • Otomatik güncellemeyi kapatan bir CLI bayrağı yoktur; /doctor kurulum türünü ve güncelleme kanalını gösterir

CLI güncellemesini kapatınca eklentiler de durur

  • Ortam değişkeni veya autoUpdates: false gibi herhangi bir yöntemle otomatik güncelleyiciyi kapatırsanız eklenti otomatik güncellemeleri de durur
  • Eklenti keşif belgesi, DISABLE_AUTOUPDATER ile birlikte FORCE_AUTOUPDATE_PLUGINS=1 ayarlanırsa CLI sabit tutulurken eklentilerin güncellenmeye devam edebileceğini söylüyor
  • Buna karşılık otomatik güncellemeyi devre dışı bırakmayı anlatan gerçek /setup belgesi ve ayar ortam değişkenleri tablosunda eklenti etkisi ve FORCE_AUTOUPDATE_PLUGINS yok
  • Çalıştırılabilir dosya açısından eklenti güncellemelerini durduran dört yol var
    • DISABLE_UPDATES
    • DISABLE_AUTOUPDATER
    • CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC
    • autoUpdates: false
  • Çalışma sırasında eklentilerin durduğuna dair bir uyarı yerine yalnızca Plugin autoupdate: skipped (auto-updater disabled) debug günlüğü kalıyor
  • CLI’ı sabitleyip eklentileri koruyan ayar şöyle
{
  "env": {
    "DISABLE_AUTOUPDATER": "1",
    "FORCE_AUTOUPDATE_PLUGINS": "1"
  }
}
  • FORCE_AUTOUPDATE_PLUGINS, DISABLE_AUTOUPDATER, DISABLE_UPDATES; 1, true, yes, on değerlerini büyük/küçük harf duyarsız biçimde doğru kabul eder, 0 ise yanlış sayılır
  • CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC değerini değil yalnızca var olup olmadığını kontrol eder; bu yüzden =0 da etkinleştirir ve bu durumda hem otomatik güncelleyici hem de eklenti güncellemeleri durur

Güncelleme ayarlarının ek tuzakları

  • Gizlilik veya dış iletişimi sınırlama amacıyla CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC kullansanız bile CLI ve eklentiler birlikte sabitlenir
  • Belgelenmemiş autoUpdates: false, yerel kurulumda autoUpdatesProtectedForNative etkinleşirse yok sayılabilir
    • Ortam değişkenleri bu ayardan önce kontrol edilir ve koşulsuz uygulanır
  • 2.1.98, npm kurulumunda DISABLE_AUTOUPDATERın registry sürüm kontrolünü ve sembolik bağlantı düzeltmesini tamamen engelleyememesi sorununu düzeltti
  • Otomatik güncelleyicinin ~/.local/bin/claude içindeki kullanıcıya özel çalıştırıcıyı veya sembolik bağlantıyı her sürümde üzerine yazması sorunu da düzeltildi; mevcut /doctor dışarıdan yönetilen çalıştırıcıyı gösteriyor
  • Yerel ve npm kurulumları varsayılan olarak kendini günceller
    • Homebrew, WinGet, apt, dnf, apk varsayılan olarak kendi kendine güncelleme kapsamında değildir
    • Homebrew ve WinGet, CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE=1 ile opt-in yapabilir

Dağıtım sürecinde kalan güven sorunu

  • Bir insan aynı anda birden fazla ajanı denetliyorsa 60 saniye içinde tüm soruları kontrol etmek zordur; yanlış bir seçimden sonra ne kadar token veya iş tüketileceği de önceden bilinemez
  • Anthropic’in özelliğin yazımı, incelemesi, onayı, birleştirilmesi, belgelenmesi ve sürüm karşılaştırması aşamalarında hangi kişiler ve süreçlerle ilerlediği kamuya açık kayıtlardan doğrulanamıyor
  • Özellik yaklaşık iki gün içinde uygun bir opt-in biçimine düzeltildi; ancak günlük yayın döngüsü ve varsayılan otomatik güncelleme aracılığıyla beklenmedik özelliklerin değişiklik günlüğü olmadan dağıtılabileceği ortaya çıktı
  • Çalıştırılabilir dosya analizi, gerçekten dağıtılan içeriği doğrulamak için geçerli bir dolaylı yöntemdir; ancak doğru ve iyi düzenlenmiş değişiklik günlüklerinin yerini tutamaz
  • Kötü niyet varsaymak için bir dayanak yok; aynı türde olayların tekrarlanıp tekrarlanmaması, bu dağıtım sürecinde neyin iyileştiğini değerlendirmek için temel olacaktır

1 yorum

 
GN⁺ 3 시간 전
Hacker News yorumları
  • Claude Code ekibinde AskUserQuestion’ı geliştiren Thariq’im. Model güçlendikçe uzun süren işlerin baştaki sorulara takıldığı yönünde geri bildirim aldık; bunu çözmek için değişiklik yaptık, ancak beklenen kalite standardını karşılamadı ve Claude Code’un normal yayınlama biçimi de bu değildi.
    İç değerlendirmeler iyi olsa bile baştan opt-in olarak sunulmalı ve değişiklik günlüğüne yazılmalıydı. AskUserQuestion’ı bir güvenlik önlemi olarak tasarlamadık, ancak bazı kullanıcılar için böyle bir konuma geldiğini anlıyorum; uzun süren işler ile kullanıcı girdisi arasındaki dengeyi kurmanın başka yollarını arayacak ve bu dağıtımdan ders çıkaracağız.

    • Tek seferlik bir düzeltme yerine ayrıntılı izin ayarları gerekiyor. Her seferinde onay alma yöntemi ile riskli tam otomatik çalıştırma arasında, “bitene kadar çalıştır ama web’e bakma, kod tabanının dışındaki dosyalara dokunma ve hiçbir şeyi silme” gibi kısıtları kolayca belirleyebilmek gerekir.
    • Saatlerce sonuna kadar çalışmasını bekleyip masadan ayrıldığım, ama Claude’un başta soru sorup durduğu için uygulama süresini boşa harcadığı gerçekten çok oldu. Öte yandan AskUserQuestion, düz metin sorulardan daha kolay yanıtlandığı için Claude’a özellikle kullanmasını söyleyecek kadar faydalı; hatayı kabul edip sorumluluk alan tavır için de teşekkür ederim.
    • ApprovIQ, ürün yayınlarında Claude Code’a kritik biçimde bağımlı, ancak Anthropic’te bu aracın kullanıcılar için olduğu kadar önemli görülmediğine dair bir asimetriklik hissediyorum. Sayısız insanın kariyerini etkileyen bir ürün söz konusu; “bu benim değişikliğimdi” diye bireysel sorumluluğu vurgulamak, güveni daha da azaltıyor.
      Anthropic ölçeğinde bir şirketin, birey yerine böyle bir dağıtıma izin veren PR ve organizasyon süreçlerinin başarısızlığını kabul edip düzelttiğini göstermesi gerekir.
    • Milyarlarca dolarlık, en ileri teknoloji şirketlerinden birinin “bu benim değişikliğimdi”, “standartlarımızı karşılamadı” diye kamuya açık biçimde özür dilemesi insani ama stratejik değil; şirketi zayıf da gösterebilir. Apple veya Google’ın parlak dönemleriyle kıyaslandığında teknik mükemmeliyet imajı açısından da aleyhe olurdu; kamuya açık sorumluluk kabulünün ne zaman, nerede ve nasıl yapılacağı da önemli.
      Bu şeffaflığın internet çağının yeni akımı mı, yoksa teknoloji şirketlerinin kültürünün değişmesi mi olduğunu merak ediyorum.
    • Hızlı geliştirme temposunda dengeyi kurmak zor olduğu için Chrome’daki gibi birden fazla yayın kanalı olması iyi olur. Güncellemeleri seyrek olan kararlı sürüm, bu tür özelliklerin önce ekleneceği beta sürümü ve gerekirse canary sürümü sunulursa herkes kendi risk toleransına göre seçim yapabilir.
  • “Her özellik değişiklik günlüğünde mutlaka yer almaz” ifadesi ve Anthropic’in değişiklik günlüğünü artık eksiksiz bir geçmiş olarak tutmama gerekçesini açıklamaması özellikle can sıkıcı. Başka nelerin gizlice dağıtıldığını bilemiyoruz (1)
    Boris Cherny’nin o tartışmada yaptığı tek şey GitHub issue başlığındaki “extreme danger” ifadesini silmekti (2). Anthropic’in bir seçenek ekleyip varsayılan olarak kapalı tutması hiç değilse iyi; ancak OpenAI, 60 saniyelik zaman sınırının devre dışı bırakılmamasında ısrar ediyor (3). Bununla birlikte Codex çalıştırma aracı daha fazla açık kaynaklı olduğu için kullanıcılar kendileri fork edip seçenek ekleyebiliyor.

    • Her yeni model dağıtıldığında önceki modelin yavaşladığı veya köreldiği hissine kapılıyorum. Kaynak tahsisi ya da kuantizasyon yüzünden olabilir ama emin olmak zor; modele özgü iş akışlarını öğrenip Opus 4.8 de olsa Sonnet 5 de olsa sorun çıktıkça yeniden ayar yapmak gerekiyor.
    • Anlaşılan kodlama artık çözüldüğüne göre kendi kararlarını vermek isteyenler dinozor muamelesi görüyor.
  • Token maliyetlerinin sübvansiyonu bittiğinde işlem maliyetini de ücretlendirecek bir şirketin yaptığı çalıştırma aracına güvenmem. Şimdilik çıkarlar örtüşüyor, ama token artışının doğrudan kâr artışı olduğu anda teşviklerdeki bozulma çok büyür.
    Sonunda açık kaynak çalıştırma araçlarının kazanması muhtemel; bu yüzden şirketlerin de bunları doğrudan açık kaynak yapması daha iyi.

    • Açık kaynak bir kodlama ajanı kullanacaksanız aylık 20 dolarlık OpenAI aboneliği de makul bir alternatif. Kullanım sınırları var ama fiyatı kötü değil.
    • Arka uçta düşünce zinciri (CoT) ayarını yükseltmek gibi yöntemlerle örtük token artışı dağıtmak da kolay olur.
  • Geçenlerde terminal penceresine odak vermek için fareyle tıkladım, Claude Code bunu seçenek tıklaması olarak yorumlayınca başım ağrıdı.

    • Kopyala-yapıştır davranışını da birden değiştirdiler; metin kopyalamak çok zahmetli hale geldi. Her gün güncellenip temel davranışları sürekli değişen yazılımı kimse istemez; vibe coding ile boca edilen özellikleri kullanıcılara dayatırsanız böyle tepki alırsınız.
    • Terminal, tıklanabilir düğmelerin beklendiği bir ortam değildir; çok rahatsız edici ve üretkenliği düşürüyor.
    • Fare tabanlı bir uygulama isteseydim GUI kullanırdım. Metin ortamında bu deneyimi özellikle yeniden üretmeye çalışmanın nedenini anlamak zor.
    • Önce opt-in isteyip istemediğimi sordu ama yanlışlıkla açtım ve son derece rahatsız oldum. Terminale odak vermek için hep tıklıyorum; artık bu tıklamalar gerçek eylemleri de çalıştırıyor.
    • Yeni tam ekran UI çok kötü. Eski kaydırma yöntemi de uzun süre kullanınca hatalı davranıyor ama yeniden başlattıktan sonra kaldığın yerden devam edilebiliyordu.
  • Bugün bizzat yaşadım. Ajanın yanıtını okurken bir soru belirdi; soruyu okumama fırsat kalmadan otomatik olarak bir şeyi seçti. Yazılım mühendisliğine ne oldu bilmiyorum.

    • Terminal penceresine odak vermek için yaptığım tıklama sorudan tamamen farklı bir konumdaydı, yine de onay olarak işlendiği için TUI modunu kapatmak zorunda kaldım. Otomatik modu hiç açmamıştım ama etkinleşmişti ve istemediğim shell komutlarını onaylıyordu.
      terraform apply komutuna otomatik onay bayrağı eklediğini bile gördüm; bu çok tehlikeli.
  • Claude Code’un bilgisayarda epey ağır bir sanal makine kuruyor gibi görünmesine rağmen varsayılan olarak hiçbir şeyi sandbox ile izole etmemesini anlamıyorum. Güncel modeller bilgisayarı agresif biçimde değiştiriyor; benden frontend UI kodu hata ayıklamamı istemiştim, buna rağmen kullanıcı yetkileriyle erişilebilen Linux sistem dosyalarını yeniden yazmaya başladı.
    Sandbox’a koyunca, önemsiz gerekçelerle sınırın dışına çıkmaya ne kadar sık teşebbüs ettiği ortaya çıktı; OpenCode ve yerel LLM kullanma gerekçesi daha da güçlendi.

    • Claude Code çalıştırma aracında tuhaf tasarım kararları çok; uzun vadede OpenCode muhtemelen daha iyi olacaktır.
  • Kötü niyetli diye yorumlayan çok tepki var, ama gerçekte geliştirme ekibinin kendi kullanmak istediği bir özelliği yapmasına daha yakın görünüyor. Bir Claude oturumunu çalışır halde bırakıp geri döndüğünüzde tek bir soruya takılıp hiçbir iş yapmamış olması gerçekten çok sinir bozucu bir durum
    Felaketi önleyen tek mekanizmanın Claude’un soru sorması olduğuna da inanmamak gerekir. Güvenlik sınırları, Claude’un iç değerlendirmesine değil, dışarıdan verilen yetkilere konulmalı. Öte yandan bu yazıda “Which cuts less far than it looks.” gibi bir cümle var; Claude’un bununla ilgili soru sorup duracağını sanmıyorum

    • Yazının düzyazı kısmını kendim yazdım, Claude yalnızca araştırmadan sorumluydu ve bu gerçeği de açıkça belirttim. Claude’un araştırmasını madde işaretleri olarak bırakarak okurlara ek keşif için bir başlangıç noktası sundum
      LLM’e bulmaca çözdürmemekle aynı nedenle, keyfi ortadan kaldıran LLM tarafından yazılmış düzyazı yayımlamıyorum
    • Geliştirme ekibinin kendi kullanacağı bir özellik yaptıysa bu daha da kötü
    • Bir özelliğin faydalı olması ile belgelenmiş bir devre dışı bırakma yöntemi bile olmadan herkes için varsayılan olarak etkinleştirilmesi tamamen farklı meseleler. Belgelenmiş bir tercihli özellik olsaydı iyi olurdu, ama gerçek dağıtım böyle değildi ve Claude Code ekibi ile süreç açıkça başarısız oldu
      Kötü niyetli olduğunu düşünmüyorum, ama pervasız ve dikkatsizdi; benzer şeyler tekrarlandığında da ekibin ders aldığını gösteren bir tablo görünmüyor. Claude Code, kararlı ve güvenilir bir araçtan çok son teknoloji bir deneye yakın; başka yürütme araçları yerine onu seçerken katlanılması gereken bedel de bu
    • Yüz binlerce kişiye bir özellik dağıtırken Claude’un kullanıcıya ne tür sorular sorduğunu bile incelememiş olmaları anlaşılır gibi değil. Resmî eklenti pazarında en çok kullanılan Superpowers, daha ilk adımdan ürün gereksinimlerini birkaç kez sorduğu için bunların atlanmaması gerekir
      Claude’un sorunun ciddiyetini veya beklenen yanıt süresini göstereceği bir parametre bile yoktu ve zaman sınırı yalnızca 60 saniyeydi. Sorunun yanıtını bulmak için ikinci monitörde belgeleri kontrol edip dönmeden önce bile soruyu atladı; 60 saniye sorunun bağlamını okumaya bile zor yeter
      Kötü niyet olmasa bile, fikri gerçek dağıtıma dönüştürme sürecindeki muhakemede büyük bir boşluk olduğunu gösteriyor
  • Eskiden VS Code için Codex eklentisine de benzer bir özellik eklenmiş, sonra hızla kaldırılmıştı. Farklı sağlayıcılardan LLM’lerin benzer fikirler ve önyargılar etrafında sık sık yakınsadığı oluyor; Claude’un ürün yöneticilerine ya da sorumlularına da LLM’in aynı fikri önermiş olma ihtimalini merak ediyorum

  • AskUserQuestion bir yetki onay mekanizması olmadığı için varsayılan davranış olarak makul görünüyor. Ayrı bir uyarı özelliği gerekebilir, ancak model yeterince iyi hale gelip kendi seçimiyle ilerledikten sonra kullanıcının düzeltmesi, çok sayıda ajanı yönetmek açısından da daha kolay

  • Anthropic’in Claude Code’un davranışını baştan aşağı değiştirebilmesi, Pi kodlama ajanının yapılmasının nedenlerinden biri. Kullanıcı bir ürünün üzerine ciddi zaman harcayıp iş akışları kuruyorsa tutarlılık çok önemlidir