diff --git a/lib/version-checker.ts b/lib/version-checker.ts index d93e0d2..3e939c8 100644 --- a/lib/version-checker.ts +++ b/lib/version-checker.ts @@ -55,10 +55,23 @@ export function isOutdated(local: string, remote: string): boolean { export async function performUpdate(targetVersion: string, logger?: { info: (component: string, message: string, data?: any) => void }): Promise { // OpenCode installs packages to ~/.cache/opencode/node_modules/ const cacheDir = join(homedir(), '.cache', 'opencode') + const packageDir = join(cacheDir, 'node_modules', '@tarquinen', 'opencode-dcp') const packageSpec = `${PACKAGE_NAME}@${targetVersion}` logger?.info("version", "Starting auto-update", { targetVersion, cacheDir }) + try { + const { rmSync, existsSync } = await import('fs') + const lockFile = join(cacheDir, 'node_modules', '.package-lock.json') + if (existsSync(lockFile)) { + // Remove the lock file to force npm to re-resolve the package + rmSync(lockFile, { force: true }) + logger?.info("version", "Removed package-lock.json to force fresh resolution") + } + } catch (err) { + logger?.info("version", "Could not remove lock file", { error: (err as Error).message }) + } + return new Promise((resolve) => { let resolved = false diff --git a/package-lock.json b/package-lock.json index 2af32fa..5d2f42e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@tarquinen/opencode-dcp", - "version": "0.4.3", + "version": "0.4.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@tarquinen/opencode-dcp", - "version": "0.4.3", + "version": "0.4.4", "license": "MIT", "dependencies": { "@ai-sdk/openai-compatible": "^1.0.28", diff --git a/package.json b/package.json index efef84d..3b5040d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@tarquinen/opencode-dcp", - "version": "0.4.3", + "version": "0.4.4", "type": "module", "description": "OpenCode plugin that optimizes token usage by pruning obsolete tool outputs from conversation context", "main": "./dist/index.js",