diff options
| author | Nick <[email protected]> | 2025-12-09 23:07:59 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-12-09 15:07:59 -0600 |
| commit | c33a90320c7541796c411fe6eac7524d1dbef07e (patch) | |
| tree | b18f6f9452ed928cbee91e9d0045302cd0ce6661 | |
| parent | 802b862aae6029ea7b0cfa49b4ab263ff0656a0f (diff) | |
| download | opencode-c33a90320c7541796c411fe6eac7524d1dbef07e.tar.gz opencode-c33a90320c7541796c411fe6eac7524d1dbef07e.zip | |
fix: resolve 'latest' to actual version when caching plugins (#5292)
| -rw-r--r-- | packages/opencode/src/bun/index.ts | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/packages/opencode/src/bun/index.ts b/packages/opencode/src/bun/index.ts index edf74c310..c0f90e6ca 100644 --- a/packages/opencode/src/bun/index.ts +++ b/packages/opencode/src/bun/index.ts @@ -127,7 +127,18 @@ export namespace BunProc { await runInstall() - parsed.dependencies[pkg] = version + // Resolve actual version from installed package when using "latest" + // This ensures subsequent starts use the cached version until explicitly updated + let resolvedVersion = version + if (version === "latest") { + const installedPkgJson = Bun.file(path.join(mod, "package.json")) + const installedPkg = await installedPkgJson.json().catch(() => null) + if (installedPkg?.version) { + resolvedVersion = installedPkg.version + } + } + + parsed.dependencies[pkg] = resolvedVersion await Bun.write(pkgjson.name!, JSON.stringify(parsed, null, 2)) return mod } |
