İç içe repolar arasında tek proje belleğini paylaşma
Varsayılan olarak bir proje, onu çevreleyen git deposuyla tanımlanır; bu nedenle her
fiziksel git deposu kendi yalıtılmış bellek deposunu alır. Bu, çoklu-repo
çalışma alanları için yanlıştır — Google repo
ile yönetilen ağaçlar, monorepolar veya birkaç iç içe git deposunun tek bir
mantıksal projeye ait olduğu herhangi bir düzen — çünkü her alt depo silolanırdı.
Çalışma alanı köküne boş bir .opencode-mem-project işaretçi dosyası bırakın:
my-workspace/├── .opencode-mem-project ← workspace root├── kernel/ (own git repo)├── userspace/ (own git repo)└── tools/ (own git repo)İşaretçinin altındaki herhangi bir yerde başlatılan her oturum ardından o köke çözülür ve çalışma dizininin hangi alt depoda yaşadığına bakılmaksızın tek bir bellek deposunu paylaşır:
touch ~/my-workspace/.opencode-mem-projectİşaretçi, her kod yolunun zaten ilettiği çalışma dizininden yukarı yürüyerek
aranır (eklentinin çalışma dizini, web API’nin process.cwd()’si); böylece
kimlik dizin odaklı ve süreçten bağımsızdır.
Burada güvenilmez olacak ortam değişkenlerine veya genel bir yapılandırma
değerine dayanmaz: opencode-mem, tek bir web sunucusunu paylaşan birden fazla
opencode sürecinde çalışır ve bu süreçlerin yalnızca bazıları belirli bir
ortam değişkenini taşır. İşaretçiyle proje kökü her zaman oturumun gerçekten
çalıştığı yerden türetilir.
İşaretçi, git tespitine göre önceliklidir. Mevcut olduğunda alt deponun kendi git remote’u kasıtlı olarak yok sayılır (yalnızca bir iç içe depoyu tanımlardı). İşaretçi olmadan davranış değişmez (git tabanlı kimlik).