Repository navigation
fix(kits): land collapsed kit stack implementation - #549
Merged
Merged
Conversation
Expose the functional oci-engine kit through the generic configure catalog and cover catalog-name expansion to the pinned patterns ref. Co-authored-by: OpenCode [gpt-5.5] <bret.mogilefsky@gsa.gov>
Remove the msb-owned podman installation, short-name-mode knob, and unconditional OCI device grants. OCI support now belongs to the opt-in oci-engine catalog kit instead of the adapter default. BREAKING CHANGE: New msb sandboxes no longer install podman automatically. Users who need docker run or docker compose inside the sandbox must select oci-engine with acq configure, or pass the pinned oci-engine kit ref through ACQ_EXTRA_KITS or --kit. Closes: #505 Co-authored-by: OpenCode [gpt-5.5] <bret.mogilefsky@gsa.gov>
Update the live verifier to exercise oci-engine through the generic kit path and document the breaking migration away from msb adapter provisioning. Co-authored-by: OpenCode [gpt-5.5] <bret.mogilefsky@gsa.gov>
Move the built-in patterns bundle from v1.10.0 (2dd2ad6ad5f63b842d732424bed5ba9aebeed676) to v1.11.0 (f2227413df78dc5ef6580b5e29c59542dfe1f66a). Included patterns commits: - 36038a6 feat(acq-kits): add opencode agent-harness kit (SHA-pinned release binary) (GSA-TTS/agentic-coding-patterns#455) - 73606d7 fix(usai-provider): make the catalog drift check report real drift (GSA-TTS/agentic-coding-patterns#459) - 56500ba fix(usai-provider): drop embedding models from the chat-model catalog (GSA-TTS/agentic-coding-patterns#462) The oci-engine kit this PR adds to the opt-in catalog is still present at the new ref, so catalog selection is unchanged. The opencode agent kit becomes fetchable at this pin for the first time, but it stays dormant: acq_agent_builtin_kit_enabled returns false for every agent, so _build_kit_list still yields four built-in kits and no agent kit is applied. Enabling it is separate work tracked by #485. provider-facts/usai.env remains absent at v1.11.0, so the provider-facts loader still returns 2 (artifact absent, tolerated) and the transitional fallback defaults remain the only reachable path. #481 is unaffected. Behavior change riding along with the bump: the usai-provider kit applies to every sandbox, and its model catalog no longer advertises the cohere_english_v3 embedding model (13 lines removed from files/home/usai-config/opencode.jsonc), with 7 lines added to scripts/sync-usai-models.mjs so the drift check reports real drift. Co-authored-by: OpenCode [claude-opus-5] <bret.mogilefsky@gsa.gov>
Update documentation examples and bats assertions to match the patterns v1.11.0 pin. Refs: #505 Co-authored-by: OpenCode [gpt-5.5] <bret.mogilefsky@gsa.gov>
Contributor
Author
|
This appears to have been necessary because GitHub broke its reporting on the PR stack... It indicated (in the API and the UI) that the upper layers were merged into 474, but that apparently wasn't the case...! |
mogul
added a commit
that referenced
this pull request
Oct 6, 2026
🤖 I have created a release *beep* *boop* --- ## [4.0.0](v3.1.0...v4.0.0) (2026-10-06) ### ⚠ BREAKING CHANGES * **kits:** acq no longer installs podman/OCI tooling by default. Users who need docker, docker compose, or rootless podman when the base image doesn't provide it must opt into the oci-engine kit with `acq configure`, `--kit`, or `ACQ_EXTRA_KITS`. * **kits:** acq no longer performs native OpenCode npm fallback installation. OpenCode is supplied by the pinned opencode agent kit from agentic-coding-patterns v1.12.0, currently delivering OpenCode v2.0.22. If the kit is unavailable or invalid, acq fails closed instead of installing opencode-ai from npm. * **kits:** existing acq sandboxes with adapter-installed podman are not migrated in place. Recreate affected sandboxes or add the oci-engine kit before relying on OCI behavior after stop/start. ### Features * **acq:** choose the host port per sandbox, and let --publish pin it ([#526](#526)) ([410f332](410f332)) * **acq:** export ACQ_WORKSPACE and ACQ_CLONE into the guest on both backends ([#457](#457)) ([e0b9a3b](e0b9a3b)) * **acq:** interactive `acq configure` UI for extra kits + token-scoping defaults ([#500](#500)) ([13d9d3a](13d9d3a)) * **kits:** adopt pinned agent and capability kits ([#474](#474)) ([6a67063](6a67063)) * **secrets:** add Windows-native DPAPI secret backend ([#464](#464)) ([907f404](907f404)) * **windows:** add acq preview install path ([#463](#463)) ([d6d76f4](d6d76f4)) ### Bug Fixes * **acq:** use sandbox workspace for github scoping ([#476](#476)) ([1610835](1610835)) * **ci:** bump js-yaml to 4.3.2 to clear a high-severity CPU-DoS advisory ([#454](#454)) ([3217b49](3217b49)) * **ci:** bump smol-toml to 1.7.1 to clear an infinite-loop DoS advisory ([#459](#459)) ([c2291bf](c2291bf)) * **ci:** centralize markdownlint coverage ([#548](#548)) ([a27c31e](a27c31e)) * **ci:** pin markdownlint-cli2 once, clear GHSA-253c, unify file selection ([#527](#527)) ([e712685](e712685)) * **ci:** unblock unrelated PRs from the bash32 required-check deadlock ([#513](#513)) ([187aa57](187aa57)) * **install:** keep curl | sh stdin intact and tap msb formula first ([#462](#462)) ([c808d74](c808d74)) * **install:** trust the microsandbox-acq dependency before brew install ([#534](#534)) ([ffac0fa](ffac0fa)) * **kits:** land collapsed kit stack implementation ([#549](#549)) ([bcd5b9c](bcd5b9c)) * **msb:** allow Playwright browser downloads ([#477](#477)) ([0c399c5](0c399c5)) * **msb:** block unsafe 0.7 migration versions ([#510](#510)) ([3634046](3634046)) * **msb:** carry every origin URL, keep the scratch private, fail closed on a copy miss ([#488](#488)) ([babcd49](babcd49)) * **msb:** carry the source checkout's git identity into the --clone scratch ([#443](#443)) ([320d784](320d784)) * **msb:** follow the host resolvers and disable DNS rebind protection in the guest ([#444](#444)) ([d2f4bdc](d2f4bdc)) * **msb:** point the --clone scratch's origin at the source checkout's remote ([#455](#455)) ([7f48b94](7f48b94)) * **msb:** refresh ssh authorization for port publish ([#446](#446)) ([72a6bd5](72a6bd5)) * **msb:** session parity for exec/attach/shell (cwd, terminal identity, login shell) ([#427](#427)) ([6261eda](6261eda)) * **msb:** skip the recursive home chown when the image baked the agent user ([#432](#432)) ([d8f66a4](d8f66a4)) * **msb:** thread the merged kit env onto kit lifecycle commands ([#519](#519)) ([2248a92](2248a92)) * **msb:** translate kit wildcard network rules ([#451](#451)) ([e22bbc3](e22bbc3)) * **msb:** verify post-hoc port forward listener ([#530](#530)) ([8ca50e1](8ca50e1)) * **msb:** warn on broadened kit wildcard rules ([#460](#460)) ([6ded3ce](6ded3ce)) * **msb:** warn when ssh-agent route is missing ([#448](#448)) ([3a767a4](3a767a4)) * **sbx:** emit valid setup.install shape for the git-identity mixin ([#492](#492)) ([8e6160c](8e6160c)) * **sbx:** raise the version floor to 0.39.0, where sbx create --env first exists ([#491](#491)) ([30f9ecf](30f9ecf)) * **sbx:** wait for startup barrier before attach ([#512](#512)) ([33c83c5](33c83c5)) * **secret:** reject multiline test secret values ([#447](#447)) ([f2da950](f2da950)) * **secrets:** propagate rotation across backends ([#509](#509)) ([9641958](9641958)) --- 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> Co-authored-by: Bret Mogilefsky <bret.mogilefsky@gsa.gov>
This was referenced Oct 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Corrective PR after #474 was squash-merged with release notes that describe the full collapsed stack, but the final branch contents only included the lower #474 layer.
This lands the implementation that the merged #474 commit message already announces as breaking:
oci-engineto the opt-in kit catalog;PATTERNS_KIT_REFto agentic-coding-patterns v1.12.0 (56d1f5f49ef928f50e61aa64a93d618b3d21c415);opencodeagent kit.Why This Is Separate
The merge commit for #474 already contains the correct release-please
BREAKING CHANGE:footers and migration notes, but the code still had the old v1.10.0 patterns pin plus the old adapter-owned OCI/OpenCode paths. This PR makes shipped behavior match the already-merged release notes before the release PR is merged.Verification
bash -n acq acq.backends/*.sh scripts/test-acq-lib.sh scripts/test-acq-bats scripts/fix-exec-bits test/bats/helper.bash scripts/verify-backendspassed../scripts/fix-exec-bits --checkpassed.git diff --checkpassed.npm run lint:mdpassed.npm audit --prefix .github/linters --audit-level=highpassed.TMPDIR="$PWD/tmp" ./scripts/test-acq-bats test/bats/36-agent-catalog.bats test/bats/50-kit-list-completeness.bats test/bats/72-msb-agent-user.bats test/bats/95-kit-ref-persistence.bats test/bats/135-configure.bats test/bats/140-opencode-migration-gate.bats(109 ok).Rollback
Revert this PR to restore the implementation currently on
main; note that doing so would again make the code disagree with the already-merged #474 breaking-change release notes.Security Impact
Positive security impact consistent with #474's release notes: OCI device exposure is opt-in through the
oci-enginekit, and OpenCode installation comes from the pinned patterns release instead of native npm fallback.AI-assisted. Human review required.