Skip to content

1.14.1:性能、原子删除与多平台可靠性加固 - #3

Merged
Thregren merged 4 commits into
mainfrom
dot/harden-reliability-20261008
Oct 8, 2026
Merged

Thregren merged 4 commits into
mainfrom
dot/harden-reliability-20261008

Conversation

@Thregren

@Thregren Thregren commented Oct 8, 2026 •

Copy link
Copy Markdown
Owner

改进

  • 维护任务独立身份与检查点:新任务重新扫描,续跑保留断点,拒绝过期轮询,落盘错误明确可见。
  • 聚合字段与单图/整图集删除使用主库事务及保存点;数据库失败保留恢复机会,提交后只清理未被共享路径和历史 URL 引用的文件。
  • 统一 Typecho 主库入口,修复 Mysqli 插入主键/读写连接边界;非 InnoDB 相关表在写入前安全拒绝。
  • 上传状态局部刷新,服务器确认成功后释放 File/ObjectURL,失败仍可重试。
  • AVIF 坏链/解码失败降级 WebP,ResizeObserver 缺失不再重复挂载全景。
  • GD 位图别名及时释放、极窄图最小边为1;完整主图/缩略图暂存校验后再发布,明确拒绝 WebP 16383px 单边限制,不暗中降低全景分辨率。
  • 固定 v1.14.1 的受控发布入口:仅本仓库 main 的完整 CI 成功且 SHA/版本一致时创建 tag 和两包 Release;不扩令牌权限,拒绝部分或冲突发布,公开下载复核两包 SHA-256。

实证

  • 本地原生 PHP7.4/8.4 × Typecho1.2.1/1.3.0 × PDO/原生六驱动共24组合、3616项断言通过;SQLite/MariaDB11.8/PostgreSQL17真实数据库,含不同数据库读写隔离。
  • 删除故障测试 PHP8.4 1090项、PHP7.4 1097项;字段同步203项、检查点17项、14种维护请求、真实GD25项及位图生命期4路径通过。
  • 1万行含5KB EXIF样本:孤儿引用查询返回量52.77MB→1.60MB,WASM/SQLite五轮中位39ms→12ms。
  • 200张隔离DOM/XHR样本:DOM创建节点1,124,203→8,403,成功后ObjectURL200→0。统计/持久化仍遍历队列,不声称完整算法线性或生产速度。
  • 发布guard37项离线/真实ZIP确定性测试与独立安全复核通过;匿名Actions API实测HTTP200。
  • 第二轮提交a7096b0的全部CI通过,包括PHP7.4/8.2/8.4、18个Typecho/数据库矩阵及Chromium/Firefox/WebKit三组桌面/窄屏浏览器。最终提交仍须重新全绿才合并。

边界

  • 未部署或修改线上网站。
  • 数据库与文件系统不能跨系统原子提交,提交后清理失败可能保留孤儿,优先保护可恢复文件。
  • 主图/缩略图两个rename不能跨文件原子化,发布途中磁盘失败可能保留不同代的完整文件,可重建恢复。
  • 真实数据库层已验证,生产主从延迟/完整编码器组合及实际手机设备未全面覆盖。
  • 自动发版只允许1.14.1;匿名API限流、过时SHA或部分发布会停止,必须核对实际tag/draft/资产状态,不能把job失败直接当未发布。

@Thregren Thregren changed the title 1.14.1:维护可恢复性、原子字段同步与多数据库兼容加固 1.14.1:性能、原子删除与多平台可靠性加固 Oct 8, 2026
@Thregren
Thregren marked this pull request as ready for review October 8, 2026 05:36
@Thregren
Thregren merged commit cc9d4bd into main Oct 8, 2026
24 checks passed
@Thregren
Thregren deleted the dot/harden-reliability-20261008 branch October 8, 2026 11:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant