Skip to content

acq: host-authoritative sandbox config — migrate guest-writable state off /var/lib/acq (ADR-0030) #503

Closed
1 of 5 issues completed

Description

@mogul

Goal

Complete the host-authoritative lifecycle migration: acq must not make configuration or lifecycle decisions from guest-writable state. Because sandbox agents have passwordless sudo, guest ownership is not a trust boundary.

The provider-input path delivered by #600 and #601 is the proven pattern:

host validates state
  → host materializes immutable generation
  → guest receives read-only mount or host-side exec injection
  → acq trusts host state only

Delivered Slice

  • Host config directory helpers and read-only mounts.
  • Provider facts/catalog projection and immutable generations.
  • Host-side provider selection provenance, including authoritative empty sets.
  • Several host-authoritative agent/workspace/SSH/kit-environment and readiness paths.

Remaining Scope

Migrate every remaining guest-writable /var/lib/acq/* marker or guest-resident restart artifact that acq trusts:

  1. Session identity/state: agent, workspace, SSH socket, and kit environment where backend parity is incomplete.
  2. Provisioning/readiness gates: install, agent-ready, OCI, and related presence gates.
  3. Trusted restart execution: stage pinned startup code in host config and invoke it from the read-only path.
  4. Remove legacy guest-marker reads after migration, with compatibility/migration handling for existing sandboxes.
  5. Offline focused SBX/MSB coverage plus real host validation for each migrated slice.

Constraints

  • No host execution of kit-supplied code.
  • Do not remove passwordless sudo; change what acq trusts instead.
  • Preserve fail-soft behavior only where it cannot create a trust bypass.
  • New trusted state must be host-resident and read-only in the guest, or injected by acq at exec time.

Priority

This is the next major security/release work after the provider-neutral OpenCode adoption path. Future provider refresh and new harness work should build on this complete lifecycle trust boundary.

AI-assisted tracker re-scope (OpenCode). Human review required.

Activity

  1. added
    enhancementNew feature or request
    maintenanceissues for attention to maintenance rotation
    on Oct 1, 2026
  2. added theissue type on Oct 1, 2026
  3. removed theissue type on Oct 25, 2026
  4. mogul commented on Oct 28, 2026

    @mogul
    ContributorAuthor

    Closing as delivered for this round. The remaining scope is tracked below, so nothing is lost.

    Delivered

    Remaining scope (tracked)

    AI-assisted tracker entry (OpenCode). Human review required.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestmaintenanceissues for attention to maintenance rotation

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions