Structural gap
Current foundation correctly separates Core sandbox_execution, Supporting artifact_analysis / application_service, and infrastructure adapters, but the accepted product Context Map also requires Workload Admission, Isolation Policy, Runtime Provisioning, Network/Egress, Evidence/Provenance, Session Lifecycle, and Recovery responsibilities to remain independently understandable and testable.
PR #6 currently keeps caller-scoped lease ownership, launch idempotency, expiration scheduling and cleanup retry state together in application_service::coordinator. That is an acceptable process-local bridge for issue #5, but it must not become the permanent home for durable admission capacity, crash recovery, orphan reconciliation, or network policy.
Boundary decision to prove before moving code
application_service owns translation of an approved application request into one service lease and consumer-facing lease semantics.
workload_admission owns authenticated admission intent, idempotency scope, capacity reservation and rejection receipts once admission becomes durable/distributed.
session_lifecycle owns active lease/session state transitions and cancellation semantics.
recovery owns expiration scheduling, failed-cleanup retry policy, restart/orphan reconciliation and cleanup evidence.
network_egress owns deny-by-default/controlled-egress policy rather than Podman-specific networking.
sandbox_execution owns backend-neutral isolation requirements and verified runtime state.
Do not mechanically split the current process-local coordinator before these contracts are executable; preserve a compatibility facade if public callers exist.
RED/GREEN acceptance
- architecture fitness first proves forbidden dependency directions and the intended context ownership;
- durable/restart work cannot be added under generic
application_service coordinator internals;
- recovery policy prevents starvation, bounds retry/resource use, and has deterministic crash/orphan fixtures;
- admission and recovery do not import Podman/containerd/gVisor implementation DTOs;
- network/egress policy remains backend-neutral and default-deny;
- external consumers use versioned ports/contracts only;
- code moves update public exports/tests/docs in one bounded slice and preserve compatibility only where required;
- owned production statement/branch coverage and public rustdoc remain 100%.
This issue is structural follow-up after issue #5’s process-local correctness is proven. It is not permission for cosmetic folder churn.
Structural gap
Current foundation correctly separates Core
sandbox_execution, Supportingartifact_analysis/application_service, and infrastructure adapters, but the accepted product Context Map also requires Workload Admission, Isolation Policy, Runtime Provisioning, Network/Egress, Evidence/Provenance, Session Lifecycle, and Recovery responsibilities to remain independently understandable and testable.PR #6 currently keeps caller-scoped lease ownership, launch idempotency, expiration scheduling and cleanup retry state together in
application_service::coordinator. That is an acceptable process-local bridge for issue #5, but it must not become the permanent home for durable admission capacity, crash recovery, orphan reconciliation, or network policy.Boundary decision to prove before moving code
application_serviceowns translation of an approved application request into one service lease and consumer-facing lease semantics.workload_admissionowns authenticated admission intent, idempotency scope, capacity reservation and rejection receipts once admission becomes durable/distributed.session_lifecycleowns active lease/session state transitions and cancellation semantics.recoveryowns expiration scheduling, failed-cleanup retry policy, restart/orphan reconciliation and cleanup evidence.network_egressowns deny-by-default/controlled-egress policy rather than Podman-specific networking.sandbox_executionowns backend-neutral isolation requirements and verified runtime state.Do not mechanically split the current process-local coordinator before these contracts are executable; preserve a compatibility facade if public callers exist.
RED/GREEN acceptance
application_servicecoordinator internals;This issue is structural follow-up after issue #5’s process-local correctness is proven. It is not permission for cosmetic folder churn.