Skip to content

Add existing-only generic-web deploy recovery dry run - #2170

Merged
cbusillo merged 4 commits into
mainfrom
fix/generic-web-deploy-recovery
Aug 16, 2026
Merged

Add existing-only generic-web deploy recovery dry run#2170
cbusillo merged 4 commits into
mainfrom
fix/generic-web-deploy-recovery

Conversation

@cbusillo

Copy link
Copy Markdown
Owner

Summary

  • add a read-only, existing-reservation-only generic-web deploy recovery endpoint
  • bind inspection to the original deploy route payload fingerprint and stored operation identity
  • reauthorize against both the current lane and stored operation context
  • return only bounded/redacted hashes, observation state, and proposed action
  • document the operator boundary and generate the OpenAPI contract

Safety

  • never reserves, releases, retries, adopts, supersedes, or writes
  • rejects missing, ambiguous, changed, malformed, unauthorized, or fingerprint-mismatched reservations
  • treats provider uncertainty as hold_unknown
  • Stage 2 apply remains separate and requires reviewed digest evidence plus explicit production approval

Validation

  • uv run --extra dev python -m unittest tests.test_generic_web_deploy_recovery tests.test_http_write_route_registrars tests.test_generic_web_deploy tests.test_postgres_store (223 tests)
  • scoped Ruff, Ruff format, and mypy
  • OpenAPI export/generation/drift checks
  • exact tree: uv run --extra dev launchplane ci unittest-shard local (2,920 targets)
  • independent endpoint review: LOVE

Stacked on #2169.
Refs #2167

Base automatically changed from fix/generic-web-deploy-recovery-foundation to main August 16, 2026 19:11
@cbusillo
cbusillo merged commit f7d27d4 into main Aug 16, 2026
32 checks passed
@cbusillo
cbusillo deleted the fix/generic-web-deploy-recovery branch August 16, 2026 19:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant