# .golangci.yml - reasonable defaults for steamcache2 # Run with: golangci-lint run ./... # Install: go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest run: timeout: 5m modules-download-mode: readonly linters: disable-all: true enable: # errcheck intentionally not enabled yet (pre-existing unchecked I/O in core paths). # Re-enable per-package after larger refactors reduce surface area. # - errcheck - gosec - govet - ineffassign - misspell - staticcheck - unused - gofmt - goimports linters-settings: errcheck: check-type-assertions: false # many existing unchecked in http/metrics paths check-blank: false gosec: excludes: - G104 # errors unhandled in defer/close common in Go - G304 # file inclusion via variable (config paths controlled) - G115 # int->uint casts on positive cache sizes (pre-existing; safe in context) - G301 # MkdirAll 0755 for cache dirs (pre-existing, functional requirement) - G306 # WriteFile 0644 for user config (standard, not secret) staticcheck: checks: ["all", "-SA1019"] # allow deprecated for now if any govet: enable-all: true disable: - fieldalignment # performance not critical here - shadow # pre-existing in large ServeHTTP; avoid noise for now # errcheck remains disabled globally due to pre-existing noise in http and cache paths. # Re-enable plan: enable per-package after larger refactors; consider adding a coverage gate later. # Current config keeps baseline green while allowing incremental strictness. issues: max-issues-per-linter: 0 max-same-issues: 0 exclude-use-default: false exclude-dirs: - dist - bin exclude-rules: - path: _test\.go linters: - errcheck - gosec # tests often use weak patterns intentionally # Pre-existing intentional empty branches (comments explain); cleaned in later refactors - linters: - staticcheck text: "SA9003: empty branch" # Double-check locking idiom in predictive (content assigned only on miss path); pre-existing - path: vfs/predictive/predictive.go linters: - staticcheck text: "SA4006" # Unused field in predictive (likely remnant); pre-existing, excluded to keep lint green for hygiene - path: vfs/predictive/predictive.go linters: - unused text: "mu"