DashboardCodeOpenCode plugin: per-project state map …

OpenCode plugin: per-project state map for project path header injection

Category: preference
Confidence: 0.90
ID: 019e9d98-e22f-7f0d-87d3-91c4f8b9a5e3
Project ID: ffa98226-3908-4f0c-936b-969018c62abf
Cross-project: No
Recalled in other projects: 2
Source session: (none)
Created: 2026-06-11 23:54:05
Updated: 2026-06-12 09:52:47

Cross-Project Recalls

ProjectHitsLast recalled
opencode-lore 21 1h ago
opencode 6 8d ago

Content

OpenCode plugin per-project state: projectState Map keyed by ctx.project.id{ projectPath, gitRemote, lastSeenAt }; TTL=24h; reapStaleProjectState() called on every new entry. chat.headers hook uses per-project Map entry — correct, no cross-project clobber. Module-level globals currentProjectPath/currentGitRemote (lines 304-305) are 'most-recently-active wins' and used by fetch interceptor getHeaders() for requests bypassing chat.headers. Fix: emit project+remote as an atomic pair in headers; never send remote without its paired path. loreInitPromise memoization prevents concurrent plugin calls racing on probe→spawn. Gateway discovery order: (0) LORE_REMOTE_URL; (1) LORE_GATEWAY_URL; (2) port file; (3) in-process startGateway. remoteGateway auto-detection 4-layer precedence in start.ts. Plugin installed under ~/.config/opencode/node_modules/opencode-lore/; event hook receives { event: Event } — crash if host passes undefined.

Move to: