[sergo] Sergo Report: GoLSP-Outage-Fallback-Manual-Audit - 2026-08-22 #54719
Closed
Replies: 1 comment
|
This discussion was automatically closed because it expired on 2026-08-23T04:16:04.295Z.
|
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.
Executive summary
Run §32550272009 picked up ~45 days after the last recorded run (R60, 2026-07-08). The Serena Go language server was unavailable for the entire run ("go: Go is not installed", despite
activate_projectreportinggoas an active language server), so all symbol/reference/diagnostic tools fell back to manual Grep/Read auditing. Two confirmed, evidence-backed issues were filed. This was reported as amissing_toolgap.Tool updates
find_declaration,find_implementations,get_diagnostics_for_file,open_dashboard,rename_memory,replace_in_files,safe_delete_symbol; removedcheck_onboarding_performed,find_file,list_dir,think_about_collected_information,think_about_task_adherence,think_about_whether_you_are_done).missing_tool(first attempt used an invalid field name and was rejected with a schema error; corrected and resubmitted successfully).cmd/linters/main.gono longer exists. The registry now lives atpkg/linters/registry.go(67 import lines), cross-checked againstpkg/linters/doc.go's header ("All 67 active analyzers") — confirmed in sync.Strategy
Given the LSP outage, the planned 50/50 cached-reuse/new-exploration split was adapted mid-run: cached-reuse effort went into re-checking previously-flagged bug classes (hardcoded diagnostic messages, exact-string-type assertions) against the newly-grown linter set, while new-exploration covered linters not yet individually audited.
Findings
2 confirmed issues filed (click to expand)
lenstringzero: diagnostic message hardcodes literals/len(s)instead of interpolating the real matched expression — every reported violation shows misleading placeholder text (e.g. reportslen(s) == 0forlen(username) == 0). This is the third occurrence of this exact bug class in the codebase (previously fixed inbytescomparestringandstringbytesroundtrip). Not yet CI-enforced, so it went unnoticed.stringbytesroundtrip:isExactStringis a no-op alias ofisStringType— it currently gives the right answer only because of which type snapshot each caller happens to pass in (raw vs..Underlying()-resolved). This is the exact same gap whose absence caused thewritebytestringbug fixed assg60a1last run (a shipped, non-compiling autofix). Currently latent since noSuggestedFixuses this branch yet, but flagged before a future contributor adds one.Reviewed clean, no issue filed
mapdeletecheck,seenmapbool,httprespbodyclose,contextcancelnotdeferred(suppression wiring confirmed correct via the sharedresourcetrackerabstraction — an initial suspected gap turned out to be a false alarm),ssljson(legitimately filesystem-based, not a per-file AST linter),sprintferrdot, plus a hardcoded-message grep sweep acrossmanualpathconcat,stringsconcatloop,httpstatuscode,packagelevelmutableslicemap,generatedyamlheredoc,errorfwrapv,hardcodedfilepath.Tasks generated
lenstringzero's message to interpolate the real expression viaastutil.NodeText, matching the pattern already used correctly by sibling linters.stringbytesroundtrip.isExactStringits own logic (distinguishing*types.Basicfrom*types.Named) independent ofisStringType, with a named-string-type regression test.Metrics
Historical context
sergo-labeled issues closed in that window (not itemized this run — too large to reconcile token-efficiently, targetedgh api searchwas used per candidate instead).errorfwrapv,excessivefuncparams,generatedyamlheredoc,hardcodedfilepath,httprespbodyclose,httpstatuscode,largefunc,lenstringzero,manualpathconcat,packagelevelmutableslicemap,seenmapbool,sprintferrdot,ssljson,stringsconcatloop.Recommendations
Next-run focus
excessivefuncparams,largefunc,generatedyamlheredoc,hardcodedfilepath,manualpathconcat,packagelevelmutableslicemap,stringsconcatloop.References:
All reactions