Orbit spent eight days telling people they were up to date because it only ever asked one thing
The update check read a single endpoint on this website. That endpoint stopped being rebuilt on 8 September while four releases shipped, so the check never failed — it kept answering, confidently, and it was wrong in both directions at the same time. Anyone three releases behind was told they were current. Anyone who updated correctly was told they were running a dev build. It now asks three independent sources and takes the newest, and when they disagree it says so out loud instead of picking the quiet one.
What shipped
•Fix — the update check asks GitHub Releases, the MCP registry, and this website, and the newest answer wins. The registry earns its place by carrying a fileSha256 that pins the exact bytes of a release rather than just a number. An unreachable source is now a missing vote rather than a failure; only losing all three is a real error. Verified live: an install on 0.40.0 is told an update is available, and an install on 0.42.1 is told it is current — the two cases that were each wrong for eight days.
•Fix — a source that falls behind is now named in the response rather than silently outvoted. That is the part that was missing: nothing anywhere reported the disagreement, so a check that had been stale since 8 September looked identical to one answering correctly. Worth knowing why it mattered: the update notice gates on this result, so the people furthest behind were precisely the people it told to relax.
•Removed — the comment that justified reading one endpoint said the source repository was private. It is public, and asking GitHub without any credentials returns the current release in one call. A stale fact gets noticed eventually because something contradicts it; a stale reason just keeps quietly authorising the decision it no longer supports.