From c7093f936e231d4262f909f729825313221c12b7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 02:55:34 +0000 Subject: [PATCH 1/2] chore(deps): bump zod from 3.25.76 to 4.3.6 Bumps [zod](https://github.com/colinhacks/zod) from 3.25.76 to 4.3.6. - [Release notes](https://github.com/colinhacks/zod/releases) - [Commits](https://github.com/colinhacks/zod/compare/v3.25.76...v4.3.6) --- updated-dependencies: - dependency-name: zod dependency-version: 4.3.6 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index af1d746..6cf6cdb 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ }, "dependencies": { "@opencode-ai/plugin": "^1.0.85", - "zod": "^3.22.0" + "zod": "^4.3.6" }, "devDependencies": { "@types/bun": "latest", From cccbe65749090115d7c320671999a1f88a2522b5 Mon Sep 17 00:00:00 2001 From: Nigel Bazzeghin Date: Wed, 11 Feb 2026 22:12:59 -0600 Subject: [PATCH 2/2] fix: update ZodError.errors to .issues for Zod v4 compat Zod v4 renamed ZodError.errors to ZodError.issues. Update all 3 error handlers and regenerate bun.lock. --- bun.lock | 4 ++-- src/lib/config.ts | 2 +- src/lib/job-state.ts | 2 +- src/lib/plan-state.ts | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/bun.lock b/bun.lock index 58641de..3781f42 100644 --- a/bun.lock +++ b/bun.lock @@ -6,7 +6,7 @@ "name": "opencode-mission-control", "dependencies": { "@opencode-ai/plugin": "^1.0.85", - "zod": "^3.22.0", + "zod": "^4.3.6", }, "devDependencies": { "@types/bun": "latest", @@ -514,7 +514,7 @@ "yoctocolors": ["yoctocolors@2.1.2", "", {}, "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug=="], - "zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], + "zod": ["zod@4.3.6", "", {}, "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg=="], "@actions/http-client/undici": ["undici@6.23.0", "", {}, "sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g=="], diff --git a/src/lib/config.ts b/src/lib/config.ts index ea0f90d..2cfd6a9 100644 --- a/src/lib/config.ts +++ b/src/lib/config.ts @@ -60,7 +60,7 @@ export async function loadConfig(): Promise { return result; } catch (error) { if (error instanceof z.ZodError) { - throw new Error(`Invalid config in ${filePath}: ${error.errors.map(e => `${e.path.join('.')}: ${e.message}`).join(', ')}`); + throw new Error(`Invalid config in ${filePath}: ${error.issues.map(e => `${e.path.join('.')}: ${e.message}`).join(', ')}`); } throw new Error(`Failed to load config from ${filePath}: ${error}`); } diff --git a/src/lib/job-state.ts b/src/lib/job-state.ts index 2d74f81..2ec90a3 100644 --- a/src/lib/job-state.ts +++ b/src/lib/job-state.ts @@ -76,7 +76,7 @@ export async function loadJobState(): Promise { return JobStateSchema.parse(parsed); } catch (error) { if (error instanceof z.ZodError) { - throw new Error(`Invalid job state in ${filePath}: ${error.errors.map(e => `${e.path.join('.')}: ${e.message}`).join(', ')}`); + throw new Error(`Invalid job state in ${filePath}: ${error.issues.map(e => `${e.path.join('.')}: ${e.message}`).join(', ')}`); } throw new Error(`Failed to load job state from ${filePath}: ${error}`); } diff --git a/src/lib/plan-state.ts b/src/lib/plan-state.ts index 3dba026..a4921cc 100644 --- a/src/lib/plan-state.ts +++ b/src/lib/plan-state.ts @@ -33,7 +33,7 @@ export async function loadPlan(): Promise { return PlanSpecSchema.parse(parsed); } catch (error) { if (error instanceof z.ZodError) { - throw new Error(`Invalid plan state in ${filePath}: ${error.errors.map(e => `${e.path.join('.')}: ${e.message}`).join(', ')}`); + throw new Error(`Invalid plan state in ${filePath}: ${error.issues.map(e => `${e.path.join('.')}: ${e.message}`).join(', ')}`); } throw new Error(`Failed to load plan state from ${filePath}: ${error}`); }