Eén projectgeheugen delen over geneste repo’s
Standaard wordt een project geïdentificeerd door zijn omsluitende git-repository, dus elke
fysieke git-repo krijgt zijn eigen geïsoleerde geheugenstore. Dat is verkeerd voor
multi-repo-workspaces — bomen beheerd door Google repo,
monorepo’s, of elke layout waarin meerdere geneste git-repositories tot één
logisch project behoren — omdat elke subrepository silogeïsoleerd zou zijn.
Plaats een leeg .opencode-mem-project-markerbestand bij de workspaceroot:
my-workspace/├── .opencode-mem-project ← workspaceroot├── kernel/ (eigen git-repo)├── userspace/ (eigen git-repo)└── tools/ (eigen git-repo)Elke sessie die ergens onder de marker start, lost dan op naar die root en deelt één geheugenstore, ongeacht in welke subrepo de werkdirectory staat:
touch ~/my-workspace/.opencode-mem-projectDe marker wordt opgezocht door omhoog te lopen vanaf de werkdirectory die elk
codepad al doorgeeft (de werkdirectory van de plugin, de process.cwd() van de web-API),
dus identiteit is directorygedreven en procesonafhankelijk.
Het steunt niet op omgevingsvariabelen of een globale configwaarde, die
hier onbetrouwbaar zouden zijn: opencode-mem draait over meerdere opencode-processen
die één webserver delen, en slechts sommige van die processen dragen een
gegeven env-var. Met de marker wordt de projectroot altijd afgeleid van waar
de sessie daadwerkelijk draait.
De marker heeft voorrang op git-detectie. Wanneer aanwezig, wordt de eigen git-remote van de subrepo bewust genegeerd (die zou slechts één geneste repository beschrijven). Zonder marker blijft het gedrag ongewijzigd (git-gebaseerde identiteit).