summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNick <[email protected]>2025-12-09 23:07:59 +0200
committerGitHub <[email protected]>2025-12-09 15:07:59 -0600
commitc33a90320c7541796c411fe6eac7524d1dbef07e (patch)
treeb18f6f9452ed928cbee91e9d0045302cd0ce6661
parent802b862aae6029ea7b0cfa49b4ab263ff0656a0f (diff)
downloadopencode-c33a90320c7541796c411fe6eac7524d1dbef07e.tar.gz
opencode-c33a90320c7541796c411fe6eac7524d1dbef07e.zip
fix: resolve 'latest' to actual version when caching plugins (#5292)
-rw-r--r--packages/opencode/src/bun/index.ts13
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
}