Dokümantasyon / İşletim
Veriler nerede tutulur
ivralo durumunu üç yerde tutar: sizin PostgreSQL'iniz, ivralo ana dizinindeki birkaç dosya ve workspace içindeki .ivralo/ klasörü. Neyin nerede tutulduğu ve neleri yedeklemeniz gerektiği bu sayfada.
PostgreSQL
Konuşmayla ilgili her şey PostgreSQL'de, ivralo'ya ait bir şemada tutulur: ivralo (adını IVRALO_PG_SCHEMA ile değiştirebilirsiniz). Tablolar ilk kullanımda oluşturulur.
| Ne | Ne tutar |
|---|---|
| Oturumlar | Her konuşma, başlığı ve hangi terminalde açık olduğu |
| Çalıştırmalar | Her çalıştırmanın tamamı: prompt, argümanları ve çıktısıyla her araç çağrısı, cevap |
| Anılar | Oturumlar arasında kullanılan, sizinle ilgili uzun süreli bellek |
| Bilgi indeksi | Belgelerinizin parçaları ve vektörleri (pgvector), bir de neyin indekslendiğinin kaydı |
| Job'lar | Her job: durumu, lease'i, sorusu ve log'u |
Konuşmayla ilgili hiçbir şey yerel diske yazılmaz; ikinci bir makineyi aynı veritabanına bağladığınızda aynı konuşmalar karşınıza gelir. Workspace'te yalnızca iki dosya bir isteğin metnini içerir: plan dosyası planı, değişiklik kaydı da turun ilk satırını başlık olarak tutar.
Sıkıştırma (/compact, ivralo compact) eski çalıştırmaları bir özette toplar ve modelden gizler. Hiçbir şeyi silmez; çalıştırmalar veritabanında kalır. Uzun süreli belleği ivralo memory list, forget ve clear ile yönetirsiniz.
Veritabanı üç yerden biri olabilir: Docker Compose, verdiğiniz bir URL ya da ivralo'nun ana dizinde kurduğu bir cluster. Ayrıntılar PostgreSQL sayfasında.
ivralo ana dizini
Ana dizin (home), ivralo'nun kendi ayarlarının bulunduğu klasördür (IVRALO_HOME). Burada konuşmalar değil, dosyalar tutulur:
| Dosya | Ne tutar |
|---|---|
.env | Ayarlar: model, veritabanı, entegrasyonlar. Yalnızca sahibi okuyabilir. |
permissions.json | Her workspace için shell politikası ve araç onayları |
trusted.json | Güvendiğiniz ya da reddettiğiniz klasörler |
mcp.json | MCP sunucuları |
schedules.json | Zamanlamalar |
databases.json, identifiers.json | Adı verilmiş veritabanları; incident kanıtında maskelenecek tanımlayıcılar |
skills.local/ | Kurduğunuz ya da yazdığınız skill'ler ve assignments.json |
brand.json | ivralo'nun yazdığı belgelerin renkleri |
api-token | Yerel API'nin token'ı; yalnızca sahibi okuyabilir, ilk ivralo serve oluşturur |
gitconfig | ivralo'nun kendi git kimliği; ivralo init --server yazar |
google-token.json | ivralo google login'den sonraki Google token'ı |
pg/ | ivralo bir PostgreSQL cluster'ı kurduysa o cluster |
worktrees/ | Paralel coder'ların git worktree'leri, her workspace için bir klasör |
Python worker'ında çalışan kod bunların hiçbirine yazamaz. Dosya biçimleri için bkz. Ayar dosyaları.
Workspace'teki .ivralo/ klasörü
ivralo workspace'in içinde bir .ivralo/ klasörü tutar. Repo'larda bu klasör .git/info/exclude'a eklenir; böylece içindekiler hiçbir commit'e girmez. ivralo'nun dosya araçları bu klasörü hiçbir zaman listelemez, içinde arama yapmaz ve indekslemez.
| Yol | Ne tutar |
|---|---|
history/ | Her üzerine yazmadan önce alınan, dosyanın önceki sürümü |
changes/ | Dosya değiştiren her tur için bir kayıt: hangi dosyalar, ne zaman, hangi çalıştırma |
plans/ | Plan dosyaları ve her adımın sonucu |
index/index.sqlite | Kod indeksi: dil sunucusunun ve git'in verdiği bilgilerin önbelleği |
changesets/ | Her changeset'in kaydı ve repo dışında hazırlanan kopyası |
cassettes/ | Kasetler ve blob'ları |
incidents/ | Her incelemenin report.md, report.json ve digest.json dosyaları, ayrıca workspace'in maskelenmiş tanımlayıcı tablosu mask.json |
schedules/ | Her zamanlamanın çalıştırma log'ları ve task.log |
traces/, exports/ | trace --html ve export'un yazdığı dosyalar |
spill/ | Modelin bağlamına sığmayacak kadar uzun olup parça parça geri okunan araç cevapları |
python-worker.log | Python worker'ının kendi hataları |
permissions.json, databases.json, identifiers.json, .env | Bu workspace'e özel ayarlar. Güvenilmemiş bir klasörde bunlardan yalnızca izin dosyasındaki yasaklar geçerlidir. |
Spill dosyaları en fazla yedi gün tutulur ve en yeni 64 taneden fazlası saklanmaz. Değişiklik kayıtları ve kasetler hiçbir zaman otomatik temizlenmez.
Alarm incelemeleri kanıt taslaklarını .ivralo/ içine değil, workspace kökündeki alerts/ klasörüne yazar, çünkü inceleme onları diğer bundle'lar gibi okur.
Dosya geçmişi ve geri yükleme
Workspace'te var olan bir dosyanın üzerine yazılmadan önce dosya .ivralo/history/ altına kopyalanır. Yazan bir düzenleme, Python, dosyanın adını veren bir shell komutu, bir geri yükleme ya da uygulanan bir changeset olabilir; fark etmez. Her dosyanın en yeni 10 sürümü tutulur (IVRALO_HISTORY_KEEP); IVRALO_HISTORY=false bunu kapatır.
ivralo history app/main.py
ivralo restore app/main.py
ivralo restore app/main.py --at 20261002-1015
Dosya verilmeden çalıştırılan ivralo history, sürümü olan bütün dosyaları listeler. ivralo restore en yeni sürümü ya da --at ile verdiğiniz zaman damgasının (veya damganın başının) gösterdiği sürümü geri getirir. Mevcut dosya önce saklanır, yani geri yüklemeyi de geri alabilirsiniz. Oturumda /history ve /restore aynı işi yapar.
Geçmiş, sık karşılaşılan durumlar için bir güvenlik ağıdır, yedek değildir. Yazma korumasının göremediği bir şeyi, örneğin kodun sildiği ya da taşıdığı bir dosyayı, geçmiş de göremez. Repo'larda asıl geri alma aracı git'tir.
Yedekler
İki şeyi yedekleyin:
- Veritabanı. Bütün konuşmalar, çalıştırmalar, anılar, job'lar ve bilgi indeksi buradadır. ivralo'nun kurduğu bir cluster için
ivralo doctorkullanmanız gerekenpg_dumpsatırını eksiksiz basar. Docker Compose ya da kendi sunucunuz için.env'deki URL ilepg_dumpkullanın. - Ana dizin.
.env,permissions.json,trusted.json,mcp.json,schedules.json,skills.local/ve diğerleri küçük dosyalardır. Kopyalarken yalnızca-sahibi izinlerini koruyun.
Workspace'teki .ivralo/ klasörünü kaybetmek hiçbir konuşmayı kaybettirmez. İnceleme raporlarını başka bir yerde saklamıyorsanız incidents/ klasörünü yedekleyin; içindeki mask.json, ivralo why'ın maskelenmiş yer tutucuları geri çözerken kullandığı tablodur.