From 5d62f5a11a2b77d642fd2de5a8065d0a30632d5e Mon Sep 17 00:00:00 2001 From: Mehran Seifalinia <70560051+Mehran-Seifalinia@users.noreply.github.com> Date: Sat, 13 Jun 2026 12:05:29 +0330 Subject: [PATCH] Fix critical false negative in `check` command on first run - Add index readiness check before performing package checks - If no successful sync yet, wait for background index download using WaitBackgroundSync() - Prevents returning "clean" or "not_found" while index is still downloading --- internal/cli/check.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/internal/cli/check.go b/internal/cli/check.go index 4f406d6..7115078 100644 --- a/internal/cli/check.go +++ b/internal/cli/check.go @@ -34,6 +34,18 @@ func runChecks(cmd *cobra.Command, args []string) error { return runIDLookups(cmd, advisoryIDs) } + if intelProvider != nil { + st := intelProvider.SyncStatus() + if st.LastSuccess.IsZero() { + if _, err := withSpinner("Downloading malicious package index…", func() (struct{}, error) { + intelProvider.WaitBackgroundSync() + return struct{}{}, nil + }); err != nil { + return err + } + } + } + svc := check.NewService(intelProvider, registry.NewClient(userAgent(), appCfg.Timeout), appCfg.CacheDir) results := make([]check.Result, len(pkgRefs))