-
Notifications
You must be signed in to change notification settings - Fork 10
feat(deploy): two-phase stage/activate for deploy_component #1849
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from all commits
Commits
Show all changes
108 commits
Select commit
Hold shift + click to select a range
19709dc
feat(deploy): two-phase stage/activate for deploy_component
dawsontoth 909f384
fix(deploy): staging parent for npm pack cwd, symlink-safe aside, sib…
dawsontoth cb2020e
test(deploy): op-level coverage for stage_component, activate_compone…
dawsontoth 52718f6
test(deploy): update integration phase assertions to two-phase names
dawsontoth 64ad02b
test(deploy): rewrite op-level tests as real-module tests (no sinon/r…
dawsontoth 01477ba
Merge main into claude/deploy-component-two-phase-94969a
dawsontoth 018fe90
Merge main into claude/deploy-component-two-phase-94969a
dawsontoth 26de01c
fix(types): cast commitResolution to Promise<void> at recordCommitLat…
dawsontoth 6e4269c
feat(deploy): revert_component + retained previous version, CLI commands
dawsontoth 722158b
fix(deploy): revert_on_failure must skip peers that never activated
dawsontoth 2ac508f
fix(deploy): exclude this node from revert_on_failure point-to-point …
dawsontoth baca6b7
test(deploy): extract + cover revert_on_failure node targeting
dawsontoth 488d172
fix(deploy): validate deployment_id charset; validate staged build du…
dawsontoth 43b21aa
Merge main into claude/deploy-component-two-phase-94969a
dawsontoth d80e695
refactor(deploy): fold stage/activate into deploy_component (internal…
dawsontoth 4197f1c
feat(deploy): bound staged-build retention per component (evict-on-st…
dawsontoth 9f645bc
fix(cli): `harper activate` must carry a deployment_id (fail fast, no…
dawsontoth 3c19c3b
Merge branch 'main' of https://github.com/HarperFast/harper into clau…
dawsontoth b0e33e3
test(deploy): reset process-wide restart buffer after two-phase op tests
dawsontoth c907eb2
fix(deploy): two-phase deploy marks restart-required for new components
dawsontoth 1ec722b
test(deploy): assert restart-required directly on every two-phase leg
dawsontoth 911d617
style(test): prettier line-wrap for deployPhaseOperations assertions
dawsontoth 5db986a
Merge branch 'main' into claude/deploy-component-two-phase-94969a
dawsontoth 7504b55
Merge branch 'main' into claude/deploy-component-two-phase-94969a
dawsontoth 758047c
fix(deploy): markDeploymentTerminal must patch, not mutate the fetche…
dawsontoth 299557b
Merge branch 'main' into claude/deploy-component-two-phase-94969a
dawsontoth c7b0e3f
Merge branch 'main' into claude/deploy-component-two-phase-94969a
dawsontoth 3ebced7
fix(deploy): gate peer activation failures on the activate-existing path
dawsontoth 842061a
Merge branch 'main' + add count-based payload retention (default 1)
dawsontoth 525dfd7
fix(deploy): persist root config on activate-by-id; restart the rever…
dawsontoth eb861b9
Merge branch 'main' into claude/deploy-component-two-phase-94969a
dawsontoth 764ce67
test(deploy): cover package-identifier recovery on activate-by-id end…
dawsontoth 2b189cc
Restore component directories after failed preparation
kriszyp befbd16
Handle concurrent component recovery during startup
kriszyp 9f4918d
Bound preparation waits without racing recovery
kriszyp ee64f6a
Wait for live component preparation during recovery
kriszyp a215341
Defer busy component recovery off startup path
kriszyp bd9c1fd
Harden deferred recovery state handling
kriszyp 0e74190
Finalize deferred component readiness
kriszyp c6ea280
Deduplicate deferred component readiness
kriszyp 302ba4c
Gracefully settle sibling startup recovery
kriszyp 1f91dfe
Distinguish recovery lock ownership
kriszyp b11822e
test(components): preserve first-deploy absence
kriszyp 4f46a43
fix(components): harden interrupted recovery discovery
kriszyp d6acffc
fix(components): guard deferred ready hooks
kriszyp 1a6fa31
Preserve retained component replacements
kriszyp 96d90f3
Avoid retiring an absent replacement
kriszyp 8afdfb7
Ready deferred component modules once
kriszyp cec013d
Await shared component readiness
kriszyp 58fe680
Make two-phase component deploys crash-safe and fail closed
heskew e459bac
Merge PR #2135 (heskew): crash-safe, fail-closed two-phase deploys
dawsontoth 49178e9
Merge #2066 (kris/deploy-peer-rollback) into the two-phase deploy branch
dawsontoth 70e24b4
feat(deploy): restore revert_component as an addressed, idempotent ro…
dawsontoth 07fc921
fix(deploy): compare package metadata across the two-phase swap for t…
dawsontoth ed3294f
fix(deploy): use lstat, not access, to detect an occupied extraction …
dawsontoth fdc6682
style: prettier formatting for the new revert regression tests
dawsontoth 4d2a854
docs(deploy): make DESIGN.md match the code again
dawsontoth 1497fed
test(deploy): cover revert_component at the operation level
dawsontoth 4d1f739
test(deploy): assert the restart gate on the swap primitive, not thro…
dawsontoth 9430ad0
test(cli): cover the harper revert verb and its required target
dawsontoth 9eb3a41
fix(deploy): compensate and recover an interrupted revert swap
dawsontoth cc4e720
fix(deploy): park a displaced directory-package tree aside instead of…
dawsontoth f60feec
fix(deploy): fail closed on startup reconciliation, and finish an int…
dawsontoth ed1f8eb
test(deploy): stop racing the async aside sweep when reading parked e…
dawsontoth f6d2291
fix(deploy): re-point dependency links the activation swap invalidates
dawsontoth 1938914
fix(deploy): repair dependency links inside the activation transactio…
dawsontoth dea4788
Make rollback placeholders movable
kriszyp 66cd942
Keep placeholder repair identity-gated
kriszyp dcbc094
Complete interrupted component recovery
kriszyp 44d91ed
Resolve component recovery review feedback
kriszyp 807352e
Close live-writer rollback race
kriszyp 8c70677
Preserve placeholder on mode failure
kriszyp b3f510c
Recover pre-chmod rollback placeholders
kriszyp d411900
Retire losing recovery candidates and unblock rollback retries
kriszyp a99785c
Pin mode-000 directory placeholder adoption
kriszyp 2488435
Scope deferred readiness to each component load
kriszyp 1074309
Bound startup component recovery waits
kriszyp 40fc6fa
Pin deferred recovery lock renewal
kriszyp fb77b51
Preserve dangling component symlinks on rollback
kriszyp 88cd258
Contain dangling component load failures
kriszyp 2defe84
Merge updated #2066 base into the two-phase deploy branch
dawsontoth 8664805
fix(deploy): fence revert persistence, contain reconciliation, and co…
dawsontoth c866591
fix(deploy): make the pre-swap link repair reversible
dawsontoth f1cf79a
test(deploy): cover the reconciliation attribution guard
dawsontoth b7d6e0f
fix(deploy): pair the revert config commit with a rollback across eve…
dawsontoth f911f54
fix(deploy): serialize persistent-state writes and fail startup close…
dawsontoth 7742810
fix(deploy): hold the component lock across startup activation-artifa…
dawsontoth d1e9995
fix(deploy): settle crash-stranded in-flight deployments so their pay…
dawsontoth 21f319a
fix(deploy): stop treating uncertainty as absence, and recover the no…
dawsontoth 63a713e
fix(deploy): keep recovery and retention from destroying releases the…
dawsontoth 20c6390
chore(deploy): drop review-provenance comments and decorative dividers
dawsontoth fb03ee5
fix(deploy): compensate a partial persistent commit, and stop rejecti…
dawsontoth 093b7e4
fix(deploy): remove a dropped component's persisted state before dest…
dawsontoth b3951ce
fix(deploy): apply the live-symlink rule to revert recovery, and stop…
dawsontoth 5ecc7d9
fix(deploy): keep a recovered displaced release addressable, and repo…
dawsontoth b13467e
fix(deploy): prove a parked backup belongs to the live release before…
dawsontoth b533ba5
fix(deploy): record the revert's commit as a fact, and stop losing re…
dawsontoth 1a4cfc5
Merge main into the two-phase deploy branch (#2066 now squash-merged)
dawsontoth a56c34f
feat(deploy): the origin owns the deployment row, and separated phase…
dawsontoth 4bac451
fix(deploy): restore peer crash evidence, and stop the untracked fall…
dawsontoth e818f37
fix(deploy): make the one-shot escape hatch actually safe, and classi…
dawsontoth c19e026
fix(deploy): send peers the buffered payload, not the stream ingest a…
dawsontoth 12ab618
refactor(deploy)!: drop the peer coordination protocol; keep the per-…
dawsontoth ee2234a
fix(deploy): clean up what the protocol split orphaned
dawsontoth 29c86f6
fix(deploy): trust local activation evidence over the row, and stop v…
dawsontoth c6834cb
fix(deploy): make revert's precondition failures client errors, and s…
dawsontoth f3d1a32
fix(deploy): stop a dropped component outliving its mount, and keep r…
dawsontoth 080d85a
refactor(deploy): send #2301's code with #2301, restore the coverage …
dawsontoth File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.