İçeriğe geç
ivralo
Bölümler

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.

NeNe tutar
OturumlarHer konuşma, başlığı ve hangi terminalde açık olduğu
ÇalıştırmalarHer çalıştırmanın tamamı: prompt, argümanları ve çıktısıyla her araç çağrısı, cevap
AnılarOturumlar arasında kullanılan, sizinle ilgili uzun süreli bellek
Bilgi indeksiBelgelerinizin parçaları ve vektörleri (pgvector), bir de neyin indekslendiğinin kaydı
Job'larHer 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:

DosyaNe tutar
.envAyarlar: model, veritabanı, entegrasyonlar. Yalnızca sahibi okuyabilir.
permissions.jsonHer workspace için shell politikası ve araç onayları
trusted.jsonGüvendiğiniz ya da reddettiğiniz klasörler
mcp.jsonMCP sunucuları
schedules.jsonZamanlamalar
databases.json, identifiers.jsonAdı 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.jsonivralo'nun yazdığı belgelerin renkleri
api-tokenYerel API'nin token'ı; yalnızca sahibi okuyabilir, ilk ivralo serve oluşturur
gitconfigivralo'nun kendi git kimliği; ivralo init --server yazar
google-token.jsonivralo 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.

YolNe 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.sqliteKod 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.logPython worker'ının kendi hataları
permissions.json, databases.json, identifiers.json, .envBu 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 doctor kullanmanız gereken pg_dump satırını eksiksiz basar. Docker Compose ya da kendi sunucunuz için .env'deki URL ile pg_dump kullanı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.