Upstream opencode stamps its own version into shared files (the Zed extension toml + any package.json it bumps), which leaves the tree pointing at an upstream release tag that doesn't exist on Kilo's pipeline — Zed download URLs silently 404 as a result.
script/sync-versions.ts rewrites every top-level package.json version and the Zed extension toml (version + 5 download URLs) to a single target in one shot. Defaults to the root package.json version, accepts an explicit version argument, and skips packages/kilo-jetbrains/ which tracks its own cadence.
Documented in .kilo/command/upstream-manual-merge.md as a dedicated step-10 commit after 'resolve merge conflicts' so version churn stays out of the behavioural merge commit.