Files
sand-boxer/workplans/SAND-WP-0004-the-custodian-e2e-shim.md
tegwick 1594bceec1 Finish SAND-WP-0004: mark e2e-framework migration arc complete
Update migration-gaps, SCOPE, and workplan status after the-custodian
make e2e shim delegates to validate run.
2026-06-23 21:43:53 +02:00

3.7 KiB

id, type, title, domain, repo, status, owner, topic_slug, created, updated, state_hub_workstream_id
id type title domain repo status owner topic_slug created updated state_hub_workstream_id
SAND-WP-0004 workplan the-custodian e2e shim and deprecation infotech sand-boxer finished codex custodian 2026-06-23 2026-06-23 9fe4beb2-d766-4054-b998-10b01ca66a0e

the-custodian e2e shim and deprecation

Complete the e2e-framework/ migration arc: operators keep make e2e REPO= in the-custodian, but execution delegates to wise-validator (validate run) and sand-boxer (provision via profile.compose-e2e). Retire embedded provision/validation in e2e-framework/ with deprecation notices.

Charter: INTENT.md (lineage), docs/migration-gaps.md
Predecessor: SAND-WP-0003 (wise-validator extraction — finished)
Gap analysis: history/2026-06-23-post-wp0003-intent-scope-gap-analysis.md (P1)

Primary implementation touches the-custodian; sand-boxer owns coordination, doc pointers, and verification runbook updates.

Shim Makefile target

id: SAND-WP-0004-T01
status: done
priority: high
state_hub_task_id: "112917a5-2f04-4c82-bc40-2a6d8b54e188"

In the-custodian/Makefile (or documented wrapper), replace e2e target body:

  • Resolve REPO path (~/REPO or REPO_ROOT/REPO)
  • Invoke validate run <repo> with env passthrough: HOSTSANDBOXER_HOST, KEEP, WORKSTREAM_ID, SANDBOXER_COMPOSE_CMD
  • Preserve exit code semantics (0 pass / 1 fail)
  • Document prerequisites: sandboxer + validate on PATH

Deprecate e2e_framework module

id: SAND-WP-0004-T02
status: done
priority: high
state_hub_task_id: "94399b5c-89dd-4ef6-9c5e-ffa3887ca572"

the-custodian/e2e-framework/:

  • cli.py / __main__.py: print deprecation warning; delegate to validate run via subprocess (thin wrapper for backward compat)
  • sandbox.py: mark module deprecated — provision owned by sand-boxer
  • Keep files until one release cycle; no new features

Runbook and doc migration

id: SAND-WP-0004-T03
status: done
priority: medium
state_hub_task_id: "40c70f8b-fa2e-4f4b-b521-665c8d92b403"
  • Update the-custodian/e2e-framework/RUNBOOK.md — banner pointing to wise-validator/docs/runbooks/validate-compose-e2e.md and sand-boxer/docs/runbooks/profile-compose-e2e.md
  • Update sand-boxer/docs/migration-gaps.md — mark SAND-WP-0004 delivered
  • Update SCOPE.md "What Is Possible Now" if needed

Verification

id: SAND-WP-0004-T04
status: done
priority: high
state_hub_task_id: "7a993f9d-cc79-400d-b6c1-73621fbd4055"
  • Document verification steps (CoulombCore): make e2e REPO=sand-boxer and make e2e REPO=activity-core with SANDBOXER_HOST + podman-compose
  • Optional: add scripts/verify-e2e-shim.sh in the-custodian
  • wise-validator T09 remote smoke can satisfy sand-boxer path; activity-core run is stretch goal (Temporal slow start)

activity-core scheduling pointer (optional)

id: SAND-WP-0004-T05
status: done
priority: low
state_hub_task_id: "3a1bb3e1-6433-47b5-8ef6-a9bfab3a7c2f"

Document how activity-core instructions should invoke validate run instead of make e2e — no activity-core code changes in this workplan unless a ready instruction template exists.


Success criteria

  • make e2e REPO=<repo> from the-custodian uses wise-validator + sand-boxer
  • No new code paths call e2e_framework.sandbox.provision() directly
  • Deprecation visible on legacy python -m e2e_framework entry
  • Migration gaps doc shows e2e-framework arc complete

Follow-ons (from gap analysis)

Item Workplan
Extension SDK + ext.vm-packer SAND-WP-0005
TTL enforcement + scheduled reap TBD (extend telemetry or new WP)
SaaS extensions + payments SAND-WP-0006
Snapshot / restore SAND-WP-0007