feat(install): version-driven packaging — prepopulate plugin, verify checksum, normalize base version
Merged
PI
4mo ago+91+91+01234567890123456789-13-13-01234567890123456789
What
Three changes to the forked install script so a single version pin drives the whole packaging story (fork binary + @opencode-ai/plugin), with integrity checking and consistent version normalization.
- Auto-detect prepopulate of
@opencode-ai/plugin— the install resolves and prepopulates the matching plugin for the pinned version, so one version input installs both the fork binary and its plugin. - Verify archive against
SHA256SUMSbefore extract — the downloaded archive is checksum-verified prior to extraction; a mismatch aborts the install instead of unpacking a tampered/corrupt artifact. - Normalize bare base version to patch
1— a bare base version is normalized to the-1patch (e.g.1.17.9→1.17.9-1) so bare and explicit pins resolve identically.
Scope
Single file: install. Targets the first versioned-packaging release, 1.17.9-1.
This PR intentionally contains only the install-script code — the design spec and implementation plan docs are kept out.
Validation
- prepopulate: validated in sandbox (rc build)
- checksum: validated in sandbox + tamper test (mismatch aborts)
- bare-base normalize: 5/5 offline cases
Summary by cubic
Make the install script version-driven: one version pin installs the fork binary and the matching @opencode-ai/plugin, with checksum verification and consistent version normalization, and removes Playwright prepopulation. Targets the first versioned-packaging release 1.17.9-1.
-
New Features
- Auto-prepopulates
@opencode-ai/pluginfor the pinned base version; still runs even if that binary version is already installed. - Verifies the downloaded archive against
SHA256SUMSbefore extraction; aborts on mismatch. - Normalizes bare versions to patch
-1(e.g.1.17.9→1.17.9-1) so base and explicit pins resolve the same.
- Auto-prepopulates
-
Bug Fixes
- Removed redundant lockfile patch during plugin prepopulation; rely on
npm install --save-exactto lock exact versions and avoidnpm cifailures. - Missing normalized
-1release is a hard error; no fallback to legacy bare tags.
- Removed redundant lockfile patch during plugin prepopulation; rely on