1
0

chore: 新增 backend-code-lint 变更计划,更新 .gitignore

This commit is contained in:
2026-04-24 00:19:56 +08:00
parent 1d7e839b49
commit 4c78ab6cc8
10 changed files with 539 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
## 1. 基础设施
- [x] 1.1 创建 embedfs/assets/.gitkeep 和 embedfs/frontend-dist/.gitkeep解决 embedfs 编译阻塞
- [x] 1.2 创建 backend/.golangci.yml 配置文件,启用 13 个 linter 并配置所有规则forbidigo、errorlint、errcheck、staticcheck、revive、gocritic、gosec、bodyclose、noctx、nilerr、gofumpt、goimports、gocyclo
- [x] 1.3 配置 .golangci.yml 中测试代码差异化规则exclude-rules for *_test.go and tests/
- [x] 1.4 配置 .golangci.yml 排除生成代码exclude-dirs: tests/mocks, exclude-generated: true
- [ ] 1.5 运行 make backend-lint 验证配置可正常执行(无 embedfs 报错)
- [x] 1.6 创建 lefthook.yml 配置文件,配置 pre-commit hook 仅检查 staged Go 文件
- [ ] 1.7 运行 lefthook install 安装 git hooks 并验证 hook 生效
## 2. 存量代码修复 — 错误比较
- [x] 2.1 修复 internal/handler/model_handler.go 中 4 处 err == sentinel → errors.Is()
- [x] 2.2 修复 internal/handler/provider_handler.go 中 4 处 err == sentinel → errors.Is()
- [x] 2.3 修复 internal/provider/client.go:223 err == io.EOF → errors.Is(err, io.EOF)
## 3. 存量代码修复 — 忽略错误返回值
- [x] 3.1 修复 internal/conversion/openai/adapter.go 中 3 处 _ = json.Marshal → 正确处理错误
- [x] 3.2 修复 internal/conversion/anthropic/adapter.go 中 2 处 _ = json.Marshal → 正确处理错误
- [x] 3.3 修复 internal/conversion/anthropic/decoder.go 中 1 处 _ = json.Marshal → 正确处理错误
- [x] 3.4 修复 internal/conversion/engine.go:394 _ = json.Marshal → 正确处理错误fallback 场景)
- [x] 3.5 修复 internal/provider/client.go:144 _ = io.ReadAll → 正确处理错误
- [x] 3.6 为 internal/handler/proxy_handler.go 中 2 处 _ = statsService.Record 添加 //nolint:errcheck 注释goroutine fire-and-forget 模式)
## 4. 存量代码修复 — 日志字段
- [x] 4.1 修复 internal/handler/proxy_handler.go 中 zap.String("error", err.Error()) → zap.Error(err)(约 6 处)
- [x] 4.2 修复 internal/provider/client.go:187 zap.String("error", err.Error()) → zap.Error(err)
- [x] 4.3 修复 internal/conversion/engine.go 中 zap.String("error", err.Error()) → zap.Error(err)(约 6 处)
## 5. 存量代码修复 — 桌面端日志
- [x] 5.1 修复 cmd/desktop/dialog_linux.go 中 2 处 fmt.Fprintf(os.Stderr, ...) → 改用 zap logger
## 6. 验证与文档
- [ ] 6.1 运行 make backend-lint 确认所有 linter 通过
- [ ] 6.2 运行 make backend-test 确认所有测试通过
- [x] 6.3 更新 backend/README.md 编码规范部分:补充 zap.Error(err) 优先于 zap.String("error", err.Error()) 的规范
- [x] 6.4 更新 backend/README.md 编码规范部分:补充强制使用 errors.Is/As 而非 == 比较的说明
- [x] 6.5 更新 README.md 添加 lefthook 安装说明(首次克隆项目后需执行 lefthook install