Repository navigation
[sergo] Sergo Report: Deliver-Tested-PR (readerstringconv enforcement) - 2026-10-29 #72857
Closed
Replies: 1 comment
|
This discussion has been marked as outdated by Sergo - Serena Go Expert. A newer discussion is available at Discussion #73100. |
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
This run operated in deliver-a-tested-PR mode rather than the usual file-1-3-issues mission: implement and validate the best evidence-backed improvement directly instead of filing/refiling an issue.
Reconcile found 2 open
sergo-labeled issues (not 3 as R110 predicted) plus one important correction:#72308(sg109a1, manualpathconcat paren_unwrap_gap) shows as still open on GitHub, but its underlying fix is already live onmainvia commitd3124f02- PR #72566 that proposed it showsstate=CLOSED/mergedAt=nullingh pr view, yet the committed code matches the PR diff exactly (verified by readingmanualpathconcat.godirectly). PR state alone is not reliable proof of whether a fix landed; this run now treats it as resolved without re-touching it (no close-issue tool is available to this workflow).Key metrics / issues
#72308sg109a1 manualpathconcat paren_unwrap_gapmain(commitd3124f02); issue left open (no close tool available), not re-worked#71997sg108a1 readerstringconv enforce-readiness#72309sg109a2 manualpathconcat + packagelevelmutableslicemap never CI-enforcedThis run's PR (branch
sergo/readerstringconv-enforce-r111): fixes the 3 known production call sites and wires CI enforcement forreaderstringconvin one commit.pkg/cli/secret_set_command.go:283-strings.NewReader(string(body))->bytes.NewReader(body)(bodyalready[]bytefromjson.Marshal).pkg/workflow/work_queue_memory.go:159-strings.NewReader(string(encoded))->bytes.NewReader(encoded).pkg/cli/experiments_fetch.go:88-strings.NewReader(string(data))->bytes.NewReader(data)(dataalready a[]byteparameter).-readerstringconvto both native and wasmLINTER_FLAGSin.github/workflows/cgo.ymlin the same commit, avoiding the recurringci_target_asymmetryclass seen previously withcontextcancelnotdeferred/consolestderr.Why readerstringconv over the other open issue (sg109a2)
#72309asks to addmanualpathconcatandpackagelevelmutableslicemapto CI enforcement.manualpathconcat's known bug is now fixed (see above), butpackagelevelmutableslicemapflags package-level slice/map mutation anywhere in the repo - a pattern with an unknown, potentially large violation surface across a codebase this size.go build/go test/go version/make fmtwere all denied outright by this run's Bash sandbox (consistent with R110's experience), so the actual custom linter could not be executed to confirm zero or an acceptable/triaged set of violations before enabling it in CI. Enabling an unverified repo-wide analyzer blind risks breaking CI immediately.readerstringconv's scope, by contrast, was bounded to exactly 3 named production call sites (re-confirmed via a fresh repo-wideGrepsweep - all other matches are in_test.gofiles, the linter's own testdata, or a doc comment, all correctly out of scan scope) plus one CI config line, making it verifiable without a Go toolchain.Validation (sandbox limitations)
go build/go test/go versionwere denied outright by the Bash permission layer this run. Validated instead via:serena get_diagnostics_for_file(gopls-backed, language server confirmedready) on all 3 modified files - zero compile/type errors (2 pre-existing, unrelated hints remain inexperiments_fetch.go, predating this change).stringsis still used elsewhere in all 3 files andbyteswas only added where missing (work_queue_memory.goalready imported it).Grepre-scan for bothreaderstringconv-flagged call shapes, confirming no other production sites exist that CI enforcement would newly catch.A maintainer should run
go test ./pkg/cli/... ./pkg/workflow/... ./pkg/linters/readerstringconv/...and the native+wasmmake golint-customtargets for a real green/red signal, since this sandbox could not execute the Go toolchain.Next actions
golint-customtargets on the new PR before merge.#72308for closure once confirmed the fix is genuinely onmain(already verified this run).#72309(packagelevelmutableslicemap + manualpathconcat CI enablement) remains open, blocked on a future run having workinggotoolchain access to verify the violation surface before enabling blind.References:
All reactions