Repository navigation
feat(updates): release check, backups and one-click upgrade through a machine agent - #260
Merged
Merged
Conversation
… machine agent Lens checks GitHub for a new release once a day, backs the database up and installs a release from the API: install.sh sets up a small agent on the machine (systemd path unit on Linux, launchd on a Mac) that watches .lens-control/inbox, reruns install.sh for the requested release and writes how it went back for the web app. Backups can be listed, taken, downloaded and deleted. __version__ now follows releases. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XturGhybJzfgZvbFxfNB2o
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XturGhybJzfgZvbFxfNB2o
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XturGhybJzfgZvbFxfNB2o
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XturGhybJzfgZvbFxfNB2o
This was referenced Oct 10, 2026
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.
Requested by Adeel · project thread
Description
Before: Lens never said a new release was out, and upgrading meant running the install line again in a terminal. Backups existed only as
lens backup.After: Lens checks GitHub for the latest release once a day and the API reports it (
GET /api/v1/admin/updates).POST /admin/updates/upgradebacks the database up, then has the machine install the release: install.sh now sets up a small upgrade agent (a systemd path unit on Linux, a launchd agent on a Mac) that watches<install>/.lens-control/inbox, reruns install.sh for that release and writes the status and log back, which the API shows while Lens restarts. Backups can be listed, taken, downloaded and deleted (/admin/backups). With no agent, the API gives the one line to run instead. The web app's banner and Settings page follow in their own PR.How:
app/domain/updates.py(check, agent hand-over, optionalupdates.auto_install, off by default),app/domain/backups.py,packaging/host/lens-upgrade.sh(accepts only a vX.Y.Z tag or the install's own branch), the control folder mounted as/controlin Compose and microsandbox.__version__was stuck at 0.3.0; it is now 0.6.0 and bumped by release.py. The Install workflow now drops an upgrade request and checks the agent installs it end to end.Motivation and Context
Adeel asked for upgrade notifications plus backup and upgrade from the web app, so nobody has to see a terminal again. Docs:
docs/updates.md.Types of changes
!in the title)Checklist:
make hookschecks it on commit).docs/accordingly.## UnreleasedinCHANGELOG.md.🤖 Generated with Claude Code
https://claude.ai/code/session_01XturGhybJzfgZvbFxfNB2o
Generated by Claude Code