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;