# 更新日志 ## 0.1.14 - 2026-07-06 - 删除旧邮件查询兼容路由 `GET /mail-api/messages`、`GET /mail-api/messages/{id}` 和 `GET /mail-api/search`。 - 所有 JSON API 统一使用 `/v1/...`:邮件、上下文记忆、动态页面创建和健康检查接口均迁移到新地址。 - 页面路由继续保持非 `/v1` 地址:`/mail`、`/mail/messages/{id}`、`/mail/{slug}`、`/web/{page_type}/{slug}` 和 `/updates`。 - AI 内部工具调用同步改用 `/v1/web/pages` 与 `/v1/context/memories...`。 - 无数据库结构变化;新增 `0.1.14` 升级日志记录。 ## 0.1.13 - 2026-07-06 - 新增 `GET /v1/mail/messages`、`GET /v1/mail/messages/{id}` 和 `GET /v1/mail/search`,作为邮件查询 API 的新地址。 - 保留 `GET /mail-api/messages`、`GET /mail-api/messages/{id}` 和 `GET /mail-api/search` 兼容旧调用。 - 新增 `GET /mail` 邮件列表页面,支持关键词、账户、邮箱目录、来源和分页查询。 - 新增 `GET /mail/messages/{id}` 邮件预览页面,可查看邮件正文、元信息和原始头信息。 - 无数据库结构变化;新增 `0.1.13` 升级日志记录。 ## 0.1.12 - 2026-07-06 - 增强邮件 HTTP 查询服务:`GET /mail-api/messages` 支持关键词、账户、邮箱目录、来源和分页查询。 - 新增 `GET /mail-api/search` 作为邮件查询别名,便于客户端直接按查询语义调用。 - 邮件列表响应新增 `page`、`per_page` 和 `total` 字段,保留 `limit` 参数的兼容行为。 - 查询关键词 `q` 会匹配发件人、主题、摘要、正文和 `Message-ID`。 - 无数据库结构变化;新增 `0.1.12` 升级日志记录。 ## 0.1.11 - 2026-07-06 - 修正 `ias mail pull [id]` 的手动拉取语义:现在会抓取最近 20 封邮件并入库,不再只处理未读邮件。 - `ias mail pull` 输出新增扫描数量,便于确认 IMAP 确实返回了最近邮件;同时继续显示其中未读、新增和已存在数量。 - 后台邮件轮询保持只处理未读邮件并发送微信提醒,手动拉取不发送微信提醒。 - 无数据库结构变化;新增 `0.1.11` 升级日志记录。 ## 0.1.10 - 2026-07-06 - 新增 `ias mail pull [id]` 命令,可手动拉取最近 20 封中的未读邮件;不传 `id` 时拉取所有启用邮件账户,传 `id` 时拉取指定账户。 - 手动拉取会复用后台轮询的解析、去重、入库和邮件预览页生成逻辑,并输出本次未读、新增和已存在数量。 - 修复服务启动和版本更新通知使用 `ias-service` crate 版本的问题,改为读取根目录 `VERSION` 作为整体项目版本。 - 修复版本更新通知可能链接到不存在的 `/updates/0.1.0` 页面的问题;本版本通知会指向 `/updates/0.1.10`。 - 无数据库结构变化;新增 `0.1.10` 升级日志记录。 ## 0.1.9 - 2026-07-06 - 调整邮件轮询逻辑:每轮固定读取邮箱最近 20 封邮件,而不是仅搜索 `UNSEEN` 集合。 - 读取最近邮件时同步获取 `FLAGS`,只对未包含 `\Seen` 标记的邮件入库、生成预览页并发送微信提醒。 - 邮件正文抓取改用 `BODY.PEEK[]`,避免检查最近邮件时把未读邮件隐式标记为已读。 - 新增最近 20 封 sequence range 的单元测试,并通过 `cargo test -p ias-mail` 与 `cargo check` 验证。 - 无数据库结构变化;新增 `0.1.9` 升级日志记录。 ## 0.1.8 - 2026-07-06 - 新增 `ias mail edit ` 命令,可交互式修改已保存的 IMAP 邮件账户配置,密码留空时保留原值。 - 新增 `ias mail check ` 命令,可使用已保存配置检查 IMAP 服务器连通性和邮箱目录可访问性。 - 邮件账户检查成功会更新 `last_checked_at` 并清空 `last_error`,失败会记录错误信息。 - 复用新增账户时的 IMAP 连接测试逻辑,TLS 证书错误仍支持交互式选择接受无效证书后重试。 - 无数据库结构变化;新增 `0.1.8` 升级日志记录。 ## 0.1.7 - 2026-07-06 - 所有 Rust crate 统一加 `ias-` 前缀:`ai` → `ias-ai`、`common` → `ias-common`、`context` → `ias-context`、`mail` → `ias-mail`、`service` → `ias-service`、`wechat` → `ias-wechat`。 - 内部依赖和所有 `use` 语句同步更新。 - 新增 `IA_WEB_INTERNAL_URL` 环境变量,用于配置内网可访问的基础 URL。 - 新增 `internal_url_for_path()` 函数,版本更新通知同时发送公网和内网地址的 Markdown 链接。 - 将已有升级日志的 title、description、changes 翻译为中文。 - 持久化 `0.1.7` 升级记录。 ## 0.1.6 - 2026-07-06 - 新增 HTTP 渲染的更新日志页面,路由为 `/updates` 和 `/updates/{version}`。 - 新增服务版本一次性启动通知,包含更新的版本号和 HTTP 更新日志链接。 - 新增持久化的版本通知状态,避免普通重启后重复通知用户。 - 持久化 `0.1.6` 升级记录。 ## 0.1.5 - 2026-07-06 - 新增基于数据库的邮件账号配置,通过 `ias mail auth` 引导命令完成。 - 新增 `ias_mail_accounts` 表,并将缓存的邮件消息关联到对应配置账号。 - 扩展邮件缓存,在 `ias_mail_messages` 中持久化完整解析后的邮件内容和原始头信息。 - 更新邮件轮询逻辑,优先从数据库加载启用的邮件账号,同时保留环境变量配置作为回退方案。 - 新增 `ias mail list` 命令查看邮件账号列表。 - 持久化 `0.1.5` 升级记录。 ## 0.1.4 - 2026-07-06 - 新增独立的 Rust `mail` 模块,实现 IMAP 邮箱轮询、邮件解析、数据库去重、预览页面创建和用户通知。 - 新增独立的 Rust `ias-http` 模块,提供 HTTP 服务、健康检查和可复用的网页预览页面。 - 将现有的网页预览路由从 `service` 迁移至 `ias-http`。 - 新增 `/mail-api/messages` 和 `/mail-api/messages/{id}` 接口,用于查看存储的邮件记录。 - 新增 `ias_mail_messages` 数据库表,持久化 `0.1.4` 升级记录。 - 新增通过 `IA_MAIL_*` 环境变量配置邮件轮询;未配置邮箱时轮询保持禁用。 ## 0.1.3 - 2026-07-06 - 修复后台服务启动问题,使 `ias service start/restart` 能将子服务进程与调用命令的会话分离。 - 新增版本 `0.1.3` 的数据库升级日志迁移。 - 重启后通过 `ias service status` 验证服务健康状态。 ## 0.1.2 - 2026-07-06 - 新增 `ias_upgrade_logs` 数据库表,用于持久化升级记录。 - 新增迁移种子数据,写入 `0.1.1` 和 `0.1.2` 的升级记录。 - 更新 `AGENTS.md` 中的 Codex 项目规则,使版本升级同步更新 `VERSION`、crate 版本、`CHANGELOG.md` 和数据库升级记录。 - 明确项目规则应写在 Codex 实际读取的 `AGENTS.md` 文件中。 ## 0.1.1 - 2026-07-06 - 新增独立的 Rust `context` 模块,支持长期记忆、会话上下文、会话摘要和近一周摘要。 - 新增带时间戳的记忆记录和上下文 API,支持查询、创建、更新和删除记忆。 - 新增上下文窗口切换规则,涵盖 `/new` 命令、两小时不活跃和 token 上限阈值。 - 新增开启新上下文时自动生成会话摘要。 - 新增记忆工具,使助手在对话中可以查询和更新用户记忆。 - 修复 LLM 响应解析,使不带 `service_tier` 的路由响应也能正常接受。 - 新增启动上线通知,服务恢复后向用户发送友好提示消息。 - 新增项目版本文件和更新日志,并记录每次代码变更必须升级版本和更新日志的规则。