17 Commits
Author SHA1 Message Date
耗子andClaude Opus 5 59f99cc8fc refactor: 把 context 打通到全部 shell 执行路径
原先 pkg/shell 的执行函数不接 context,整条链路上的命令都无法随请求取消,
靠一条文件级 //nolint:noctx 压着。本次自底向上打通:

- pkg/shell 8 个执行函数加 ctx 首参并改用 exec.CommandContext,
  删除与 Execf 重复的 ExecfWithContext
- pkg/{systemctl,tools,ntp,io,firewall,webserver,db,os} 的相关函数加 ctx,
  firewall.Firewall 接口 10 个方法同步改
- internal/{apps,biz,data,job,service} 逐层打通,biz 的 10 个 Repo 接口
  共 37 个方法加 ctx,mock 已重新生成
- types.App.Status 加 ctx:它经 loader 动态分发,contextcheck 看不穿,
  33 个实现里的 context.Background() 是静态分析发现不了的死角

327 个 shell 调用点全部接上真实 ctx,contextcheck 从 364 条降到 0,
darwin 与 linux 双平台 golangci-lint 均为 0 issues。

其中 104 处用 context.WithoutCancel 显式断开取消链,因为这些操作被中途
杀死会留下损坏状态:面板自更新与自杀式重启(靠 sleep 熬过响应返回,绑
请求 ctx 会永远重启不了)、mongodb 改密码时 fork 的 --noauth 临时实例、
pure-pw 之后的 mkdb、s3fs 挂载失败回滚、写配置后的服务重启、以及各处
defer 清理与回滚闭包。

ExecfWithTimeout 现为 min(ctx, timeout),已逐个核对调用点:面板 HTTP
服务器未设 WriteTimeout、中间件链无 Timeout,请求 ctx 只在客户端真断开
时取消,原有超时语义不变。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 00:57:36 +08:00
耗子andClaude Opus 5 fe7cce6201 refactor: 对齐 libtnb/chi-skeleton 最新脚手架
- 依赖注入换到 libtnb/wire v0.3.0,各层包导出 Module 并逐类型 Export,
  wire.Struct 改用 Struct[T](),cleanup 签名改为 func() error
- 测试断言换到 libtnb/assert 的 must/check,20 个 testify suite 拆成标准测试函数
- mock 改用 matryer 模板输出到 internal/mocks,wire 走 go.mod tool 指令,
  mockery 用 go run 调用,避免它的依赖树污染 go.mod
- 引入 .golangci.yml 并修完全部告警,darwin 与 linux 双平台 0 issues
- 工作流改用 go-version-file、govulncheck 官方 action,
  wire 校验移入 test.yml,mockery 由自动提交改为 PR 校验

顺带修复:pkg/db 四处漏查 rows.Err()(DatabaseExists 查询出错会被当成库不存在)、
websitestat 负值转 uint64 污染流量统计、pty 终端尺寸超 uint16 截断、
文件权限位超 32 位静默截断、面板与 ACME challenge 服务器缺 ReadHeaderTimeout、
GetDefault 丢失操作人、三处对结构体值恒成立的假断言、两处带空格而失效的 nolint

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 23:36:21 +08:00
耗子 4e67b31d40 fix: 修复默认spa配置编号问题 2026-08-19 18:05:54 +08:00
耗子 c2d01c4371 fix: 修复问题 2026-06-01 18:25:52 +08:00
半岛的蒟蒻bddjr e947259b86 fix: go.mod module github.com/acepanel/panel/v3 (#1423) 2026-02-25 18:07:00 +08:00
耗子 e77863d469 fix: run go fix ./... 2026-02-19 22:08:16 +08:00
耗子 b7be21c851 feat: 防火墙支持显示端口使用进程 2026-02-17 22:48:16 +08:00
耗子 9aa951e247 feat: 添加系统支持及EOL检测 2026-01-10 05:46:53 +08:00
耗子 edadc9b045 feat: 初步支持环境管理 2026-01-07 01:20:08 +08:00
耗子 ad77920f63 feat: 移除openEuler兼容 2025-09-06 17:13:59 +08:00
耗子 e6b3858937 fix: lint 2025-04-05 20:10:53 +08:00
耗子 37119d1402 feat[文件]: 优化未知用户显示 2024-12-29 02:08:26 +08:00
耗子 e9cbc8e945 refactor: 重构防火墙 2024-10-18 02:08:55 +08:00
耗子 4e6654af33 fix: 华为欧拉检查 2024-10-17 13:51:41 +08:00
耗子 d30874a5d4 fix: opencloudos检查 2024-10-17 13:20:24 +08:00
耗子 bbc6e3c7cc fix: 修复debian下cron不生效 2024-07-28 15:53:57 +08:00
耗子 c876f4c484 refactor: 重构os包 2024-06-23 01:08:07 +08:00