INSERT INTO ias_upgrade_logs ( version, released_at, title, description, changes, modules ) VALUES ( '0.2.27', '2026-07-08T00:00:00+08:00', '抽离数据库基础设施模块', '新增 ias-db 模块集中负责数据库连接和 SQLx 迁移执行,并将原 ias-service/migrations 整体迁移到 ias-db/migrations。同时新增操作日志查询接口与前端页面,邮件远程已读同步,以及多处改进。', '[ "新增 ias-db crate,集中负责 PostgreSQL 连接池创建、DATABASE_URL 读取和 SQLx 迁移执行。", "将原 ias-service/migrations 整体迁移到 ias-db/migrations,迁移嵌入和变更监听由 ias-db/build.rs 负责。", "ias-main 改为直接调用 ias_db::connect_db(),ias-service 只接收已建立的 PgPool 并运行服务,数据库生命周期边界更清晰。", "新增操作日志 HTTP 查询接口 GET /v1/logs 和 GET /v1/logs/{id},支持按级别、模块和关键词筛选,API 文档新增 logs 功能分组。", "新增操作日志 Web 前端页面,支持按级别、模块和关键词筛选查看日志,便于排障和审计。", "消息队列关键节点增加操作日志写入:LLM 响应、渠道消息接收、上下文记录错误、消息发送失败等场景自动记录到 ias_operation_logs。", "ias-mail 新增 mark_remote_message_seen 函数,通过 IMAP 设置邮件已读并验证服务器确认,抽取 connect_imap_session 复用连接逻辑。", "工作流配置加载改为文件级容错:ias-ai 新增 load_configs_with_warnings,返回 LoadedFlowConfigs 包含 warnings 信息,单个 YAML 配置损坏时不会导致所有 HTTP 能力为空。", "ias-context 工具调用说明中的能力引用路径从已废弃的 record_tool_call_instruction 更新为 query_api_docs + call_http_api,并新增单元测试验证。", "新增高德地图地理编码/逆地理编码 HTTP 能力配置文件 tools/amap_geocode.yaml。", "数据库无结构变化;已验证 cargo fmt --check 和 cargo check。" ]'::jsonb, '{ "ias-common": "0.1.2", "ias-ai": "0.1.14", "ias-wechat": "0.1.1", "ias-context": "0.1.6", "ias-http": "0.1.15", "ias-mail": "0.1.16", "ias-db": "0.1.0", "ias-service": "0.1.25", "ias-main": "0.2.27" }'::jsonb ) ON CONFLICT (version) DO UPDATE SET released_at = EXCLUDED.released_at, title = EXCLUDED.title, description = EXCLUDED.description, changes = EXCLUDED.changes, modules = EXCLUDED.modules;