From 4724ba65c2b888f22059d82fca449ae61b298272 Mon Sep 17 00:00:00 2001 From: Amolith Date: Sat, 22 Nov 2025 11:13:47 -0700 Subject: [PATCH] refactor(update): treat prereleases as latest Assisted-by: Claude Sonnet 4.5 via Crush --- internal/update/update.go | 16 ++-------------- internal/update/update_test.go | 2 +- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/internal/update/update.go b/internal/update/update.go index a813fe3516dc28233e3df01c77d4d62d4d97db18..c1be482945cdad76688ba5115bd4fb15b45ad150 100644 --- a/internal/update/update.go +++ b/internal/update/update.go @@ -36,21 +36,9 @@ func (i Info) IsDevelopment() bool { // Available returns true if there's an update available. // -// If both current and latest are stable versions, returns true if versions are -// different. -// If current is a pre-release and latest isn't, returns true. -// If latest is a pre-release and current isn't, returns false. +// Returns true if the current and latest versions are different, treating +// pre-releases as valid latest versions. func (i Info) Available() bool { - cpr := strings.Contains(i.Current, "-") - lpr := strings.Contains(i.Latest, "-") - // current is pre release && latest isn't a prerelease - if cpr && !lpr { - return true - } - // latest is pre release && current isn't a prerelease - if lpr && !cpr { - return false - } return i.Current != i.Latest } diff --git a/internal/update/update_test.go b/internal/update/update_test.go index 87e3849eb5a9ddc06b1e22c15c0bdde0b7739085..5496f70299d17abea2335a48fcfa1c865e7f192e 100644 --- a/internal/update/update_test.go +++ b/internal/update/update_test.go @@ -19,7 +19,7 @@ func TestCheckForUpdate_Beta(t *testing.T) { info, err := Check(t.Context(), "v0.10.0", testClient{"v0.11.0-beta.1"}) require.NoError(t, err) require.NotNil(t, info) - require.False(t, info.Available()) + require.True(t, info.Available()) }) t.Run("current is also beta", func(t *testing.T) {