Sync the self-hosting stack
This commit is contained in:
@@ -9,6 +9,36 @@ one of them changed. An entry says which artefact and which version, so `web 0.1
|
|||||||
Every version published to a channel appears here. Nothing is written from memory afterwards: a build
|
Every version published to a channel appears here. Nothing is written from memory afterwards: a build
|
||||||
cannot be published without its entry.
|
cannot be published without its entry.
|
||||||
|
|
||||||
|
## 2026-08-27 — A machine could show Offline while you were using it `api 0.95.0` `web 0.121.0`
|
||||||
|
|
||||||
|
**Only affects deployments running more than one copy of the api.** On Docker Compose this cannot
|
||||||
|
happen and there is nothing here for you beyond taking the build.
|
||||||
|
|
||||||
|
An agent could sit in the list marked **Offline** while its last heartbeat was seconds old and a
|
||||||
|
terminal was open on it. The machine was fine throughout — it was the row that was wrong, and it
|
||||||
|
stayed wrong until that machine happened to reconnect, which for one that never drops is never.
|
||||||
|
|
||||||
|
It took a restart to start. When an api replica stops it closes its agents' sockets and records
|
||||||
|
them as offline, which is true of the sockets it just closed. An agent notices immediately and
|
||||||
|
reconnects to another replica in milliseconds, and that replica records it as online — then the
|
||||||
|
stopping one's bookkeeping ran and overwrote it. Whichever machines happened to reconnect inside
|
||||||
|
that window were left marked offline for good.
|
||||||
|
|
||||||
|
Two things changed so that it cannot stick. A replica shutting down now checks whether each machine
|
||||||
|
has already been picked up elsewhere and leaves those alone. And a heartbeat arriving on a socket
|
||||||
|
repairs a row that claims the machine is gone — so any window left over closes itself within the
|
||||||
|
minute, without restarting anything.
|
||||||
|
|
||||||
|
**A machine that is revoked or waiting for approval is never changed by this.** Those are decisions
|
||||||
|
you made, and a heartbeat is not one.
|
||||||
|
|
||||||
|
**And the list no longer disagrees with the machine's own page.** The page has always reported
|
||||||
|
whether a socket is attached right now; the list printed the stored status instead, so the two could
|
||||||
|
say different things about the same machine. When they disagree the list now leads with the live
|
||||||
|
connection and marks the row as catching up. The opposite case is unchanged: a machine that claims
|
||||||
|
to be online with no socket attached still reads **Online · reconnecting**, because there the stored
|
||||||
|
value is the one over-promising and you want to see it.
|
||||||
|
|
||||||
## 2026-08-27 — Redis can survive losing a node `api 0.94.0`
|
## 2026-08-27 — Redis can survive losing a node `api 0.94.0`
|
||||||
|
|
||||||
**Nothing to do on Docker Compose.** Every setting below is optional and absent by default, and an
|
**Nothing to do on Docker Compose.** Every setting below is optional and absent by default, and an
|
||||||
|
|||||||
Reference in New Issue
Block a user