Filed from #17 / PR #40 rather than fixed drive-by — it is outside that
issue's scope and belongs to whoever owns the linter configuration.
What happens
Running cd backend && make check on a host whose golangci-lint is v2.12.2 — the version #14/#31 moves the pin to — emits:
level=warning msg="The linter 'gomodguard' is deprecated (since v2.12.0) due to: new major version. Replaced by gomodguard_v2."
level=warning msg="Suggested new configuration:\nlinters:\n enable:\n - gomodguard_v2\n"
It is a warning, not a failure: the run still ends 0 issues. and make check exits 0.
Why it is not visible in CI yet
Dockerfile.backend on main pins golangci-lint v2.7.2
(9f61b0f53f80672872fced07b6874397c3ed197b), which predates the deprecation,
so the containerised gate is silent. The warning only shows on a developer
machine running a newer linter. Once #31 lands and the pin moves to v2.12.2
(c0d3ddc9cf3faa61a4e378e879ece580256d76e5), it will appear in every docker build -f Dockerfile.backend . log as well.
gomodguard is reached via linters.default: all in backend/.golangci.yml,
so it is enabled without being named anywhere in the config.
Definition of done
Decide whether gomodguard_v2 should be enabled, and configured with
what (today gomodguard has no settings at all, so it is enforcing
nothing).
Whatever the answer, cd backend && make check and docker build -f Dockerfile.backend . emit no deprecation warning.
Coordinate with #14/#31: backend/.golangci.yml is a byte-for-byte copy
of the org-standard file guarded by a sha256 assertion, so this cannot
be a local edit. Either the canonical file in sneak/prompts changes
and the guard's hash is updated with it, or this issue is closed as
"upstream's problem" with the reasoning recorded here.
Blocked on #31 landing; there is nothing to verify until the pin is
actually v2.12.2.
Verified on
main at fbfe1df, host golangci-lint has version 2.12.2 built with go1.26.5, against main's backend/.golangci.yml.
Filed from #17 / PR #40 rather than fixed drive-by — it is outside that
issue's scope and belongs to whoever owns the linter configuration.
## What happens
Running `cd backend && make check` on a host whose golangci-lint is
**v2.12.2** — the version #14/#31 moves the pin to — emits:
```
level=warning msg="The linter 'gomodguard' is deprecated (since v2.12.0) due to: new major version. Replaced by gomodguard_v2."
level=warning msg="Suggested new configuration:\nlinters:\n enable:\n - gomodguard_v2\n"
```
It is a warning, not a failure: the run still ends `0 issues.` and
`make check` exits 0.
## Why it is not visible in CI yet
`Dockerfile.backend` on `main` pins golangci-lint v2.7.2
(`9f61b0f53f80672872fced07b6874397c3ed197b`), which predates the deprecation,
so the containerised gate is silent. The warning only shows on a developer
machine running a newer linter. Once #31 lands and the pin moves to v2.12.2
(`c0d3ddc9cf3faa61a4e378e879ece580256d76e5`), it will appear in every
`docker build -f Dockerfile.backend .` log as well.
`gomodguard` is reached via `linters.default: all` in `backend/.golangci.yml`,
so it is enabled without being named anywhere in the config.
## Definition of done
- [ ] Decide whether `gomodguard_v2` should be enabled, and configured with
what (today `gomodguard` has no settings at all, so it is enforcing
nothing).
- [ ] Whatever the answer, `cd backend && make check` and
`docker build -f Dockerfile.backend .` emit no deprecation warning.
- [ ] Coordinate with #14/#31: `backend/.golangci.yml` is a byte-for-byte copy
of the org-standard file guarded by a sha256 assertion, so this cannot
be a local edit. Either the canonical file in `sneak/prompts` changes
and the guard's hash is updated with it, or this issue is closed as
"upstream's problem" with the reasoning recorded here.
- [ ] Blocked on #31 landing; there is nothing to verify until the pin is
actually v2.12.2.
## Verified on
`main` at `fbfe1df`, host golangci-lint
`has version 2.12.2 built with go1.26.5`, against `main`'s
`backend/.golangci.yml`.
Plan. The canonical .golangci.yml in sneak/prompts has already moved to gomodguard_v2, and sneak/prompts#60 asks each repo that vendors it to take the new bytes. netwatch vendors it as backend/.golangci.yml, with the drift check in backend/script/lint, so this issue is that re-vendor:
Fetch the file from https://git.eeqj.de/sneak/prompts/raw/branch/main/.golangci.yml into backend/.golangci.yml, never hand-edited; carry forward any repo-specific deny entries of the test-supportdepguard rule (the one part exempt from byte-identity).
Set the drift check's hash in backend/script/lint to the vendored file's sha256.
Per sneak's ruling on sneak/prompts#60 (2026-09-09): fix in the code any lint finding the new config raises, never loosen the config; stop and ask only if a fix needs an owner decision.
Done when root make lint runs in Docker with zero deprecation warnings, root make check and script/cibuild pass, and one reviewed PR lands on next.
Model: opus-5-5
Plan. The canonical `.golangci.yml` in `sneak/prompts` has already moved to `gomodguard_v2`, and https://git.eeqj.de/sneak/prompts/issues/60 asks each repo that vendors it to take the new bytes. netwatch vendors it as `backend/.golangci.yml`, with the drift check in `backend/script/lint`, so this issue is that re-vendor:
1. Fetch the file from `https://git.eeqj.de/sneak/prompts/raw/branch/main/.golangci.yml` into `backend/.golangci.yml`, never hand-edited; carry forward any repo-specific `deny` entries of the `test-support` `depguard` rule (the one part exempt from byte-identity).
2. Set the drift check's hash in `backend/script/lint` to the vendored file's sha256.
3. Per sneak's ruling on https://git.eeqj.de/sneak/prompts/issues/60 (2026-09-09): fix in the code any lint finding the new config raises, never loosen the config; stop and ask only if a fix needs an owner decision.
4. Done when root `make lint` runs in Docker with zero deprecation warnings, root `make check` and `script/cibuild` pass, and one reviewed PR lands on `next`.
Model: opus-5-5
clawbot
self-assigned this 2026-09-29 09:22:52 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Filed from #17 / PR #40 rather than fixed drive-by — it is outside that
issue's scope and belongs to whoever owns the linter configuration.
What happens
Running
cd backend && make checkon a host whose golangci-lint isv2.12.2 — the version #14/#31 moves the pin to — emits:
It is a warning, not a failure: the run still ends
0 issues.andmake checkexits 0.Why it is not visible in CI yet
Dockerfile.backendonmainpins golangci-lint v2.7.2(
9f61b0f53f80672872fced07b6874397c3ed197b), which predates the deprecation,so the containerised gate is silent. The warning only shows on a developer
machine running a newer linter. Once #31 lands and the pin moves to v2.12.2
(
c0d3ddc9cf3faa61a4e378e879ece580256d76e5), it will appear in everydocker build -f Dockerfile.backend .log as well.gomodguardis reached vialinters.default: allinbackend/.golangci.yml,so it is enabled without being named anywhere in the config.
Definition of done
gomodguard_v2should be enabled, and configured withwhat (today
gomodguardhas no settings at all, so it is enforcingnothing).
cd backend && make checkanddocker build -f Dockerfile.backend .emit no deprecation warning.backend/.golangci.ymlis a byte-for-byte copyof the org-standard file guarded by a sha256 assertion, so this cannot
be a local edit. Either the canonical file in
sneak/promptschangesand the guard's hash is updated with it, or this issue is closed as
"upstream's problem" with the reasoning recorded here.
actually v2.12.2.
Verified on
mainatfbfe1df, host golangci-linthas version 2.12.2 built with go1.26.5, againstmain'sbackend/.golangci.yml.clawbot referenced this issue2026-09-04 00:30:19 +02:00
clawbot referenced this issue2026-09-04 00:31:43 +02:00
Plan. The canonical
.golangci.ymlinsneak/promptshas already moved togomodguard_v2, and sneak/prompts#60 asks each repo that vendors it to take the new bytes. netwatch vendors it asbackend/.golangci.yml, with the drift check inbackend/script/lint, so this issue is that re-vendor:https://git.eeqj.de/sneak/prompts/raw/branch/main/.golangci.ymlintobackend/.golangci.yml, never hand-edited; carry forward any repo-specificdenyentries of thetest-supportdepguardrule (the one part exempt from byte-identity).backend/script/lintto the vendored file's sha256.make lintruns in Docker with zero deprecation warnings, rootmake checkandscript/cibuildpass, and one reviewed PR lands onnext.Model: opus-5-5