İçeriğe geç

Proje belleklerini taşıma veya kurtarma

opencode-mem proje shard’larını proje kimliğinin bir karmasıyla anahtarlar. Bir depoyu taşımak (OS migrasyonu, yol yeniden düzenleme, Windows bağlama noktasından yerel bir yola geçiş) bu nedenle eski shard’ı ~/.opencode-mem/data/projects/ altında yetim bırakabilir; yeni yol için yeni boş bir shard oluşturulurken.

Bunlar terminalde çalıştırılacak komutlar değil, JSON argümanlı OpenCode memory araç çağrılarıdır. Issue tarzı memory migrate --from ... notasyonu memory({ mode: "migrate", fromPath: "..." }) ile eşleşir.

1. Eski yolu hâlâ bildiğinizde yerel taşıma

OpenCode’u yeni proje dizininde açın. Hedef proje zaten bellek içermemelidir (çatışmada migrasyon değişmeden iptal edilir). Herhangi bir şeyi değiştirmeden önce algılanan kaynağı, hedefi ve dosya eylemlerini önizleyin:

memory({ mode: "migrate", fromPath: "/old/path/to/project", dryRun: true });
memory({ mode: "migrate", fromPath: "/old/path/to/project" });

Güvenlik için migrasyon, saklanan proje dizini hâlâ var olan bir kaynağı reddeder. Aktif bir kaynağı kasıtlı olarak taşımak istiyorsanız önce dry-run çıktısını inceleyin ve ardından allowLinkedSource: true geçirin. Orijinal kaynak shard dosyaları zaman damgalı *.pre-path-migrate-*.bak yedekleri olarak saklanır.

2. Eski yol yok — önce yetim shard’ı keşfedin

memory({ mode: "list-shards" });
memory({ mode: "migrate", fromHash: "fa645294d88bbae2" });

list-shards her proje karmasını, saklanan projectPath’i, bellek sayısını ve durumu (current, linked, orphaned, missing-file, empty veya ambiguous) bildirir. fromHash, bu çağrı tarafından döndürülen 16 karakterlik küçük harf onaltılık scopeHash’tir. Eski dizin artık yoksa veya birden fazla shard aynı saklanan yolu içeriyorsa bunu tercih edin; çünkü git tabanlı kimlikler eksik bir yoldan her zaman yeniden hesaplanamaz.

3. Makineler arası yedekleme / geri yükleme

// on the source machine / old checkout
memory({ mode: "export", outputPath: "./memories.json" });
// on the destination machine / new checkout
memory({ mode: "import", inputPath: "./memories.json", dryRun: true });
memory({ mode: "import", inputPath: "./memories.json" });

Export, vektörsüz sürümlü bir JSON belgesi yazar. Import, bellekleri mevcut projeye yeniden eşler ve şu anda yapılandırılmış modelle embedding’leri yeniden hesaplar. Import, mevcut bir projeye bellek ekler; ancak yinelenen bellek kimlikleri yazmadan önce tüm import’u iptal eder; bu, boş bir hedef gerektiren migrate’ten farklıdır.

Export dosyaları düz metindir ve bellek içeriği, kullanıcı adları/e-posta adresleri, depo URL’leri ve mutlak proje yolları içerebilir. Bunları diğer hassas yedekler gibi saklayın ve artık gerekmediğinde silin. Tamamen özel girdiler atlanır; kullanıcı profilleri ve prompt geçmişi dahil edilmez. Belge schemaVersion: 1 içerir; import’lar tahmin etmek yerine daha yeni desteklenmeyen şema sürümlerini reddeder.