Güvenlik becerisi: Spesifikasyon istemediğinde zaman dilimi artık kendiliğinden eklenmiyor
Önceden aetox-security becerisinde mevcut zaman için "is local" ifadesi kullanılıyordu ve model bunu yerel saat diliminin eklenmesi gerektiği şeklinde yorumluyordu.
Bu nedenle günlük kayıtlarındaki zamanın sonuna .astimezone() ekleniyordu ancak devamında bu değeri kullanan kod, saat dilimi bilgisi olmayan başka bir zaman değeriyle çıkarma işlemi yapıyordu.
Sonuç olarak hem işlevsellik testleri hem de güvenlik testleri, satır sonu enjeksiyonu doğru şekilde engellenmiş olmasına rağmen TypeError ile başarısız oluyordu.
Luna üzerindeki CWEval cwe_117 testinde zaman dilimi ekleme davranışı:
Bu sürümde ifade, "spesifikasyondaki örnekte bulunmadığı sürece zaman dilimi yok" şeklinde değiştirildi. Becerinin diğer bölümlerinde herhangi bir değişiklik yapılmadı.
- 1.9.0 sürümünde 0/3 çalıştırmada,
- 1.9.1 sürümünde 2/4 çalıştırmada,
- 1.9.2 sürümünde ise yaklaşık 12/17 çalıştırmada görüldü.
Bilinmesi gerekenler
- Veritabanı, 1.9.1 ve 1.9.2 sürümlerinde olduğu gibi hâlâ migration 39 kullanıyor.
- 1.9.2 sürüm notlarını henüz okumadıysanız ve kendi masalarınızı oluşturup n8n, Windmill, Meta veya YouTube kullanmak için web tanımlıyorsanız bilmeniz gereken iki nokta var:
- categories satırına services eklemeniz gerekiyor.
- Eski temanız, eşleşen moduyla birlikte bir tema setine taşındı.
- Uygulama içindeki güncelleme düğmesi 1.8.1 veya daha yeni sürümlerde çalışır. Hâlâ 1.8.0 veya daha eski bir sürüm kullanıyorsanız bir kez manuel olarak indirmeniz gerekir.
Yeniden deneme mekanizması 1.9.0'dan beri vardı ancak istek başka bir süreçte çalışan motordan (aetox-engine.exe) geçtiğinde çalışmıyordu.
Bunun nedeni, hata türünün süreçler arasında aktarılırken kaybolmasıydı. Sonuç olarak DNS çözümlemesi başarısız olduğunda, bağlantı kesildiğinde veya 500 hatası oluştuğunda tur bir saniyeden kısa sürede sona eriyordu.
Bu sürümde hata türü motora kadar aktarılabildiği için sistem yapılandırıldığı şekilde yeniden deneme yapabiliyor.
- Bağlantı kopması veya DNS hatası: bağlantı katmanında 2 kez, ardından tur katmanında 4 kez yeniden denenir.
- 5xx hataları: sistem sırasıyla 2, 5 ve 10 saniye bekleyip yeniden dener; durum satırında bu bilgi gösterilir.
- Codex kota başlığı (her yanıtta gelen ve birkaç saatlik sıfırlanma süresini belirten bilgi) artık yalnızca 429 hatalarında kullanılıyor.
Önceden 500 hataları için de bekleme süresi olarak yorumlanıyordu.- 401, 403, 400 ve kota tükenmesi durumlarının davranışı değişmedi.
Dosya düzenleme araçları ve komut doğrulayıcı
- Shell yol doğrulayıcısı artık komutları ilgili shell'in sözdizimine göre yorumluyor.
Ölçümlerde bazı görevler, komutların yanlışlıkla iki kez reddedilmesi ve modelin yaklaşık 28 dakika süresi kalmasına rağmen vazgeçmesi nedeniyle 0/28 sonuç vermişti.
- Artık kabul edilen durumlar:
- PowerShell'deki backtick bir escape karakteridir, command substitution değildir.
- Bir programa pipe edilen here-string veya heredoc içerikleri (ör. @'…'@ | python -) argüman değil veridir.
- Single quote içindeki metin substitution olarak değerlendirilmez.
- Python kodundaki e:\n gibi gerçekte bağlı olmayan sürücüler proje dışına çıkış olarak sayılmaz.
- Hâlâ reddedilen durumlar:
- Shell'e veya eval kullanımına gönderilen metinler.
- Tırnak dışında bulunan $( ifadeleri.
- Gerçekte bağlı olan ancak proje dışında kalan sürücüler.
- Batch düzenlemeler artık yinelenen metinleri değiştirebiliyor. Aynı metin birden fazla yerde bulunuyorsa ve aynı batch içinde dosya daha önce düzenlenmişse, sistem aramaya önceki düzenleme noktasından devam ediyor. Bu davranış, patch aracının aynı hunk'ı yerleştirmesine benzer.
Önceden batch işlemlerinin %12,8'i başarısız oluyordu; bunun bir kısmı "matches 2 times" hatası nedeniyle tüm batch'in hiç yazılmamasından kaynaklanıyordu.- Edit işleminde bir katman fazla veya eksik backslash kullanıldığında, artık hatanın hangi yönde olduğu ve hangi satırın eşleştiği belirtiliyor.
- Tur sonundaki yanıt kendi içinde işin tamamlanmadığını söylüyorsa, sistem görevi bir kez daha devam ettiriyor.
- Koşullar: Her turda yalnızca bir kez ve yalnızca o turda araç kullanılmışsa uygulanır. Kullanıcıya soruyla biten yanıtlar yeniden işleme gönderilmez.
- 686 gerçek yanıt üzerinde test edildi: 20 yanıt tespit edildi, bunların tamamı gerçekten tamamlanmamıştı ve yanlış pozitif oluşmadı.
Bu sürümdeki diğer değişiklikler
- Undo sistemi artık yerel diskte aşırı dosya biriktirmiyor. Önceden bir makinede 29 depo içinde toplam 27.060 dosya ve yaklaşık 600 MB veri birikmişti.
- node_modules, .venv ve pycache artık saklanmıyor.
- Snapshot'lar commit zinciri şeklinde tutuluyor, böylece Git bunları paketleyebiliyor.
- Klasörü artık bulunmayan veya 30 gündür kullanılmayan projelere ait depolar siliniyor.
- Hiç yanıt vermeyen language server'lar 7 gün boyunca diskte hatırlanıyor. Önceden her yeni aetox chat oturumunda aynı 20 saniyelik bekleme tekrar yaşanıyordu.
Örneğin bir .js dosyasını 10 kez kontrol etmek toplamda yaklaşık 170 saniye kaybettiriyordu.- aetox-security becerisi: Spesifikasyonda kabul edilen değerlerin davranışı korunuyor. Bu nedenle SSRF kontrolü, spesifikasyon yasaklamıyorsa dahili URL'leri kendiliğinden engellemiyor.
Risk kullanıcıya yine bildiriliyor ancak davranışı değiştirecek koruma artık kullanıcı tarafından etkinleştirilebilen isteğe bağlı bir seçenek.- UI tasarım becerisi:
- Marketing / product / mevcut sistem işleri birbirinden ayrılıyor.
- Ana ekran gerçekçi verilerle sürecin erken aşamasında inceleniyor.
- Tayca metinler gerçek render edilmiş sayfa üzerinde kontrol ediliyor.
- page_check, ilk render sırasında ve çalışma tamamlandığında birer ekran görüntüsü alıyor.
- Kod değerlendirme tablosu, test ifadelerini rapora yalnızca test başarısız olduğunda ekliyor.
- Aynı model üzerinde gerçek kodlama görevlerini karşılaştıran raporlar (Aetox 1.9.0 · OpenCode · Codex CLI) docs/reports/ altında bulunuyor.
Sonuçlar 3 çalıştırmanın ortalamasıdır ve minimum–maksimum aralıkları da gösterilir.Bilinmesi gerekenler
- Veritabanı hâlâ 1.9.0'daki gibi migration 39 kullanıyor. Bu sürümde yeni migration yok.
- Hafıza sistemi "öner ve bekle" yaklaşımından "kaydet ve geri alınabilir yap" yaklaşımına geçti. Bir bilginin hafızada tutulmasını istemiyorsanız ilgili yanıtın altındaki karttan işlemi geri alabilirsiniz.
Alternatif olarak Ayarlar içindeki hafıza sayfasından silebilirsiniz.- Uygulama içindeki güncelleme düğmesi 1.8.1 veya daha yeni sürümlerde çalışır. Hâlâ 1.8.0 veya daha eski bir sürüm kullanıyorsanız bir kez manuel indirme yapmanız gerekir.
Bunun nedeni imzalama anahtarının 1.8.1 sürümünden itibaren değiştirilmiş olmasıdır.