From 6a977a487a09a6f9b5beec0816660e9bedb053c4 Mon Sep 17 00:00:00 2001 From: SamNet-dev Date: Tue, 10 Feb 2026 21:25:44 -0600 Subject: [PATCH] =?UTF-8?q?fix:=20update=20checker=20=E2=80=94=20proper=20?= =?UTF-8?q?badge=20logic=20for=20missing=20hash=20baseline?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When no .update_hash exists, compare VERSION strings to distinguish fresh installs (same version = save baseline, no badge) from old installs pre-hash-support (different version = show badge). --- conduit.sh | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/conduit.sh b/conduit.sh index 250efa1..56eb6f2 100644 --- a/conduit.sh +++ b/conduit.sh @@ -8756,10 +8756,24 @@ SVCEOF local _stored_hash="" [ -f "$INSTALL_DIR/.update_hash" ] && _stored_hash=$(<"$INSTALL_DIR/.update_hash") if [ -z "$_stored_hash" ]; then - # No stored hash (curl|bash install) — save baseline, no badge - echo "$_remote_hash" > "$INSTALL_DIR/.update_hash" 2>/dev/null || true - rm -f /tmp/.conduit_update_available - elif [ "$_remote_hash" != "$_stored_hash" ]; then + # No stored hash — check version to distinguish fresh vs old install + local _rv=$(grep -m1 '^VERSION=' "$_utmp" | cut -d'"' -f2) + if [ -n "$_rv" ] && [ "$_rv" = "$VERSION" ]; then + # Same version = likely fresh install — save baseline, no badge + echo "$_remote_hash" > "$INSTALL_DIR/.update_hash" 2>/dev/null || true + rm -f /tmp/.conduit_update_available + else + # Different version = old install without hash — show badge + if [ -n "$_rv" ]; then + echo "v${_rv}" > /tmp/.conduit_update_available + else + echo "new" > /tmp/.conduit_update_available + fi + fi + rm -f "$_utmp" + exit 0 + fi + if [ "$_remote_hash" != "$_stored_hash" ]; then local _rv=$(grep -m1 '^VERSION=' "$_utmp" | cut -d'"' -f2) if [ -n "$_rv" ] && [ "$_rv" != "$VERSION" ]; then echo "v${_rv}" > /tmp/.conduit_update_available