
Bu sürüm döngüsünde çözülen başlıca sorunlar:
| Alan | Sorun | Çözüm |
|---|---|---|
| Terminal CLI | /model-download klavyeden okumadığı için indirmeler terminal donana kadar iptal edilemiyordu |
Model indirme masaüstü uygulamasına taşındı, gerçek iptal edilebilir ilerleme çubuğu ile |
| Terminal CLI | /gui gerçek bir kurulumda yanlış klasöre bakıp hep "bulunamadı" diyordu |
Doğru masaüstü uygulama yolu tespiti |
| Terminal CLI | Çok satırlı yapıştırma satır satır ayrı mesajlara bölünüyor, / ile başlayan satırlar komut sanılıyordu |
Tam yapıştırma artık tek mesaj, yalnızca gerçek Enter'da gönderiliyor |
| Terminal CLI / Masaüstü | CLI'ın backend'i terminal oturumuna gömülüydü — CLI'ı kapatmak masaüstü uygulamasını da kapatıyordu | Backend artık ayrı bir süreç; ikisinden biri kullandığı sürece açık kalıyor |
| Hafıza | /remember veritabanı ekleme sorgusundaki tek karakterlik hata yüzünden sessizce hiçbir şey kaydetmiyordu |
Düzeltildi — muhtemelen /remember'ın gerçekten çalıştığı ilk sürüm |
| Hafıza | Anahtar kelime tabanlı (FTS) arama yarısı hiçbir sürümde gerçekten aktif olmamıştı; çok-konulu sorular eksik cevap dönebiliyordu | Her iki arama yöntemi gerçekten birlikte çalışıyor; çok-konulu sorular konu başına ayrı aranıyor |
| Hafıza | Normal sohbette söylenen kişisel bilgiler (/remember dışında) güvenilir şekilde hatırlanmıyordu |
Artık sessizce takip ediliyor |
| Hafıza | Embedding sunucusu backend başlarken zaten çalışıyorsa hafıza bir yer tutucuya bağlanıp "çalışıyor" gösteriyordu | Açılışta zaten çalışan sunucuya düzgünce yeniden bağlanma |
| Ajan | Agent'ın tehlikeli-komut filtresindeki bir boşluk bazı yıkıcı komutların kontrolü atlatmasına izin veriyordu | Desen eşleştirmesi düzeltildi |
| Ajan | Var olmayan bir hedefe işaret eden symlink, dosya-düzenleme aracının kum havuzu dışına yazmasına izin verebiliyordu | Sandbox kaçış boşluğu kapatıldı |
| Ajan | Bazı harici sağlayıcılarda ajan modu anlaşılmaz 400 invalid_request_error ile başarısız oluyordu |
Araç tanımlarına sızan işlevsiz bir iç alan kaldırıldı |
| Sağlayıcı | Claude aktif sağlayıcıyken, modeli boş bırakan mesajlar boş model alanıyla gönderilebiliyordu | Fallback hesaplaması artık gerçekten uygulanıyor |
| Güvenlik | Uzaktan erişim (LAN/ngrok) açıkken herhangi bir istek kimlik doğrulama olmadan kabul ediliyordu | Her istek artık erişim token'ı gerektiriyor |
| Bağımlılıklar | govulncheck'in işaretlediği golang.org/x/text (sonsuz döngü) ve ilişkili golang.org/x/net bulguları |
Bağımlılıklar güncellendi |
| Yedekleme | .memo yedeklemesi takvim, rutinler, görev listeleri, izin politikaları, kurulu skill'leri ve en kritik olarak machine.key'i hiç içermiyordu |
Tümü artık dahil |
| API Mimarisi | /api/* altında sürümlendirme yoktu |
Her rota artık ayrıca /api/v1/... altında da kayıtlı (~90 toplam rota, v1 aynası dahil) |
| Altyazılı gelen görsel/video/doküman medyası sessizce göz ardı ediliyordu | Altyazı artık okunuyor |
Ayrıntılı yazı için Sürüm Notları sayfasına bakın.
v3.1.0 sürüm döngüsünde 61 sorun çözüldü. Önem seviyesine göre özeti aşağıdadır.
| # | Sorun | Çözüm |
|---|---|---|
| 1 | Sahipsiz SSE akışlarının dosya tanımlayıcılarını tüketmesi | Bağlam iptali ile akış ömrü takibi eklendi |
| 2 | İçe aktarmada dizin gezinmesi ile keyfi dosya okuma | filepath.Clean ve temel dizin doğrulaması ile yollar temizlendi |
| 3 | api.base_url üzerinde yapılandırma yarış durumu |
Yapılandırma okumaları sync.RWMutex arkasına alındı |
| 4 | identity alanlarında yapılandırma yarış durumu |
Kimlik okumaları mevcut mutex korumasıyla birleştirildi |
| 5 | SSE yayıncısında goroutine sızıntısı | İstemci bağlantı kesintisinde sync.WaitGroup ve done kanalı eklendi |
| 6 | WebSocket işleyicisinde goroutine sızıntısı | Okuma zaman aşımı ve bağlam iptali eklendi |
| 7 | Ajan araç yürütmesinde goroutine sızıntısı | Araç seviyesinde bağlam yayılımı eklendi |
| 8 | Oturum önbelleğinde sınırsız bellek büyümesi | 1000 oturum maksimum boyutlu LRU çıkarma eklendi |
| 9 | Eş zamanlı yazmalarda yapılandırma dosyası bozulması | Atomik yazmaya geçildi (geçici-dosyaya-yaz + yeniden adlandır) |
| 10 | Nil gömme modelinde panik | Varsayılan modele düşüş ile nil kontrolü eklendi |
| 11 | DB kilitliyken senkron birleştirmede kilitlenme | Meşgul zaman aşımı ve yeniden deneme döngüsü eklendi |
| 12 | Konuşma arama sorgusu üzerinden SQL enjeksiyonu | Parametreli sorgulara geçildi |
| 13 | HTTPS istemci bağlantı havuzunda bellek sızıntısı | Maksimum boş bağlantı ve zaman aşımı ile http.Transport eklendi |
Yüksek öncelikli düzeltmeler: hafıza dizinleyicide goroutine sızıntısı, yapılandırma dosyası herkese okunur izinleri, zayıf AES anahtar türetmesi (Argon2id'ye yükseltildi), senkron sırasında eş zamanlı oturum değişikliği, hatalı gömme yanıtında panik, herhangi bir kaynağa izin veren CORS yanlış yapılandırması, API uç noktalarında eksik girdi doğrulaması, sıcak yeniden yükleme sonrası güncel olmayan yapılandırma değerleri, llama süreç tanıtıcısında yarış durumu ve diğer 6 düzeltme.
Orta öncelikli düzeltmeler: arka plan goroutine hatalarının yutulması, oluşturma sonrası oturum dosya izinleri, akış sonunda SSE DONE parçasının eksik olması, küçük modellerde gömme toplu iş boyutunun OOM'a neden olması, kenar çubuğunda boş konuşma adları, websocket yeniden bağlantı taşması, hata durumunda ajan döngüsünün dönüp durması ve diğer 6 düzeltme.
Düşük öncelikli düzeltmeler: bulunamayan yapılandırma dosyasının sessizce varsayılanlara düşmesi, silme sonrası hafıza dizininin güncel olmayan sonuçlar döndürmesi, sağlayıcı kodunda denetlenmeyen tür doğrulamaları, günlük satırlarında eksik istek kimliği, kullanımdan kaldırılmış ioutil kullanımının io/os ile değiştirilmesi, tutarsız hata sarmalama, CLI yardım metninde yazım hataları, kullanılmayan içe aktarımlar ve diğer 13 düzeltme.
Toplam: 61 düzeltme — 13 kritik, 15 yüksek, 13 orta, 20 düşük.