fix(resources): stage immutable releases before promotion - #83
Draft
Jeremy1844 wants to merge 4 commits into
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
DO NOT MERGE — provider binding, protected staging, consumer compatibility, content-rights approval, and rollback validation are unverified.
Audit root
ADV-2026-0053/RC-00539d237dd4fb37dd1fb936e3f9649020cc43a374c8942b4008ac2df1c8e25a4333b603186e54b9ce170f9475a874705f43663576e2856980b888896fef2e5bb9bee37cf7115009ba45e3b38b1f8e7318e2Why
The current deployment model lacks a complete content-authenticated release manifest, immutable release address, and a conditional current-release pointer. Synthetic fault injection proves that recursive mutable publication can retain removed objects or expose a mixed release after interruption. This confirms an algorithmic defect; it does not allege a known production incident.
Minimal change
This draft adds a dependency-free release protocol, a strict generation-store adapter, a shadow-release orchestrator, and regression tests. It:
No workflow, dependency manifest, lockfile, existing source/content, asset, or deployment setting changes.
Regression evidence
node --check.23209e85fd8acb03add0b4ba3f6943a52cf662e0.git diff --checkpasses.Protected objects remain unchanged:
srctree:7b0a5d6f56d0dae3640602b33b5efb101cef8e62assetstree:d564d0bc3dd917926892c55e3706cc116d5b165eyarn.lock:e187b5f98bb0acd58a206ec18b7a65716052fc45package.json:d18d3145ee6dc4846cae3c9fcc4f8cab7562c544.githubtree:bd8b838c7f534ca63b3eaa0aa46c9c69c37da9d6Existing PR overlap
All seven open resources PRs (#76–#82) were refreshed before publication. None changes any of this draft’s five paths, and none implements immutable release staging/promotion. This draft must remain independent; no existing PR should be closed or merged automatically.
Migration, recovery, and rollback
There is no stored-user-data or schema migration. Production adoption still requires a separately reviewed provider binding, a legacy URL/alias compatibility map, protected no-content staging, least-privilege IAM/OIDC, fault injection, consumer validation, content-rights approval, and a documented retention window for both rollback and redo descriptors.
Rollback must select a separately verified immutable release through a fresh conditional pointer generation. Never reconstruct an old release inside a mutable prefix, and never delete referenced immutable objects before the approved rollback window expires.
Required gates
Fork Actions are intentionally disabled; no hosted run, deployment, merge, release, or protected-branch write is claimed.