Skip to content

FreeIDX v1.0.2

Choose a tag to compare

@github-actions github-actions released this 23 Oct 02:33
· 22 commits to main since this release

FreeIDX v1.0.2

v1.0.1 之后的维护版本,重点是后台运行维护能力(数据库孤儿清理、R2 未使用对象清理)与邮件发送 / 账号验证链路加固。

主要内容

后台运行维护

  • 新增「数据库维护」页(/admin/maintenance/db):统计并分批清理孤儿行与失效行,只清理账目类数据,不触碰正文
  • 新增「对象存储维护」页(/admin/maintenance/r2):扫描白名单前缀内的未引用对象,分步(start / step / reset)删除并展示进度
  • 支持在后台手动触发每日 Cron 任务,便于发版后立即校准
  • 计数校准逻辑抽出为 calibrateCounters,Cron 与后台「立即校准」共用同一口径,避免两套算法漂移
  • lastusername 增加每日自愈,纠正历史脏数据与改名回写遗漏
  • 附件存储抽象补齐 list() 分页枚举能力,测试替身可省略并回落「存储不支持枚举」

邮件与账号验证加固

  • SMTP 认证按 EHLO 通告能力选择 AUTH LOGIN / AUTH PLAIN
  • 单步应答超时(15s)与会话总超时(60s)分离,修复连接泄漏
  • 日发送限额由「发送成功后 +1」改为「发前原子预约、失败归还」,并发下不再突破日上限
  • DATA 后收到 250 即判定成功,不再因 QUIT 失败而重复投递
  • 邮箱设置:密码按 host + user 身份保持,池与密码单事务提交;回显不再按「有密码才可用」过滤,避免整行误删账号;发件地址改用严格邮箱校验,防邮件头注入
  • 发码接口仅保留注册场景;找回密码改为静默成功 + 单邮箱日上限,避免通过错误码枚举已注册邮箱
  • 登录与找回密码的邮箱统一按小写查询,修复手打大小写邮箱「查不到账号但能登录」的问题
  • 注册字段格式校验前置,避免用户被「请先获取验证码」误导
  • 运行环境缺少 waitUntil 时退化为请求内等待,避免 isolate 回收导致丢信
  • bootstrap 新增 setting.mailOn,前端按 SMTP 池实际可用性决定是否展示验证码输入框
  • 每日 Cron 清理 bbs_email_code 中超过 24h 的过期行,防止表无限增长

界面与体验

  • 后台邮件设置页、扩展管理页交互优化,新增扩展图标渲染组件
  • 后台设置项标签精简,补齐 11 种语言 override 词条
  • 版本更新页「关于」区域标题行间距与垂直对齐优化
  • 大屏端移除根字号放大逻辑,仅放宽版心宽度,避免超宽屏字号失控

修复

  • 修复构建版本号附带 -dirty 标记的问题

工程与测试

  • 补充认证链路测试替身(waitUntil / 邮件通道),新增找回密码与 Cron GC 用例
  • 更新开发架构文档中的邮件与认证说明

完整变更

v1.0.1...v1.0.2