Repository navigation
feat(kits)!: make oci-engine an opt-in catalog kit and retire the adapter auto-install - #541
Conversation
ca623d4 to
4a5dad3
Compare
4a5dad3 to
d2ec9dc
Compare
basiliskus
left a comment
There was a problem hiding this comment.
Reviewed at d2ec9dc.
This change adds oci-engine to the pinned opt-in kit catalog, removes the msb adapter's automatic podman installation and device grants, and moves live OCI verification to a dedicated kit-enabled sandbox. It also documents the breaking migration and advances the patterns bundle to v1.11.0.
Intent: The catalog registration and new-sandbox opt-in path match the stated intent, but the migration does not preserve the documented OCI behavior of existing msb sandboxes across their next restart.
Findings (1)
- Blocking: Preserve or explicitly migrate the restart-time device grant for legacy msb sandboxes. This hunk removes
_acq_msb_grant_oci_devsfromacq_backend_start, but sandboxes created before this release have podman on disk without a persistedoci-enginekit ref; aftermsb stop/start, devtmpfs recreates/dev/net/tunand/dev/fusewith root-only permissions, so rootlessdocker run/docker buildstops working even though the new docs say existing sandboxes keep their installed engine. The normal reattach heal reloads only persisted extra/CLI kits and therefore cannot run the new kit for those legacy sandboxes, and no warning tells the user to add it or recreate. I confirmed the removed call is ingit diff 191d501a d2ec9dc; the base comment immediately above it states the regrant is required after every restart because devtmpfs is recreated.
acq.backends/msb.sh:1002
Verdict: needs changes
Assisted-by: OpenCode [gpt-5.6-sol-latest-guardrails-defaultv2] team-code-review
|
Thanks. I agree this needs a migration decision rather than silently breaking restart behavior for legacy msb sandboxes. I also split the unrelated markdownlint work out to #548 so this stack does not keep carrying a local markdownlint fix in every branch. After #548 lands and #474 is rebased, I’ll rebase #541 and address the legacy OCI restart/device-grant finding here. Current intended direction: either preserve the restart-time grant only for legacy sandboxes with adapter-installed podman and no persisted kit, or make the migration explicitly fail/warn with a concrete remediation ( / add / recreate). I’ll implement the minimal behavior that keeps the docs honest and fails closed rather than silently regressing existing sandboxes. |
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>
d2ec9dc to
93aae9c
Compare
Context
This PR implements
GSA-TTS/agentic-coding-quickstart#505and is stacked onGSA-TTS/agentic-coding-quickstart#474. It must merge afterGSA-TTS/agentic-coding-quickstart#474because the base branch carries the patternsv1.10.0pin (2dd2ad6ad5f63b842d732424bed5ba9aebeed676), where theoci-enginekit exists.What Changed
oci-engineto the generic opt-in kit catalog used byacq configure.oci-enginekit selected.oci-engineappears in the configure catalog.extra_kits: oci-engine.acq startin a fresh shell through the persisted kit record path.oci-engineperforms no adapter podman install and grants no OCI devices.BREAKING CHANGE
New msb sandboxes no longer install podman automatically. Users who need
docker runordocker composeinside the sandbox must opt into theoci-enginekit.Migration options:
acq configureand selectoci-enginefor future sandboxes.--kitfor a one-off sandbox.ACQ_EXTRA_KITS.Pinned kit ref for
GSA-TTS/agentic-coding-quickstart#474/ patternsv1.10.0:Verification Transcript
Rollback
Revert this PR to restore the msb adapter-owned podman auto-install path and remove
oci-enginefrom the opt-in catalog. Existing sandboxes are not migrated by rollback; recreate affected sandboxes if their provisioned state needs to match the restored adapter behavior.Security Impact
Positive security impact. The msb adapter no longer grants
/dev/net/tunand/dev/fuseunconditionally during provision/start. Theoci-enginekit owns OCI-specific setup and gates/revokes device exposure based on engine presence. This narrows default device exposure and also removes the prior sbx/msb asymmetry: both backends now use the same explicit opt-in kit for in-sandbox OCI support.Stack
Stacked on
GSA-TTS/agentic-coding-quickstart#474; base branch isrefactor/acq-devenv-base-image, notmain.Closes: #505