INSERT INTO ias_upgrade_logs (
    version,
    released_at,
    title,
    description,
    changes,
    modules
) VALUES (
    '0.2.17',
    '2026-07-08T00:00:00+08:00',
    '收束 AI 工具入口并归类能力',
    '模型初始工具列表收束为查询能力、能力详情和调用能力三个入口，底层能力按 API 与 HTTP 两类管理，避免模型直接调用具体工具。',
    '[
        "收束模型初始工具列表，仅暴露 query_capabilities、query_capability_detail 和 call_capability 三个入口工具；其它能力直接调用会被拒绝，必须通过 call_capability 按名称和参数调用。",
        "query_capabilities 改为只返回能力名称和描述，并按 api / http 分类；query_capability_detail 返回单个能力的完整参数、来源、分类和 JSON Schema；call_capability 支持 name、parameters 和可选提示语 text。",
        "API 能力统一表示通过 iAs HTTP API 封装的能力，新增 API 版 query_mail_messages；删除重复的 YAML 邮件查询能力。",
        "HTTP 能力统一表示 tools/*.yaml 定义的外部 API 调用能力；删除天气测试 YAML，YAML 扫描只加载 .yaml/.yml 并保持排序。",
        "控制台工具页和上下文模拟器同步展示入口工具、API 能力和 HTTP 能力分组，避免调试请求继续直接暴露底层能力。",
        "无数据库结构变化；已验证 cargo test 和 bun run build。"
    ]'::jsonb,
    '{
        "ias-common": "0.1.1",
        "ias-ai": "0.1.7",
        "ias-wechat": "0.1.0",
        "ias-context": "0.1.2",
        "ias-http": "0.1.10",
        "ias-mail": "0.1.15",
        "ias-service": "0.1.14",
        "ias-main": "0.2.17"
    }'::jsonb
) ON CONFLICT (version) DO UPDATE SET
    released_at = EXCLUDED.released_at,
    title = EXCLUDED.title,
    description = EXCLUDED.description,
    changes = EXCLUDED.changes,
    modules = EXCLUDED.modules;
