Repository navigation
Open
Labels
app/mcpxPackage/app: mcpx (pkgs/ or apps/ in this repo)Package/app: mcpx (pkgs/ or apps/ in this repo)effort/mMedium: expected under 1 day of workMedium: expected under 1 day of workkind/testTest coverage, test infrastructure, or test-only fixesTest coverage, test infrastructure, or test-only fixesmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)Ordinary priority (the default)source/queue-workerFiled or worked by the queue/worker pilotFiled or worked by the queue/worker pilottask/triageQueue packet kind: verify, reproduce, and route this itemQueue packet kind: verify, reproduce, and route this item
Description
Summary
The new mcpx CI lint leg (PR #2718, for #1996) now runs end-to-end and its first full golangci-lint run against pkgs/mcpx (config: pkgs/mcpx/.golangci.yml, v2, standard set + staticcheck checks: [all]) reports 119 pre-existing findings across the module — far beyond the small baseline #1996 assumed (shellcheck 3, gofmt clean). Per #1996's acceptance fallback, these are filed here as a linked follow-up instead of being fixed inside the #1996 slice, and the golangci step of the lint leg is non-blocking (explicit continue-on-error, noted on #1996) until this issue lands.
Evidence
- Run: https://github.com/developing-today/code/actions/runs/41131293079/job/124322587378 (
basic: lint, headc95652abof PR mcpx: CI lint leg (vet, golangci-lint, gofmt, shellcheck, actionlint) + plugin bun test leg (#1996) #2718) - Totals: 119 issues — errcheck 50, staticcheck 50, unused 17, ineffassign 2
- The rest of the leg passes up to golangci:
go vet ./...clean (it runs first in the same step).
Shape of the findings (from the run log)
- errcheck (50): mostly unchecked
Close()/os.WriteFile/os.Removereturns, concentrated ininternal/logging,internal/configtests,internal/runner,internal/openapi,internal/registry,internal/scripting,internal/sdnotify. - staticcheck (50): includes real-signal items — SA1012 nil Context (
internal/mcpclient/http.gox2,internal/preflight/preflight_test.go), SA4000 identical!=operands (internal/refdoc/md_test.go), SA4006 dead value (internal/nearmiss), SA9003 empty branch (internal/nearmiss) — plus many style-class ST1000/ST1016/ST102x/QF100x findings thatchecks: [all]deliberately enables. - unused (17): dead funcs/fields/consts in
internal/cli(runInline),internal/conformancetests,internal/launcher(readName),internal/logging(minfield),internal/mcpclient(errOnce),internal/mcpserver(mayBlockOnClient,isReply),internal/mcpspec(Schema.check),internal/openapi(restfield),internal/pool(Pool.start),internal/preflight(skipSpaceIn),internal/tui(appfield). - ineffassign (2).
Acceptance
- All 119 findings fixed, or individually dispositioned in
pkgs/mcpx/.golangci.yml(exclude rules with a stated reason per rule — no blanket linter disables). - The golangci step in
.github/workflows/mcpx.ymlis blocking again (removecontinue-on-error) and the leg is green. -
go test ./...for pkgs/mcpx stays green in CI.
Acceptance criteria
golangci-lint runagainstpkgs/mcpx(configpkgs/mcpx/.golangci.yml) reports zero findings, or every remaining finding is on an explicit, reviewed exclusion list in the config.- The golangci step of the mcpx lint leg is made blocking (the
continue-on-errorfrom mcpx testing: every formatter and linter in the CI matrix, pinned by the flake (and run the plugin's bun test) #1996 is removed) once the count reaches zero. - No finding is 'fixed' by weakening a check globally without a comment in the config explaining why.
Metadata
Metadata
Assignees
Labels
app/mcpxPackage/app: mcpx (pkgs/ or apps/ in this repo)Package/app: mcpx (pkgs/ or apps/ in this repo)effort/mMedium: expected under 1 day of workMedium: expected under 1 day of workkind/testTest coverage, test infrastructure, or test-only fixesTest coverage, test infrastructure, or test-only fixesmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)Ordinary priority (the default)source/queue-workerFiled or worked by the queue/worker pilotFiled or worked by the queue/worker pilottask/triageQueue packet kind: verify, reproduce, and route this itemQueue packet kind: verify, reproduce, and route this item
Activity
ci(mcpx): golangci-lint step non-blocking until #2836 (#1996)
mcpx: CI lint leg (vet, golangci-lint, gofmt, shellcheck, actionlint)…
dezren39 commentedon Oct 31, 2026
Intake review
Related: PR #2718 / #1996 (lint leg; golangci step currently non-blocking until this lands). Risks: 119 findings invite blanket exclusions — resist; fix or per-site-exclude with reasons. Suggested approach: group findings by checker, fix mechanical classes in batches, keep the config's standard set intact.
— Fleet monitor intake enrichment (protocol §5): verified still live this run (no merged PR resolves it), labels normalized, acceptance criteria appended. Marked
meta/enriched.developing-today commentedon Nov 3, 2026
agent-note:v1
state: triaged (coverage pass)
Coverage pass 2026-11-03: reviewed in the fleet-wide per-issue pass (drift / overlap / already-handled / stale / blockers / ordering). Verdict: still live; queued in repo-health-code-pilot as triage at priority 40 (priority/normal). If this is already handled at current main, the triage closes it with evidence; if it needs splitting, the triage files the split.
Found via: coverage pass 2026-11-03
dezren39 commentedon Nov 3, 2026
agent-note:v1
state: picked up
Task 8002, lane 7b47536b-c162-444c-be8a-3a9538cc4cb5: verifying at current main whether the lint findings remain live and scoping the fix or blocker. Fresh check: issue open; linked lint-leg PR #2718 merged; no open PR found for #2836. Queue state labels are already in-progress/claimed/assigned.
dezren39 commentedon Nov 3, 2026
agent-note:v1
state: triaged (still live)
task: 8002
Current-main evidence: at 7d3dbd0, golangci-lint run in pkgs/mcpx reports 123 findings (errcheck 50, staticcheck 50, unused 21, ineffassign 2). The workflow still calls the step non-blocking until #2836 and sets continue-on-error: true.
Ownership: #2836 remains open; PR #2718 merged on 2026-10-30; no open PR for #2836.
Scope/order: fix the findings or individually justify reviewed exclusions in pkgs/mcpx/.golangci.yml; prioritize behavior defects among staticcheck findings, then handle mechanical errcheck/ineffassign/unused findings in checker/file batches; run golangci-lint and go test ./...; remove continue-on-error only once lint acceptance is met. No external blocker identified.