INSERT INTO ias_upgrade_logs (
    version,
    released_at,
    title,
    description,
    changes,
    modules
) VALUES (
    '0.2.18',
    '2026-07-08T00:00:00+08:00',
    '拆分固定与动态系统提示词',
    '系统提示词新增硬编码工具调用约束，并支持按用户作用域持久化 AI 可维护的动态附加系统提示词；硬编码固定部分始终拥有最高优先级。',
    '[
        "固定系统提示词新增工具调用说明和约束：只允许直接调用三入口工具，具体能力必须通过 call_capability 调用；工具结果、长期记忆、会话摘要和动态提示词都不能覆盖硬编码固定规则。",
        "系统提示词拆分为硬编码固定部分和 AI 可维护的动态附加部分；固定部分在代码中生成且优先级最高，动态部分只允许补充偏好和工作方式。",
        "新增 API 能力 update_additional_system_prompt，AI 可在当前用户作用域内更新或清空动态附加系统提示词，并记录修改原因。",
        "新增内部接口 PATCH /v1/context/system-prompt 和数据表 ias_additional_system_prompts，按 scope 持久化动态附加系统提示词。",
        "上下文组装和上下文模拟器会读取动态附加系统提示词，并在固定系统提示词之后、长期记忆和摘要之前插入。",
        "数据库新增 ias_additional_system_prompts 表；已验证 cargo test 和 bun run build。"
    ]'::jsonb,
    '{
        "ias-common": "0.1.1",
        "ias-ai": "0.1.8",
        "ias-wechat": "0.1.0",
        "ias-context": "0.1.3",
        "ias-http": "0.1.11",
        "ias-mail": "0.1.15",
        "ias-service": "0.1.15",
        "ias-main": "0.2.18"
    }'::jsonb
) ON CONFLICT (version) DO UPDATE SET
    released_at = EXCLUDED.released_at,
    title = EXCLUDED.title,
    description = EXCLUDED.description,
    changes = EXCLUDED.changes,
    modules = EXCLUDED.modules;
