· kaynak dev.to (home feed)
Claude Code 2.1.299'dan 2.1.301'e hook davranışı değişiyor: yeniden kontrol edilmesi gereken yedi şey
14 ve 15 Ekim 2026'da yayımlanan üç Claude Code sürümü mevcut hook'ların davranışını değiştiriyor: prompt hook'ları skill'ler genişlemeden önce çalışıyor, yeniden yazılan tool girdisi doğrulanıyor ve Cowork cloud oturumları mod değişikliklerini yok sayıyor.

Üç sürüm, yedi davranışsal değişiklik
Üç Claude Code sürümü — 2.1.299, 2.1.300 ve 2.1.301 — 14 ve 15 Ekim 2026'da yayımlandı ve Gabriel Anhaia'nın dev.io üzerindeki yazısına göre, changelog'larının "Changed" bölümlerindeki yedi madde halihazırda kurulu hook'ları etkiliyor. Yeni davranışın uygulanması için hook dosyalarında herhangi bir düzenleme yapmak gerekmiyor; CLI güncellendiği anda başlıyor. Yazının ilk önerisi, bunların artık sizin için geçerli olup olmadığını görmek üzere claude --version komutunu çalıştırmak.
Prompt hook'ları artık skill'ler genişlemeden önce çalışıyor
2.1.299'dan itibaren UserPromptSubmit hook'ları bir skill veya özel slash komutu genişlemeden önce çalışıyor. Skill gövdelerine shell komutları gömülebilir ve bir prompt'u engelleyen hook artık o gömülü komutların da çalışmasını önlüyor; önceden öyle değildi. İkinci bir sonuç: bir skill'in genişletilmiş gövdesinde yer alan bir metni prompt içinde arayan hook artık eşleşme bulamayacak, çünkü genişletme hook'tan sonra gerçekleşiyor. Claude Code, genişletmeleri görmesi gereken mantık için komutun adıyla eşleşen ayrı bir UserPromptExpansion olayı sunuyor.
Bir skill'in kendi hook'u, çağıran prompt'u atlıyor
Yine 2.1.299'da, bir skill'in frontmatter'ında bildirilen hook'lar skill çağrıldığında kaydediliyor ve oturum boyunca çalışmaya devam ediyor — ve skill'in UserPromptSubmit hook'u ilk kez, skill'i çağıran prompt'tan sonraki prompt'ta tetikleniyor. Kendi çağrısını incelemek için yazılmış bir hook, örneğin bir /deploy prod çağrısı, o prompt'u artık görmüyor. Önerilen yaklaşım, bu tür kontrolleri settings içindeki UserPromptExpansion'a taşımak; örneğin deploy komutunu eşleştiren ve bir onay dosyası yoksa engelleyen bir matcher.
Yeniden yazılan tool girdisi artık doğrulanıyor
2.1.300'den itibaren, PreToolUse ve PermissionRequest hook'larının döndürdüğü updatedInput nesnesi, Claude'nun kendi girdisini doğruladığı şekilde doğrulanıyor: bilinmeyen anahtarlar ayıklanıyor ve tool'un reddettiği girdi çağrının reddedilmesine yol açıyor. updatedInput tüm girdi nesnesini değiştirdiğinden, yalnızca değiştirdiği alanı döndüren — ya da bir alan adını yanlış yazan — bir hook artık reddedilen çağrılar üretecek. Yazıya göre güvenli desen, Claude'nun gönderdiği girdiden başlayıp tek bir alanı değiştirmek ve gerekli her anahtarı yerinde tutmaktır.
Cowork cloud oturumları setMode'u yok sayıyor
2.1.300'den itibaren, Cowork cloud oturumlarında bir PermissionRequest hook'unun allow yanıtındaki setMode girdisi yok sayılıyor, onayın geri kalanı ise geçerli olmaya devam ediyor. Bir düzenlemeyi onaylayıp oturumu acceptEdits moduna geçiren bir hook, mod fiilen hiç değişmediği için izin istekleri almaya devam edecek. 2.1.299'daki ilgili bir değişiklik, cloud oturumlarındaki auto mod için daha da ileri gidiyor: oradaki PermissionRequest hook'ları artık shell komutlarını ya da subagent'ları hiç onaylayamıyor ve bu prompt'lar ya bekliyor ya da reddediliyor. Yazının altını çizdiği gibi, changelog satırlarının hiçbiri yerel terminal oturumlarını kapsamıyor.
Agent tool listeleri yalnızca adı geçen sunuculara daraltıldı
2.1.299'dan itibaren, bir agent'ın tools: listesi yalnızca açıkça adını andığı MCP sunucusunun tool'larını alıyor. Önceden mcp__a gibi bir girdi, ortak önek çakışması yoluyla a__b ya da a_ gibi sunuculara da erişebiliyordu — bu, aynı sürümde allow kuralları için işaretlenen aynı sızıntı. Böyle bir önek aracılığıyla sessizce ikinci bir sunucunun tool'larını kazanan agent'lar bunları kaybediyor ve adında çift alt çizgi bulunan sunucular tam ad ve bir wildcard ile listelenmek zorunda.
Yazının dışında bıraktıkları
Yazı iki maddeyi daha ele alıyor — aralarında bir plugin hook'unun yanıt veremediğinde nasıl davrandığı var — ve üç düzeltmeyle kapanıyor; bunlardan biri 2.1.294'e kadar uzanıyor. Aynı haftadaki iki hook değişikliği ise yer kısıtı nedeniyle bilinçli olarak dışarıda bırakılmış: 2.1.295'teki onFailure "block" seçeneği ve 2.1.299'daki daraltılmış MCP allow kuralları.
Neden önemli
Hook'lar Claude Code'un koruma raylarıdır: güvenli olmayan prompt'ları engeller, tool girdisini yeniden yazar ve izinleri otomatikleştirir. Runtime, yapılandırmaya dokunmadan hook semantiğini yeniden tanımladığında, gözden geçirilmiş kurulumlar bir gecede davranış değiştirebiliyor — engelleyen hook'lar skill shell komutlarını bastırmaya başlıyor, kısmi girdi yeniden yazımları çağrıları reddetmeye başlıyor ve cloud oturumlarındaki izin otomasyonu sessizce işinin yarısını yapmamaya başlıyor. Hook'lara bel bağlayan ekipler hangi sürümü çalıştırdıklarını kontrol etmeli, settings'lerinde ve hook script'lerinde UserPromptSubmit, updatedInput ve setMode aramalı ve güncellemeden sonra kritik yollarını yeniden test etmeli.
- #claude-code
- #hooks
- #developer-tools
- #cli
- #ai-coding