# Quality report — 2026-09-15T22:33:07Z - **Gate**: ❌ **FAIL** - **Commit**: `79fc998` on `main` - **qlty**: qlty 0.639.0 linux-arm64 (d9801f1 2026-07-23) - **Run**: #2 (previous: 2026-09-15T22:32:19Z) ## Gate violations - warning-level issues: 67 (max 0) - code smells: 18 (max 0) ## Lint issues (`qlty check`) | level | count | vs previous | |---|---|---| | warning | 67 | -2 | ### Top rules | rule | count | |---|---| | golangci-lint:errcheck | 12 | | osv-scanner:CVE-2026-32285 | 2 | | osv-scanner:CVE-2026-24051 | 2 | | osv-scanner:CVE-2026-39883 | 2 | | osv-scanner:CVE-2026-29181 | 2 | | osv-scanner:CVE-2026-39824 | 1 | | osv-scanner:CVE-2025-47910 | 1 | | osv-scanner:CVE-2025-47912 | 1 | | osv-scanner:CVE-2025-58183 | 1 | | osv-scanner:CVE-2025-58185 | 1 | | osv-scanner:CVE-2025-58186 | 1 | | osv-scanner:CVE-2025-58187 | 1 | | osv-scanner:CVE-2025-58188 | 1 | | osv-scanner:CVE-2025-58189 | 1 | | osv-scanner:CVE-2025-61723 | 1 | ### Most affected files | file | issues | |---|---| | go.mod | 55 | | main.go | 5 | | internal/engine/openai_compat.go | 2 | | internal/fileedit/fileedit_test.go | 2 | | internal/fileedit/textfile.go | 2 | | internal/engine/engine.go | 1 | ## Code smells (`qlty smells`) Total: **18** (vs previous: ±0) | smell | file | line | detail | |---|---|---|---| | qlty:return-statements | internal/fileedit/textfile.go | 94 | Function with many returns (count = 7): write | | qlty:file-complexity | internal/fileedit/diff.go | 1 | High total complexity (count = 89) | | qlty:function-complexity | internal/fileedit/diff.go | 136 | Function with high complexity (count = 20): middle | | qlty:return-statements | internal/agent/agent.go | 37 | Function with many returns (count = 6): Run | | qlty:nested-control-flow | internal/agent/agent.go | 199 | Deeply nested control flow (level = 5) | | qlty:nested-control-flow | internal/agent/agent.go | 208 | Deeply nested control flow (level = 5) | | qlty:nested-control-flow | internal/agent/agent.go | 279 | Deeply nested control flow (level = 5) | | qlty:file-complexity | internal/agent/agent.go | 1 | High total complexity (count = 131) | | qlty:function-complexity | internal/agent/agent.go | 37 | Function with high complexity (count = 119): Run | | qlty:return-statements | internal/config/config.go | 254 | Function with many returns (count = 11): validate | | qlty:return-statements | internal/compact/compact.go | 102 | Function with many returns (count = 6): Compact | | qlty:return-statements | internal/compact/compact.go | 184 | Function with many returns (count = 6): Valid | | qlty:file-complexity | internal/compact/compact.go | 1 | High total complexity (count = 50) | | qlty:function-complexity | internal/compact/compact.go | 184 | Function with high complexity (count = 22): Valid | | qlty:return-statements | internal/engine/engine.go | 226 | Function with many returns (count = 7): Generate | | qlty:file-complexity | internal/engine/engine.go | 1 | High total complexity (count = 91) | | qlty:function-complexity | internal/engine/engine.go | 226 | Function with high complexity (count = 18): Generate | | qlty:return-statements | internal/engine/explain.go | 24 | Function with many returns (count = 9): Explain | ## Metrics (`qlty metrics`) | metric | total | vs previous | |---|---|---| | funcs | 156 | ±0 | | classes | 38 | ±0 | | fields | 149 | ±0 | | cyclo | 992 | -2 | | complex | 618 | -2 | | lcom | 0 | ±0 | | lines | 4719 | +1 | | loc | 2956 | +2 | ### Most complex files | file | complex | cyclo | loc | |---|---|---|---| | internal/agent/agent.go | 131 | 97 | 270 | | internal/engine/engine.go | 91 | 121 | 347 | | internal/fileedit/diff.go | 89 | 177 | 271 | | internal/compact/compact.go | 50 | 92 | 175 | | internal/tools/files.go | 32 | 50 | 238 | | internal/engine/openai_compat.go | 29 | 51 | 176 | | internal/tools/tools.go | 28 | 47 | 191 | | internal/fileedit/fileedit.go | 27 | 50 | 125 | | internal/skills/skills.go | 20 | 28 | 79 | | internal/fileedit/textfile.go | 15 | 27 | 76 | | main.go | 15 | 31 | 92 | | internal/fileedit/edits.go | 14 | 38 | 88 | | internal/engine/explain.go | 13 | 31 | 58 | | internal/spinner/spinner.go | 13 | 27 | 102 | | internal/acp/acp.go | 11 | 28 | 183 | ## Trend | run | timestamp | error | warning | smells | complex | gate | |---|---|---|---|---|---|---| | 1 | 2026-09-15T22:32:19Z | 0 | 69 | 18 | 620 | FAIL | | 2 | 2026-09-15T22:33:07Z | 0 | 67 | 18 | 618 | FAIL |