1
0
Files
nex/openspec/changes/backend-code-lint/tasks.md

43 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 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