[sergo] Sergo Report: CACHE-STALE-RECONCILE(43to67-gap)+toolchange-audit - 2026-08-29 #56822
Closed
Replies: 1 comment
|
This discussion has been marked as outdated by Sergo - Serena Go Expert. A newer discussion is available at Discussion #57053. |
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.
Sergo Report: CACHE-STALE-RECONCILE(43→67-gap) + Tool-Change Audit — 2026-08-29
Run: §33232102820
Executive summary
This run's memory cache (last written 2026-07-08, "R60") was ~7 weeks stale relative to the repo. The custom-linter registry grew from 43 → 67 analyzers in that gap via other bots, and
cmd/linters/main.gowas refactored so the old registry-drift detector no longer works. Separately, this sandbox has no Go or Node.js installed, which disables every Serena tool that depends on a language server — including all three brand-new tools added this cycle. Given both the saturation ofpkg/lintersby ~8 other recurring bots and the loss of compile/LSP-backed verification, I did not find a finding strong and independently verifiable enough to file as a new issue. 0 issues created, 1missing_toolreported.Serena tool-roster change (23 → 24)
find_declaration,find_implementations,get_diagnostics_for_file,open_dashboard,rename_memory,replace_in_files,safe_delete_symbolcheck_onboarding_performed,find_file,list_dir,think_about_collected_information,think_about_task_adherence,think_about_whether_you_are_donefind_symbol,find_referencing_symbols,rename_symbol,replace_symbol_body,insert_before/after_symbol) failed with "language server manager is not initialized" — root cause:goandnodeare absent from this container. Onlysearch_for_patternand the memory tools worked. Reported viamissing_tool.go build/go test/runcmd/lintersdirectly, which blocked the enforce-readiness / SuggestedFix-compile-correctness style verification this workflow has historically used (e.g. the sg60a1 → Linter precision (regression): the syntactic stdlib-package-match migration never landed — 5 holdouts remain, 3 CI-enforced (#40 [Content truncated due to length] #43934 finding). All findings below are static Grep/Read review only.Strategy: 50/50 split
sergoissues, re-detect the linter registry size and detection method, and confirm whether the R60 finding (sg60a1/writebytestring) actually landed.grep -c Analyzer cmd/linters/main.go) is now permanently broken (main.go was refactored tomultichecker.Main(linters.All()...)), audit and replace it, then spot-check a handful of linters added during the untracked gap for the bug classes this workflow has previously found (message hardcoding, package-identity syntactic matching, nolint-wiring gaps, doc/registry drift).Findings detail
cmd/linters/main.gono longer lists analyzers — it callslinters.All()from a newpkg/linters/registry.go.grep -c Analyzer main.gonow returns 0. The correct method going forward: count*.Analyzer,entries inregistry.go'sallAnalyzersslice (67) and cross-checkpkg/linters/doc.go's// All N active analyzers:header (also 67 — no drift).doc_sync_test.gonow has an automated guard tyinglinters.All()↔cgo.ymlLINTER_FLAGS↔notYetEnforced(landed via doc-sync guard is incomplete: {registry, spec_test} and {doc.go, README} are two disconnected clusters — a linter present in cod [Content truncated due to length] #47190/Registry-CI-enforcement drift: no automated guard ties linters.All() to cgo.yml LINTER_FLAGS #55628/Guard custom linter registry-to-CI enforcement drift #55636), so this class of drift is much better guarded than in the R44–R60 era.sergoissues confirmed, not duplicated: errorfwrapv: BasicLit-only format-string check misses concatenated fmt.Errorf calls, hides a real percent-v vs percent-w bug #56533 (errorfwrapvmisses concatenated-format-stringfmt.Errorfcalls) and contextcancelnotdeferred is enforced on native CI but absent from wasm LINTER_FLAGS - the registry-drift guard cannot detect it #55932 (contextcancelnotdeferredenforced natively but missing from the wasmLINTER_FLAGS, so the drift guard can't see it). Both are distinct from anything found this run.walkfuncerrshadow: correctly usesastutil.IsPkgSelector(pass, sel, "path/filepath")before matchingWalk/WalkDir.httpstatuscode: fully type-resolved (named-type name heuristic, struct-field heuristic, plain-var heuristic all gated behindpass.TypesInfo).ioutildeprecated: zero productionio/ioutilusages found repo-wide (both qualified and dot-import paths are type-checked viapass.TypesInfo).contextcancelnotdeferred/fileclosenotdeferred/manualmutexunlock: don't importinternal/nolintdirectly, but suppression is handled by the sharedresourcetrackerframework they're built on — not a gap.ssljson: correctly has nonolintwiring — it validates staticssl.jsonconfig files, not suppressible source lines.lenstringzero's hardcoded-message fix (issue lenstringzero: diagnostic message hardcodes literal "s"/"len(s)" text, misreporting every violation's actual expression #54717) is actually present in code, confirming this repo's team does land and close fixes reliably (not just phantom-closes).Metrics
missing_toolreportsNext-run focus
go/nodeavailability first. If restored, resume the SuggestedFix compile-correctness probe (thesg60a1bug class — named-type vs exact-type assignability in autofixes) acrossbytesbufferstring,httpstatuscode,nilctxpassed,mapclearloop,mapdeletecheck— none of these have had that specific check yet.pkg/lintersis now mined continuously by ~8 other bots (linter-miner, deep-report, lint-monster, doc-sync, duplicate-code, Code Quality, test-parallel, spec-librarian) — checkgh api search/issues -f q='repo:github/gh-aw <linter-name> in:title,body'before spending time auditing any single linter, coverage is very high already.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