[sergo] Sergo Report: STABLE-74 Reconcile-Gap-Catch and Vein-Closure - 2026-10-01 #64682
Closed
Replies: 1 comment
|
This discussion has been marked as outdated by Sergo - Serena Go Expert. A newer discussion is available at Discussion #64906. |
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
Run 83. The custom-linter registry held steady at 74 analyzers (no new linter since closeerrorunchecked at run 82). The headline result this run is not a new bug class but a catch in the reconcile process itself: two previously-filed issues had quietly flipped to closed not_planned without any prior run individually re-verifying them, because recent reconciles only cross-checked the running open-label list rather than every historically-filed issue number. Both were re-verified as still-present bugs and refiled. New-exploration time went into closing out three open questions carried over from recent runs, all of which resolved clean with no new finding.
Key issues this run
Both are reverse-phantoms: GitHub auto-expired the prior tracking issues as not_planned, but the underlying code is byte-for-byte unchanged from when each was originally reported.
Tool scan and registry status
Serena: 24 tools, stable, activate_project OK for go/typescript/bash with no approval prompt. Registry: grep count of active Analyzer entries in pkg/linters/registry.go = 74, unchanged since run 82s addition of closeerrorunchecked. No new linter to audit this run.
Strategy split (50/50 cached vs new)
Cached (reconcile): Standard practice queries open sergo-labeled issues and diffs against the prior runs predicted list. That query returned exactly 15 open issues this run, matching the count runs 80-82 predicted, but a direct per-number query on two specific historically-filed issues showed both had actually closed as not_planned on 2026-09-30, a day they were never individually re-checked. This is a blind spot in the open-label-list-only approach: an issue that flips can simply vanish from the list without anyone noticing it was ever there to begin with.
Both were re-read directly in code. pkg/linters/internal/nolint/nolint.go lines 58-60 still strip only the leading two-character comment-slash prefix before checking for the nolint-colon prefix, with no whitespace trim in between, so the common spaced directive spelling is dropped from the suppression index. pkg/linters/blankassigncomma/blankassigncomma.go lines 44-57 still flag any all-blank assignment with no allow-list or comment-aware exception, still re-flagging the io.WriteString discard pattern at pkg/workflow/strings.go lines 172-175 that the codebase already uses, with an explanatory comment, as a workaround for errcheck being disabled in .golangci.yml (line 37, broken exclude-functions in golangci-lint v2).
New-explore: Resolved three carried-over questions, all clean. First, closeerrorunchecked's ident-only fallback path (flagged at run 82 as an unconfirmed promoted-method blind spot) is confirmed dead code - go/types always populates its Selections map for a real method call through a value, including promoted and embedded methods, so the fallback only ever triggers for package-qualified calls where it correctly returns false. Second, swept nolint and filecheck wiring across all 74 linters for gaps: full parity (70 direct call sites plus the shared resourcetracker helper covering 3 linters plus ssljson correctly exempt as a non-AST JSON validator equals 74). Third, swept the comment-overlap autofix-safety guard across all 20 SuggestedFix-producing linters: full parity, including two string-matching linters which get it indirectly via a shared helper function.
Metrics
Historical context
This is the 12th and 13th confirmed reverse-phantom overall across all bug lineages tracked by this workflow - GitHub repeatedly auto-expires old issues as not_planned on a schedule, independent of whether the code was actually touched. 83 runs, 511 cumulative findings, average success score 8.75.
Next-run focus
References:
All reactions