Dashboard › Code › OpenCode plugin: per-project state map …
019e9d98-e22f-7f0d-87d3-91c4f8b9a5e3| Project | Hits | Last recalled |
|---|---|---|
| opencode-lore | 21 | 1h ago |
| opencode | 6 | 8d ago |
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.