orchestkit-demos zod v3→v4 bump

Fixes the @remotion/zod-types@4.0.447 peer-dep conflict that broke Release Video on v7.58.0 and v7.59.0. · package.json · zod v4 changelog

The failure

npm ERESOLVE on every Release Video run

# workflow: .github/workflows/release-video.yml — job: Render Videos
npm error code ERESOLVE
npm error While resolving: @remotion/zod-types@4.0.447
npm error Found:     zod@3.22.3          (root project pin)
npm error peer:      zod@"4.3.6"         (required by @remotion/zod-types)
npm error Could not resolve dependency.

The Remotion team shipped @remotion/zod-types@4.0.447 with a hard peer-dep on zod@4.3.6. Our orchestkit-demos/package.json had zod: 3.22.3 pinned — npm refused to resolve.

The fix

One-line package.json change

// orchestkit-demos/package.json
 "dependencies": {
   "@remotion/zod-types": "^4.0.0",
-  "zod": "3.22.3"
+  "zod": "^4.3.6"
 }

Why the upgrade is safe

All existing zod usage is v3/v4 API-compatible

Audited every z.* call across the 5 components that use zod. Only basic API surface — no v3-only features.

Componentzod API usedv4 compat
MarketplaceIntro.tsxz.object, z.string, z.infer
SpeedrunDemo.tsxz.object, z.string, z.infer
TriTerminalRace-Square.tsxz.object, z.string, z.number, z.array, z.union, z.record
ProgressiveZoom-Square.tsxz.object, z.string
ProgressiveZoom-Vertical.tsxz.object, z.string

Not used anywhere: z.coerce, z.string().email() (v4 renames it), custom .refine() with error maps (signature changed). Clean upgrade path.

Verification

$ cd orchestkit-demos
$ npm install --no-audit --no-fund
added 4 packages, removed 6 packages, and changed 2 packages in 3s

$ npx tsc --noEmit
(exit 0 — no type errors)

Post-merge expectation

The next release tag (likely v7.60.0 after the next release-please merge) should render the landscape + square videos successfully, then upload them as release assets via the App token — exercising the full pipeline end-to-end for the first time since the tokens migrated in PR #1426.

If this still fails after merge, the bug is upstream of zod — most likely a Remotion composition ID mismatch or a ffmpeg codec issue. That would be a separate fix.