trelix v1.0'dan v2.7'ye: Aramadan Platforma Dönüşüm
trelix'in v1.0'dan v2.7'ye evrimi; bilgi grafiği, yedi retrieval katmanı, agentic döngü ve üretim sertleştirmesiyle platforma dönüşümünü ele alıyoruz.
trelix'in v1.0 lansmanından on üç gün sonra, geliştirici kendi yazdığı bir konfigürasyon parametresinin sessizce görmezden geldiğini fark etti: AdaptiveRouter, kendisine verilen retrieval_config'i kullanmak yerine ortam değişkenlerinden kendi ayarlarını kuruyordu. Hata hiçbir istisna fırlatmıyor, sadece ayarları görünmez kılıyordu. Bu kusur ancak v2.7.0'da, #55 numaralı PR ile giderildi; ama bu iki nokta arasında proje köklü bir dönüşüm geçirdi.
v2.0 ve v2.1 sürümleri, kod tabanını düz bir sembol listesi olmaktan çıkarıp bir sistem olarak modelleyen trelix/graph/ modülünü getirdi: çağrı, import ve tip kenarlarını birleştiren bir CodeGraph, Louvain topluluk tespitiyle mimari modüllerin çıkarılması ve bu toplulukları isimlendiren bir LLM tabanlı ConceptExtractor. Grafik arama dördüncü bir retrieval bacağı olarak eklendi, pagerank tabanlı merkezilik önemli sembolleri öne çıkardı ve watch modu grafiği artımlı olarak güncelledi. Bu değişiklik, kasıtlı bir kırılmaya da yol açtı: eski trelix graph komutu trelix call-graph olarak yeniden adlandırıldı.
Retrieval tarafında sistem üç bacaktan yediye çıktı; her biri belirli bir araştırma makalesine dayanıyor: RAPTOR tarzı dosya özetleme, sorguyu sentetik koda çeviren HyDE, çoklu sorgu genişletme ve belirsizlik tespit edildiğinde yeniden getirme tetikleyen FLARE. CoIR formatlı bir değerlendirme aracı ve sorgu telemetrisi de bu dönemde geldi. Ancak ilginç bir ayrıntı var: MultiQueryExpander sınıfı v2.1'de yazılmış olsa da hiçbir yerden çağrılmıyordu; asıl bağlantı v2.3.0'da kuruldu ve orijinal sorgunun füzyonda iki kez sayılmaması için tek bir dizin farkı (variants[1:]) kritik önem taşıdı.
v2.2.0 ile trelix salt bir retrieval sistemi olmaktan çıkıp ReAct tarzı bir agentic döngü, veri akışı/taint analizi, SPLADE-Code seyrek retrieval ve çok granülerlikli indeksleme kazandı. Aynı dönemde, üretimde patlamadan önce öngörülen bir hata sınıfı da kapatıldı: DimensionGuard, embedding sağlayıcısı ve boyutu uyuşmadığında sessizce yanlış sonuç üretmek yerine açık bir hata ve kurtarma komutu veriyor; bu koruma sonradan dosya izleyicisine de genişletildi. MCP yüzeyi de büyüdü: yeniden kullanılabilir kaynaklar, promptlar ve abonelik bildirimleriyle trelix artık tek seferlik araç çağrılarının ötesine geçti.