mirror of
https://github.com/Studio-Saelix/sencho.git
synced 2026-08-13 20:27:22 +00:00
fix(fleet): detect updates via GitHub Releases instead of gateway self-comparison (#454)
* fix(fleet): detect updates via GitHub Releases instead of gateway self-comparison The fleet update check compared each node's version against the gateway's own version, so the local node could never appear outdated. Now fetches the actual latest release from GitHub Releases API with a 30-minute in-memory cache and thundering-herd protection. The Recheck button invalidates this cache via ?recheck=true to force a fresh lookup. * docs(fleet): update docs to reflect GitHub Releases version detection Replace "Gateway version" references with "Latest version" to match the new label. Document that version comparison uses the latest GitHub release rather than the gateway's own version, and that Recheck refreshes the cached latest version.
This commit is contained in:
@@ -139,10 +139,10 @@ Click **Check Updates** in the header to open the Node Updates modal. This lets
|
||||
The modal shows:
|
||||
|
||||
- **Summary cards** at the top: counts of nodes that are Up to date, have updates Available, are currently Updating, or have Failed
|
||||
- **Gateway version** label showing your primary instance's version
|
||||
- **Latest version** label showing the newest available Sencho release (checked via GitHub Releases, cached for 30 minutes)
|
||||
- **Filter** search box to find specific nodes
|
||||
- **Node table** with columns: Node name, Type, Current version, Latest version, and Status (either an "Up to date" badge or an "Update" button)
|
||||
- **Recheck** button to re-scan for available updates
|
||||
- **Recheck** button to refresh the latest version from GitHub and re-scan for available updates
|
||||
- **Update All** button to trigger updates on all remote nodes that have a pending update
|
||||
|
||||
When you click **Update** on a remote node, Sencho sends the update command to the remote instance. The remote pulls the latest Docker image, then spawns a short-lived helper container that performs the compose recreate. The node restarts with the new version, and the status badge transitions from "Updating" to "Updated" once the gateway detects the version change.
|
||||
@@ -178,7 +178,7 @@ Once the remote node is reachable and running a current Sencho version, its vers
|
||||
|
||||
The **Update All** button only triggers updates on remote nodes that:
|
||||
|
||||
1. Report a valid version lower than your primary instance's version
|
||||
1. Report a valid version lower than the latest available Sencho release
|
||||
2. Support the self-update capability (requires running in Docker)
|
||||
|
||||
If a remote node's version is unresolvable ("unknown"), the **Update** button on its individual card will still be available, but **Update All** requires both versions to be known for a safe comparison.
|
||||
|
||||
@@ -3,7 +3,7 @@ title: Remote Updates
|
||||
description: Check for outdated nodes and trigger over-the-air Sencho updates from the Fleet View.
|
||||
---
|
||||
|
||||
Sencho can update remote nodes directly from the dashboard. When your primary instance is running a newer version than a remote node, a one-click update pulls the latest image and recreates the container automatically.
|
||||
Sencho can update remote nodes directly from the dashboard. When a node is running an older version than the latest available release, a one-click update pulls the latest image and recreates the container automatically. This includes the local (gateway) node itself.
|
||||
|
||||
<Note>
|
||||
Remote updates require a **Skipper** or **Admiral** license.
|
||||
@@ -30,7 +30,7 @@ Open the **Fleet** tab and click **Check Updates** in the header. This opens the
|
||||
The dialog includes:
|
||||
|
||||
- **Summary cards** at the top showing counts of nodes that are Up to date, have updates Available, are currently Updating, or have Failed
|
||||
- **Gateway version** label showing your primary instance's version
|
||||
- **Latest version** label showing the newest available Sencho release
|
||||
- **Filter** search box to find specific nodes by name or type
|
||||
- **Node table** with columns for name, type, current version, latest version, and status
|
||||
|
||||
@@ -38,7 +38,7 @@ Each node's status column shows one of:
|
||||
|
||||
| Status | Meaning |
|
||||
|--------|---------|
|
||||
| **Up to date** badge | Node is running the same version as the gateway |
|
||||
| **Up to date** badge | Node is running the latest available version |
|
||||
| **Update** button | A newer version is available; click to update |
|
||||
| **Updating** badge | The node is pulling the new image and restarting |
|
||||
| **Updated** badge | The node came back online with the new version |
|
||||
@@ -104,7 +104,7 @@ Hovering over a failed or timed-out badge reveals the error message with details
|
||||
<img src="/images/fleet-view/fleet-node-failed.png" alt="Node Updates dialog showing a failed node with retry and dismiss buttons" />
|
||||
</Frame>
|
||||
|
||||
You can also click **Recheck** in the dialog footer to clear all failed and timed-out states at once and fetch fresh version information from every node.
|
||||
You can also click **Recheck** in the dialog footer to clear all failed and timed-out states at once, refresh the cached latest version from GitHub, and fetch fresh version information from every node.
|
||||
|
||||
<Note>
|
||||
Update tracking is stored in memory on the gateway. Restarting the gateway clears all update states, so any stuck "Timed out" or "Failed" badges will resolve on their own after a restart.
|
||||
|
||||
Reference in New Issue
Block a user