Repository navigation
[sergo] Sergo Report: Clean-Slate Reconcile + New-Linter Day-One Audit - 2026-10-22 #71027
Closed
Replies: 1 comment
|
This discussion was automatically closed because it expired on 2026-10-23T04:03:21.827Z.
|
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 §39719030477. Serena go/typescript/bash language servers ready (gopls healthy, checked first per the R102 hard-stop lesson). Reconcile found the entire R103 backlog landed, two long-running CI-asymmetry sagas genuinely closed, and 2 brand-new linters added same-day as R103 that had never been audited. Filed 1 new, well-evidenced issue.
Key metrics
formatintitoa,osisnotexist.sergoissues: 9 -> 0. All of R103 backlog landed (68944,68945,69223,69613,69834,70142 completed; 68590/68591 auto-expired not_planned as usual; sg103a1=contextcancelnotdeferred still enforced on native CI only - wasm LINTER_FLAGS omission unfixed (11th occurrence, lineage #55932) #70770 and sg103a2=sprintferrdot: isErrorDotCall bare CallExpr assertion escapes a parenthesized .Error() call (paren_unwrap_gap) #70771 both completed).Findings
Confirmed fixed (not just labeled closed) - spot-checked directly against
cgo.ymlrather than trusting GitHub state:contextcancelnotdeferrednative/wasm CI omission (11-cycle lineage since contextcancelnotdeferred is enforced on native CI but absent from wasm LINTER_FLAGS - the registry-drift guard cannot detect it #55932) - now present in both native (:1668) and wasm (:1695)LINTER_FLAGS. Saga closed.consolestderrnative-only CI step (consolestderr (78th linter) CI-enforced on native only - omitted from the wasm custom-linters run (ci_target_asymmetry recurrenc #67609) - now has its own step in both native (:1671) and wasm (:1697). Saga closed.New finding - osisnotexist (84th linter, day-one): idiom_reflag_no_allowlist. The linter flags every
os.IsNotExist/IsExist/IsPermission/IsTimeoutcall with no exception for the ubiquitous, fully-safe same-statementos.Stat(...); os.IsNotExist(err)idiom. Sampled 114 live occurrences across 66 production files (excluding tests and the linter own testdata) - every sample checked is the safe, unwrapped, immediate-check shape, not the wrapped-error case the linter rationale targets. Not yet CI-enforced, so filed now to prevent a future 114-site forced rewrite. Filed as issue (see references).Audited clean - formatintitoa (83rd linter, day-one). Correctly reuses the already-paren-safe
astutil.PackageCallhelper, does an exactgo/typesint64-vs-int identity check, and has zero live production occurrences (fully latent, no bug found).Full evidence and sample call sites
osisnotexist safe-idiom samples (all unwrapped, same-statement):
pkg/cli/run_workflow_execution.go:269pkg/parser/import_cache.go:86-87pkg/workqueue/branch_git.go:261,325pkg/cli/mcp_helpers.go:58-59pkg/linters/ssljson/ssljson.go:206-208get_diagnostics_for_filevia Serena confirmedosisnotexist.goitself compiles clean (no gopls diagnostics).Generated task
osisnotexistwith a same-statement allow-list before CI-enforcement, reserving the diagnostic for genuinely wrapped/reassigned errors (issue filed, see references).Historical context
This closes out two patterns that had each reverse-phantomed for years:
ci_target_asymmetry(11 cycles oncontextcancelnotdeferredalone) now has zero known open instances.idiom_reflag_no_allowlistrecurs for the 2nd time (afterblankassigncomma/#64681) - worth a standing day-one check on every new linter going forward alongside the existingparen_unwrap_gapcheck.Next-run focus
Watch for an 85th linter via the
commits?path=pkg/linters/registry.gofast-detector; verify this run issue landed; re-tally open count (expect 0-1).References:
All reactions