INSERT INTO ias_upgrade_logs ( version, released_at, title, description, changes, modules ) VALUES ( '0.2.9', '2026-07-07T00:00:00+08:00', 'HTTP 页面迁移至 Askama 模板引擎', '更新日志页面和 Web 内容页面从手写字符串拼接改为 Askama 编译期模板渲染,提升可维护性。', '[ "HTTP 页面迁移至 Askama 模板引擎:更新日志页面(/updates)和 Web 内容页面(/web/{type}/{slug}、/mail/{slug})从手写 format!() 字符串拼接改为 Askama 编译期模板渲染。", "新增 ias-http/templates/ 目录,包含 base.html(共享布局)、error.html(错误页)、updates/ 和 pages/ 模板,支持模板继承和自动 HTML 转义。", "ias-http 新增 askama 依赖;shell.rs 新增 ErrorPage Askama 模板,保留 html_shell() 和 escape_html() 供 ias-mail、ias-service 兼容使用。" ]'::jsonb, '{ "ias-common": "0.1.0", "ias-ai": "0.1.2", "ias-wechat": "0.1.0", "ias-context": "0.1.1", "ias-http": "0.1.5", "ias-mail": "0.1.13", "ias-service": "0.1.7", "ias-main": "0.2.9" }'::jsonb ) ON CONFLICT (version) DO UPDATE SET released_at = EXCLUDED.released_at, title = EXCLUDED.title, description = EXCLUDED.description, changes = EXCLUDED.changes, modules = EXCLUDED.modules;