From 8be8fc23fac5af901a10da54dfa0388c7dad09b5 Mon Sep 17 00:00:00 2001 From: Aleksandr Misonizhnik Date: Fri, 15 May 2026 03:08:50 +0300 Subject: [PATCH] fix(cli): Suppress update banner after running update command PersistentPreRunE always spawned an async check that read the running binary's version. During `opentaint update`, that version is still the OLD one, so the check queued an "update available" hint for the very version being installed; PersistentPostRun then printed the banner after the successful update, telling the user to run the command they just ran. Skip the async check entirely when the subcommand is `update`, so no hint is ever queued for this command. --- cli/cmd/root.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cli/cmd/root.go b/cli/cmd/root.go index 4b15882a1..b074efa0e 100644 --- a/cli/cmd/root.go +++ b/cli/cmd/root.go @@ -53,8 +53,11 @@ var rootCmd = &cobra.Command{ // Reconcile install-tier version marker if needed (lightweight: a few Stat calls). utils.ReconcileInstallMarker() - // Start async update check (non-blocking, at most once per day) - if !globals.Config.Output.Quiet { + // Start async update check (non-blocking, at most once per day). + // Skip for the update command itself: the running process holds the OLD + // version, so the check would queue an "update available" hint for the + // version the user is in the process of installing. + if !globals.Config.Output.Quiet && cmd.Name() != "update" { go checkForUpdateAsync() }