INSERT INTO ias_upgrade_logs (
    version,
    released_at,
    title,
    description,
    changes,
    modules
) VALUES (
    '0.2.12',
    '2026-07-07T00:00:00+08:00',
    '修复 React 页面路由与静态资源托管安全问题',
    '修复 SPA 静态资源路径安全、动态内容页路由、HTML 邮件展示和上下文模拟器查询参数问题，并保持 ias-http 只负责 API 与静态资源托管。',
    '[
        "修复 React SPA 静态资源托管的路径安全问题，改用 tower-http 静态文件服务，避免手写路径拼接读取 web/dist 之外的文件。",
        "React 新增动态内容页路由 /web/{page_type}/{slug} 与 /mail/{slug}，通过 /v1/web/... API 拉取数据并渲染，保持 ias-http 只负责 API 与静态资源托管的边界。",
        "邮件详情页恢复 HTML 邮件的沙箱 iframe 渲染，纯文本邮件继续按文本展示。",
        "修复上下文组装模拟器提交表单后首次查询仍使用旧 URL 参数的问题。",
        "邮件详情 API 在自动标记已读成功后，会在响应中同步返回 seen=true。",
        "无数据库结构变化；ias-http 升级至 0.1.7，ias-mail 升级至 0.1.15，ias-service 升级至 0.1.9。"
    ]'::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.7",
        "ias-mail": "0.1.15",
        "ias-service": "0.1.9",
        "ias-main": "0.2.12"
    }'::jsonb
) ON CONFLICT (version) DO UPDATE SET
    released_at = EXCLUDED.released_at,
    title = EXCLUDED.title,
    description = EXCLUDED.description,
    changes = EXCLUDED.changes,
    modules = EXCLUDED.modules;

UPDATE ias_upgrade_logs
SET
    title = 'HTTP 页面职责迁移到 React SPA',
    description = 'HTTP 模块保留 JSON API 与静态资源托管，页面渲染职责迁移到 React 前端。',
    changes = '[
        "HTTP 页面职责迁移到 React SPA：ias-http 保留 /v1/updates、/v1/web/... 等 JSON API，页面渲染由 web/ 前端负责。",
        "新增 React 前端工程，提供更新日志、邮件、工具、配置等页面入口。",
        "ias-http 删除旧的服务端 HTML shell 与字符串拼接页面渲染代码，新增 React 静态资源托管入口。"
    ]'::jsonb
WHERE version = '0.2.9';

UPDATE ias_upgrade_logs
SET
    changes = '[
        "新增上下文组装模拟器页面（/context），支持按 scope（channel + account_id + from_user_id）查询。",
        "页面展示：活跃会话详情及消息列表、组装后的系统上下文预览、历史会话表、长期记忆、会话摘要（上次会话/近一周）和可用工具列表。",
        "导航栏新增「上下文」入口链接。",
        "ias-service 新增 context_simulator 和 context_simulator_data 模块，升级至 0.1.8。",
        "React 导航栏新增上下文入口；ias-http 升级至 0.1.6。",
        "无数据库结构变化。"
    ]'::jsonb
WHERE version = '0.2.11';
