feat(upgrade): autonomous nightly auto-update + auto-restart - #6
Merged
Conversation
The nightly upgrade_cycle job now, when enabled, applies updates and restarts: - upgrade.auto_apply=true -> apply the update (backup -> health-check -> auto-rollback on failure; user data never touched). - upgrade.auto_restart=true + ATLAS_SUPERVISED (the LaunchAgent) -> exit so launchd (KeepAlive) respawns on the new code. - Both are OFF by default (opt-in). When auto_apply is off the job only records that an update is available for the Owner to apply from the HUD Upgrade pane. Tests: 45 passing offline (+3: up-to-date noop, check-only when off, apply when on). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Makes ATLAS self-updating: the nightly
upgrade_cyclejob can now apply updates and restart itself, so new code lands with zero clicks.Behavior
upgrade.auto_apply: true→ the nightly job applies an available update via the existing safe path: backup →git reset --hard origin/main→ health-check (pytest) → auto-rollback on failure. Per-user data is never touched.upgrade.auto_restart: true+ATLAS_SUPERVISED(set by the LaunchAgent) → the job exits so launchd (KeepAlive) respawns ATLAS on the new code.auto_applyoff, the job just records that an update is available for the Owner to apply from the HUD Upgrade pane (unchanged behavior).Why gated + supervised
Tests
45 passing offline (+3): up-to-date no-op, check-only when the switch is off, and applies-with-confirm when on (no real git/restart — updater + settings are monkeypatched).
🤖 Generated with Claude Code