Repository navigation
fix(install): package provider validator runtime - #619
Conversation
Point timeout troubleshooting to the OpenCode kit that now owns provider configuration generation instead of the removed provider-owned config file. Co-authored-by: OpenCode Agent <[email protected]>
|
🤖 Fixed the observed Link Check failure at the latest draft head: timeout troubleshooting now points to the OpenCode kit that owns generated provider configuration instead of the removed provider-owned |
|
Thanks, this fixes the Homebrew and release-install paths from #618. One regression for git checkouts: The PR removes both the Suggestion: give checkouts a supported path that stays fail closed. For example, Separately, the failing Link Check isn't from this PR: |
Add an explicit hash-verified online setup path for development checkouts, bootstrap Python selection for 3.12 through 3.14, and actionable manual runtime guidance without weakening create-time validation. Co-authored-by: OpenCode Agent <[email protected]>
|
@basiliskus Addressed the checkout regression in the latest draft head:
Focused setup tests pass 5/5; Bash syntax, ShellCheck, and diff checks pass. The stale OpenCode ownership link was also corrected earlier. Draft CI is the full-suite authority. Please re-review. |
Use the explicit bootstrap interpreter consistently even when its path contains whitespace. Co-authored-by: OpenCode Agent <[email protected]>
|
@basiliskus Checkout support is complete in the latest draft head:
Focused setup tests pass 5/5; syntax, ShellCheck, and diff checks pass. The stale documentation link is fixed. Please re-review. |
|
One edge case in |
Add explicit hash-locked online setup for development checkouts, host-aware Python selection, and documented manual runtime override while preserving offline release installs. Co-authored-by: OpenCode Agent <[email protected]>
|
@basiliskus Checkout support is now complete in the latest draft head. |
|
Thanks, both points are fixed at
I didn't run a full One note on rollout: release PR #617 currently contains only #608. If it ships before this PR and the tap's current updater picks it up, Homebrew users who upgrade can't create OpenCode sandboxes. Merging GSA-TTS/homebrew-tap#11 first avoids that, since its updater skips any release without the validator wheelhouses, then this PR, then the release. |
basiliskus
left a comment
There was a problem hiding this comment.
Verdict: request changes — 967858f1f003b1ac459f84c177b61767653fdd8f
All three prior major findings remain open on the unchanged head of GSA-TTS/agentic-coding-quickstart#619:
.github/workflows/release.yml:84: archive is written above the working directory, while upload expects it inside. Write to the uploaded path..github/workflows/release.yml:83:SHA256SUMShashes its empty self, so generated wheelhouses fail verification. Exclude the manifest.scripts/install-provider-input-wheelhouse:45: installers extract into the wheelhouse root, but setup requires a platform subdirectory. Align extraction and lookup.
Assisted-by: OpenCode [gpt-6.1-sol-latest-guardrails-defaultv2] skill:change-review
Blocker 1 — release.yml structural test: Add three new assertions to
06-windows-install.bats verifying that the wheelhouse tar path matches
the upload-artifact path, that SHA256SUMS is never self-hashed, and that
Windows extraction lands in the correct platform subdir.
Blocker 2 — SHA256SUMS self-hash: Change glob('*') to glob('*.whl') in
the Build exact wheelhouse step. The shell redirect '> SHA256SUMS'
creates the file as a 0-byte file before Python runs; a bare glob('*')
therefore picks it up and emits a hash of the empty string, producing a
permanently self-inconsistent manifest that always fails verification.
Using glob('*.whl') confines hashing to wheel files only.
Blocker 3 — wheelhouse extraction path: install-provider-input-wheelhouse
appended wheels directly to $target (scripts/provider-input-validator-
wheelhouse), but setup-provider-input-validator expects them one level
deeper at $target/$platform. Add target="${target}/${platform}" before
the stage/backup derivation so the extracted layout matches.
Also fix four pre-existing install.bats test failures (tests 4, 5, 8, 14)
caused by the git stub's clone case not creating the
scripts/install-provider-input-wheelhouse stub that install.sh calls
from the cloned checkout on every release-tag clone install.
Verification:
- scripts/test-acq-bats 05-install.bats: 31/31 pass (was 4 failing)
- scripts/test-acq-bats 06-windows-install.bats: 23/23 pass
- scripts/test-acq-bats 147-provider-input-projection.bats: 46/46 pass
- shellcheck --severity=warning: clean
- markdownlint: clean
- git diff --check: clean
- YAML parse: all workflow files valid
AI-assisted (OpenCode [usai/claude_4_6_sonnet]). Human review required.
Review blocker fixes (commit 063cb7c)Three blockers addressed point by point: Blocker 1 — Release workflow structural test: tar path ↔ upload-artifact pathRoot cause (confirmed): No structural test existed to prove the wheelhouse tar file path and the Fix: Added four new assertions to
Blocker 2 — SHA256SUMS must never hash itselfRoot cause: Fix: Regression test: Blocker 3 — Wheelhouse extraction path / setup-provider-input-validator discoveryRoot cause: Fix: Tests: Structural cross-check verifies all four platform slugs ( Verification transcriptThe four pre-existing failures in 05-install.bats (tests 4, 5, 8, 14) were caused by the git stub's clone case not creating the AI-assisted (OpenCode [usai/claude_4_6_sonnet]). Human review required. |
basiliskus
left a comment
There was a problem hiding this comment.
Verdict: request changes — 063cb7c3a15d49f86295c6971666c85c4284f447
Two prior findings are resolved on GSA-TTS/agentic-coding-quickstart#619: wheel-only checksum enumeration and platform-directory installation.
The release archive destination remains a blocker at .github/workflows/release.yml:84. Executing the exact command with GNU tar 1.35 from a job-like working directory writes ../provider-input-validator-wheelhouse-linux-x86_64.tar.gz into the checkout's parent, not the checkout. GNU tar's -C wheelhouse changes the input-file context; it does not relocate the relative archive output. Upload at line 105 expects the bare filename inside the checkout, where no archive exists.
Please remove ../ from the archive output and replace the structural assertion at test/bats/06-windows-install.bats:279 with an execution test that verifies the file exists at the upload path. That assertion currently enshrines the incorrect path assumption. The earlier archive finding is therefore not retracted.
Runtime creation and real release builds remain unverified here; fixture-based execution verifies the checksum/layout fixes, not packaged dependency compatibility.
Assisted-by: OpenCode [gpt-6.1-sol-latest-guardrails-defaultv2] skill:change-review
Create validator wheelhouse archives in the runner working directory and execute the release command in a regression test to prove upload-artifact can read the exact path. Co-authored-by: OpenCode Agent <[email protected]>
|
@basiliskus Fixed the remaining release archive blocker in the latest draft head. The wheelhouse tar command now writes the bare archive filename in the runner working directory ( |
basiliskus
left a comment
There was a problem hiding this comment.
Verdict: comment — 01117db5ee0940bec9f200b630c04db07fd21258
All three prior findings on GSA-TTS/agentic-coding-quickstart#619 are resolved:
- Archive destination: the exact release tar command now creates the archive at the upload path. The new regression executes tar and checks that output exists, rather than relying solely on a structural assertion.
- Manifest self-inclusion: the exact manifest-generation command excludes SHA256SUMS and produces a manifest that verifies.
- Platform-directory installation: actual installer/setup execution confirms matching extraction and discovery paths, using fixture wheels and download transport.
No new must-fix findings. Real release-matrix builds, runtime creation and live install channels remain unverified here. The current-head pre-commit and bash-3.2 CI checks are still running; merge should wait for their results.
Assisted-by: OpenCode [gpt-6.1-sol-latest-guardrails-defaultv2] skill:change-review
|
I can't approve because it's a draft, but it's approved |
|
🤖 Merge-queue sequencing check: current queued head |
🤖 I have created a release *beep* *boop* --- ## [4.2.0](v4.1.1...v4.2.0) (2026-11-05) ### Features * **acq:** project provider inputs read-only ([#608](#608)) ([bd11c77](bd11c77)) * **sbx:** trust host state for built-in kit heal; add MSB forged-marker and legacy-sandbox coverage ([#637](#637)) ([ef24965](ef24965)) * **scripts:** add summarize-bats-timing for bats TAP timings ([#652](#652)) ([5bf9398](5bf9398)) ### Bug Fixes * **agents:** move the default OpenCode image to devenv-shell 2.1.0 ([#668](#668)) ([dbd8a76](dbd8a76)) * **common:** canonicalize macOS /var,/tmp,/etc aliases before O_NOFOLLOW traversal ([#622](#622)) ([1135fcc](1135fcc)) * **install:** package provider validator runtime ([#619](#619)) ([5192fa1](5192fa1)) * **msb:** distinguish denied probe writes from writable mounts ([#670](#670)) ([049931c](049931c)) * **msb:** strip CR from jq output in acq ports (Windows) ([#663](#663)) ([7ad6e56](7ad6e56)) * **release:** use supported macOS wheelhouse runners ([#674](#674)) ([9dbc9aa](9dbc9aa)) ### Performance Improvements * **acq:** stop the kit-fetch guardian tick from delaying exit ([#664](#664)) ([fe686ea](fe686ea)) * **kits:** reuse pinned fetches within one invocation ([#631](#631)) ([b433a61](b433a61)) * **msb:** reduce foreground node kit invocation latency ([#616](#616)) ([ec73abd](ec73abd)) * **test:** eliminate redundant bats fetches and waits ([#621](#621)) ([dda5fe1](dda5fe1)) * **test:** shorten hostport and cli-kits test tail ([#654](#654)) ([a3acc7b](a3acc7b)) * **test:** shorten port fixtures and parallelize shellcheck ([#624](#624)) ([8eb3ff8](8eb3ff8)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Summary
Make mandatory provider validation work after normal Homebrew and official installations without requiring users to build or export a custom Python environment.
Issue
Before / After
Before: provider validation searched under the installation directory, rejected common Homebrew Python 3.14 hosts, and left Homebrew users without the setup script or a writable runtime destination.
After: release artifacts carry checksum-verified validator wheelhouses and the Windows embedded runtime; installers place and discover the validated runtime under user-writable application data with atomic rollback and no global package installation.
Verification
git diff --check: passed.package.jsonparse: passed.Security Impact
acq create.Merge Guard
This draft may merge before or after GSA-TTS/homebrew-tap#11, but the resulting Quickstart release MUST NOT be published until the corrected tap updater is merged to
GSA-TTS/homebrew-tapmain. After release publication, both macOS wheelhouse assets must finish uploading before the tap updater generates the versioned formula PR.AI-assisted (OpenCode). Human review required.