耗子 and Claude 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
耗子 and Claude Fable 5.1
e1b0f45793
feat: 切换 Web 服务器后重建站点配置
...
新增 acepanel website rebuild:按站点目录里最新的旧服务器配置读出完整设置,
用当前方言整体重建;伪静态与自定义配置语法不同时停用并带后缀保留原文件。
各 Web 服务器安装脚本在写入 webserver 设置后调用。
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-14 17:41:03 +08:00
耗子 and Claude Fable 5.1
193ec0f897
feat: 接入 OpenLiteSpeed
...
- pkg/webserver/openlitespeed:纯文本配置解析器、vhost 实现与方言,站点 vhconf
由内存状态整体生成,监听地址与域名记录在站点目录并汇总生成主配置的 listener
- 代理、上游、重定向、基本认证以 OLS 上下文与外部应用表达,Apache 风格重写规则
片段自动归入 rewrite 块;HTTP-01 验证改为共享 token 目录
- 新增 OpenLiteSpeed 子应用:主配置编辑、负载状态、日志、PHP FastCGI/LSAPI 协议切换
- 伪静态预置补充 Apache 语法版本,Apache 与 OpenLiteSpeed 共用
- 方言接口新增 RewritesDir 与 BeforeReload,CLI 新增 webserver reload
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-14 16:19:25 +08:00
耗子 and Claude Fable 5.1
6c62e35daf
feat(cli): 开启面板入口时支持指定自定义入口路径
...
未指定时保持随机生成。
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-06 04:50:59 +08:00
耗子 and Claude Opus 5
e8f7811aba
feat: 重构 CLI 命令并补全缺失功能
...
website create 未传网站类型导致必然失败,补全类型、代理地址、
数据库、备注等参数,并在进入 biz 层前统一走验证器校验。
新增命令:
- firewall status/on/off/list/port
- cert list/renew
- restore panel
- website cert/list,user create/delete
- backup list,app list,cron list/run/status
- database list-server
调整:
- 密码取值改为参数 > ACEPANEL_PASSWORD > 交互输入(不回显)
- 补 bind-domain/bind-ip/bind-ua 的 on 子命令
- 新增全局 --json,接入全部 list 命令
- port 支持 flag 写法,info 支持 -u 指定用户
- 位置参数命令补 ArgsUsage
修复:
- cutoff clear 清理远程日志时目录与上传路径不一致,导致远程切割
日志从未被清理,ClearStorageExpired 改为接收目标目录
- restore 缺少 panel 分支,从 FixPanel 抽出 restorePanel 复用
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-15 19:30:11 +08:00
耗子
ea22c2f0a7
refactor(di): restore compile-time Wire injection
...
Replace the samber/do runtime container with explicit constructor dependencies and generated Wire graphs for ace and cli. Keep CLI application loading isolated and verify generated files in CI.
2026-07-27 02:54:44 +08:00
耗子 and Claude Opus 5
4e28fc60a3
feat: 添加通知与告警模块
...
- 通知渠道支持配置多个 SMTP 账号,配置整体加密落库,删除时清理规则与事件设置中的引用
- 告警规则支持 18 种指标:CPU/内存/Swap/负载/磁盘用量与 inode/磁盘与网卡速率/网站 5xx 与错误率、
服务与项目与容器与应用与数据库运行状态、证书与网站剩余天数,可配连续命中次数与静默期
- 系统事件通知覆盖证书续签失败、备份失败、后台任务失败、计划任务失败、网站到期、防篡改拦截、
面板健康问题、面板登录与爆破、SSH 登录与爆破
- 计划任务统一经 wrapper 执行以捕获退出码,flock 抢锁失败不计为失败
- 监控页改造为系统/告警/设置三 Tab
- 数据库驱动建连打通 context 并补齐连接超时,探测不再阻塞告警评估
close #1041
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-25 22:45:51 +08:00
耗子 and Claude
ce50aa4653
feat: 备份恢复改为后台任务
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-25 01:45:48 +08:00
耗子 and Claude Opus 4.8
443516a2cf
refactor!: 迁移至 samber/do 依赖注入与三层架构
...
依赖注入:
- 移除 google/wire(含 wire.go/wire_gen.go 与全部 ProviderSet),
改用 samber/do v2 单注入器 + 双入口惰性构建
- 贡献模型替代命令式注册:路由 routes:、命令 commands:、
任务 jobs: 前缀经 internal/registry 收集与校验
- 构造函数统一 func NewXxx(i do.Injector) (T, error)
三层架构:
- 补全用例层:每个 biz.XxxRepo 配 XxxUsecase,
service/command/job 表现层只依赖用例,不再直接引用仓储
路由与文档:
- route/http.go 按域拆为声明式 Endpoint 贡献,
Endpoint 承载登录白名单与端点限流语义
- 调试模式下提供 OpenAPI 3.1 文档:/openapi.json 与 /docs(Scalar),
从 validate 标签生成
目录与依赖:
- internal/http/{middleware,request,rule} 拍平至 internal/*
- CLI 命令拆至 internal/command
- 日志轮转 timberjack 换为 libtnb/logrotate
- 升级 validator/cron/sessions/gormstore/sqlite/securecookie
- 数据库迁移保持 gormigrate 不变
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-09 21:54:22 +08:00