Repository navigation
Description
Description
Section 3 of #288 covers local orchestration, baseline bootstrap and genuine staged dry-run. PR #287 contains the proposed implementation but remains unmerged. Dependencies: #289, #290.
Steps to reproduce
Inspection steps (no tests executed):
- Inspect main provision orchestration.
- Compare this section’s tasks in local-provision plan with the open branch.
- Confirm the local-provision contract is still absent from main rather than treating checked-off branch tasks as delivery.
Expected behavior
The section’s contract is present on main and composes with the other local-provision sections without cloud operations during local mode.
Impact
Local provisioning has no mainline dispatch/staging path, and a textual cloud plan is insufficient to preview local file writes.
Proposed fix
Review and merge this section through PR #287, preserving the tasks below and subsequent umbrella amendments. Reconcile with current main rather than reintroducing removed Fastly runtime-env descriptors.
Done when
- Task 8: Refactor
run_provisionto deriveProvisionModefromargs.local+ call path safety - Task 8b: CLI-owned first-run bootstrap synthesis BEFORE
validate_adapter_manifest(local arms only, never cloud); addAdapter::synthesise_baseline_manifesttrait method - Task 9: Recursive copy helper for dry-run staging; promote
tempfile+toml_editto CLI runtime deps - Task 10:
run_with_staging<F, R>helper (takes project-RELATIVE crate path; nostrip_prefix) - Task 11: Wire mode × dry-run dispatch matrix (4 cells) +
OwnedProvisionStoreshelper - Task 12: Dry-run report —
build_dry_run_allow_list(resolved manifest path, not static filenames) +render_dry_run_report(project-relative paths, no tempdir leak) - Task 13: Worktree-clean + no-tempdir-leak regression test (ignored until Section 5 lands; re-enabled by Task 28b)
- Redact env values in ordinary and commented assignment lines; cover renamed/nested adapter crates and avoid all temporary-directory leaks.
Required repository verification: cargo fmt --all -- --check; cargo clippy --workspace --all-targets --all-features -- -D warnings; cargo test --workspace --all-targets; cargo check --workspace --all-targets --features "fastly cloudflare spin"; cargo check -p edgezero-adapter-spin --target wasm32-wasip2 --features spin. These are acceptance requirements, not tests executed during this audit.
Related
#288; local-provision plan; PR #287 is the fully covering open PR. #289, #290
July amendment: all five generated manifests, including axum.toml, are gitignored.
Activity
[-]Section 3 — Local provision orchestration + dry-run staging (Tasks 8–13)[/-][+]Orchestrate local provision and staged dry-runs[/+]