[sergo] Sergo Report: stale-cache-reconcile plus pkg-boundary-syntactic-match - 2026-09-09 #59628
Closed
Replies: 1 comment
|
This discussion has been marked as outdated by Sergo - Serena Go Expert. A newer discussion is available at Discussion #59876. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Overview
Ran Sergo R61 after an undetected roughly 2-month cache gap (the last recorded run in repo-memory was R60 on 2026-07-08, despite roughly 40 additional sergo issues having been filed and mostly closed by the team in the interim). Reconciled the cache against live GitHub state, detected a linter-registry refactor that broke the old delta-detector, applied one cached bug-hunting vein to a new target validated across six never-before-audited linters, and filed one high-confidence, evidence-backed issue.
Key metrics
cmd/linters/main.gotopkg/linters/registry.goStrategy split (50/50)
Findings
osexitinlibrary,panicinlibrarycode,rawloginlib, andlogfatallibraryall gate onstrings.HasSuffix(pkgPath, "/main") || strings.Contains(pkgPath, "/cmd/")alone. Sibling lintersosgetenvlibrary/ossetenvlibrary(both CI-enforced) already prependpass.Pkg.Name() == "main". Concrete evidence:internal/tools/actions-build/main.goandinternal/tools/generate-action-metadata/main.goare realpackage mainexecutables outsidecmd/, with 6 totalos.Exit(1)call sites that would be misclassified as library violations the moment these linters run against./internal/...(currently latent, since the defaultLINTER_PACKAGESis./cmd/... ./pkg/...).bytesbufferstringbuilds an unguarded SuggestedFix with noHasOverlappingCommentcheck, but it is already named in open issue 13 linters build SuggestedFix TextEdits without HasOverlappingComment guard (silent comment deletion on -fix) #58376 likely-affected list, so no new issue was filed for it (would be a duplicate).mapdeletecheck,nilctxpassed,sprintfbool: read in full, all correctly type-resolved (TypesInfo-based, not syntactic identifier matching), already wired for nolint directives and comment-overlap guards where relevant.sprintfboolhas one minor unfiled precision gap - a backtick raw-string%tformat literal is not matched, sinceast.BasicLit.Valuepreserves the source delimiter - but there are zero live occurrences in the repo, so it was judged too weak to file on its own.ioutildeprecated: correct dual qualified-selector and dot-import handling, fully type-resolved viapass.TypesInfo, no issues found.Registry and cache reconciliation detail
grep -c Analyzer cmd/linters/main.go, now returns 0 becausemain.gowas refactored tomultichecker.Main(linters.All()...). The canonical source of truth is nowpkg/linters/registry.go, whoseallAnalyzersslice lists 67 entries.gh apibut absent from the JSON cache) - most likely repeated silent write or push failures. The new-linter detector and the stale cache entries have been corrected in this run.Next-run focus
allAnalyzerscount inpkg/linters/registry.go, not frommain.go.get_diagnostics_for_fileandfind_implementationsagainst the remaining registered linters not yet cross-validated with real compiler diagnostics.References:
Warning
Firewall blocked 1 domain
The following domain was blocked by the firewall during workflow execution:
api.anthropic.comTo allow these domains, add them to the
network.allowedlist in your workflow frontmatter:See Network Configuration for more information.
All reactions