更新日志
本文件保留聚合版本历史。GitHub Release 使用 docs/releases 中与
Tag 同名的独立 Markdown 文件。 后续 Web、OmniMail Float 与 Android
分别使用 vX.Y.Z、float-vX.Y.Z 和
android-vX.Y.Z,三套版本号互不影响;以下既有历史记录保持不变。
[1.2.0] - 2026-10-01
- 新增可选 Telegram 私聊新邮件提醒,覆盖八类已索引邮箱来源,支持来源选择、消息内容级别、 免打扰时段、时区、暂停、解除连接与测试消息;默认只发送来源和站内链接。
- 主邮箱正文可选转发为纯文本或 Telegram 富文本;长纯文本作为
.txt文件发送,富文本失败 时回退纯文本。外部邮箱不发送正文,附件不转发。 - 优化 Telegram 设置卡片,明确连接状态、内容隐私选项和免打扰设置。
- Linux DO 未读邮件打开后尝试写入服务器已读标记并更新列表;写入失败时仍返回正文,重新打开可重试。
- 修正 Telegram 富文本请求中关闭自动识别的参数位置,并加强 Linux DO UID 校验。
升级说明
- 从 Web
1.1.4升级时,先备份 D1,再运行npm run build和npm run deploy;部署脚本自动 应用0038_telegram_notifications.sql、0039_telegram_message_body.sql、0040_telegram_rich_body.sql并部署独立通知 Queue 与死信队列。 - Telegram 为可选功能;启用时配置
TELEGRAM_BOT_TOKEN和TELEGRAM_WEBHOOK_SECRET两个 Secret, 由主管理员从 HTTPS 正式站点注册 Webhook,再由用户连接私聊。原有邮箱连接无需重新绑定。 - 回滚旧 Worker 前先停止通知队列消费,保留新增 D1 表和字段。完整说明见 Web 1.2.0 发布说明。Float 与 Android 版本保持独立。
[1.1.4] - 2026-09-27
- 邮件列表以更清晰的字重和预览对比区分已读与未读,继续保留未读状态点;收藏星标仍独立于已读状态。
- 在缺少粗体字形的中文回退字体上允许合成粗体,避免未读邮件看起来与已读邮件相同。
升级说明
- Web
1.1.3可直接升级;不新增 D1 迁移、变量、Secret、资源绑定或 API 变更。
[Float 1.0.2] - 2026-09-27
- 悬浮面板的收件箱与最近邮件列表使用更明显的已读和未读字重差异。
- iCloud IMAP 邮件列表显示已知的未读状态,打开邮件后根据服务端已读结果同步列表; 不对缺少状态的 iCloud Web 摘要猜测已读状态。
- 不新增 Chrome 权限或设备令牌 Scope,现有授权继续有效。
[1.1.3] - 2026-09-15
- 修复添加 Gmail 账号时,直接粘贴 Google 展示的带空格分组应用密码会被判为无效的问题。
- 应用密码校验改为按 Unicode 空格分隔符与零宽字符统一剥离,覆盖普通空格、不间断空格 (U+00A0)、窄不间断空格(U+202F)和零宽空格(U+200B);制表符、换行仍判为无效。
- 添加账号与更新应用密码两个表单的提示文案补充"空格会被自动忽略",中英文同步。
- 字段校验函数抽离为独立模块,Gmail 账号 API 文件回到行数上限以内。
升级说明
- Web
1.1.2可直接升级,不新增 D1 迁移、变量、Secret、资源绑定或 API 变更。 - 已连接的 Gmail 账号无需重新验证;此前因空格问题添加失败的用户重试一次即可。
[1.1.2] - 2026-09-15
- 修复已配置有效邮箱密钥后,NAVER 和 Yandex 仍提示未启用的问题;移除两个额外的 IMAP 环境开关。
- NAVER、Yandex 入口默认显示,管理员在系统设置中控制隐藏;已有隐藏设置在升级后继续保留。
- API、后台同步与前端配置使用一致的启用条件,并同步更新部署文档及回归测试。
升级说明
- Web
1.1.1可直接升级,不新增 D1 迁移、变量、Secret、资源绑定或 API 变更,沿用现有有效密钥。 NAVER_MAIL_IMAP_ENABLED和YANDEX_MAIL_IMAP_ENABLED不再生效,包括残留的false。 曾依赖这两个开关暂停的已有账号会恢复同步;系统设置隐藏入口不会停止后台同步,需要停止时请断开对应账号。
[1.1.1] - 2026-09-15
- 修复首次部署时,Cloudflare 已预创建 Worker 但尚未绑定 DB 导致初始化被提前拦截的 问题。其他服务的 D1 不再影响建库;核对默认与历史库名无冲突后自动创建资源并执行 全部建表迁移。已有 DB 绑定优先,同名库冲突时提示恢复绑定或显式指定数据库 ID。
- 按库名查找 D1 使用名称过滤和分页,并核对完整名称,避免将名称当成 UUID 查询或 将近似名称的其他数据库误认为目标库。
升级说明
- Web
1.1.0可直接升级,不新增 D1 迁移、变量、Secret、资源绑定或 API 变更。 - 首次部署及后续更新均使用
npm run deploy;账号中其他服务的数据库保持原配置。
[1.1.0] - 2026-09-14
修复密钥迁移弹窗底部按钮被截断及背景透字,正文独立滚动并适配窄屏、矮窗口。
D1 每日额度耗尽时,连接失败页面显示中文原因与本地预计恢复时间;兼容旧后端英文错误, 避免反复刷新,并在每日额度恢复时及时结束退避。
新增桌面账号目录和受设备令牌、密码及 MFA 保护的凭据导入接口;桌面客户端仍处于规划阶段。
邮件详情补充回复地址字段,优化外链确认弹窗的滚动条显示。
修复 D1 部署时数据库名称与迁移推导名称不一致的问题(#12):已有 Worker 按实际
DB绑定 ID 迁移和发布,兼容旧库名;首次自动创建统一命名为omni-mail-db。权限、绑定或 显式 ID 冲突会停止,避免新建替代库或迁移错库。仓库中的用户配置不会被临时解析结果改写。外部邮箱同步只在元数据或状态变化时写入,规范化标志并保留缺失的远端日期;索引裁剪仅在 新增、重建、上限变更或低频核查时执行。搜索历史补全保存游标,完成后每天核查一次。
新增
0037_mail_notification_versions.sql;通知按来源限制候选并独立统计准确未读数, 同版本结果短时复用,来源消息及账号归属变化后失效。D1 日读取或写入额度耗尽时返回明确 503 与恢复时间,Web 和扩展退避请求;队列延迟重试, 定时任务停止本轮后续查询,避免重复错误;额度错误不再误触发数据库迁移恢复。
新增
0036_message_read_optimization.sql,为实际收件地址增加复合索引;数量统计按用户、 权限、邮箱范围和版本短时复用,翻页不重复聚合,并发变化时在同一数据库批次重新读取。重复标记已读、星标不再无效写入;同步版本只在相关数据实际改变时递增,邮箱归属或 可见性变化会立即失效缓存。升级按
npm run deploy先应用迁移。支持一个
MAIL_CREDENTIALS_KEY统一加密全部外部邮箱凭据,同时兼容已有独立密钥及旧密文。主管理员升级后可从收件箱首页配置并主动迁移,显示逐批进度,支持暂停及重试;普通用户无需重新绑定。
不运行后台自动迁移;迁移完成前保留旧 Secret,旧备份和旧版本回滚限制见
docs/MAIL_CREDENTIALS.md。
[1.0.2] - 2026-09-06
修复与改进
- 首次部署时若 D1 尚未创建,部署脚本会先让 Wrangler 自动创建并绑定资源,再初始化 数据库并校验全部迁移记录,避免迁移步骤抢在资源创建前执行。
- 网络中断、限流和 Cloudflare 临时服务故障会按退避间隔自动重试;每次重试迁移前都会 重新读取远端记录,避免响应丢失后重复执行已经成功的 SQL。
- Wrangler 写入标准输出的 JSON 错误不再被吞掉,并会在日志中隐藏令牌、Secret 和签名 URL 参数;权限、配置和 SQL 错误仍会立即停止并保留具体原因。
- 首次设置页的部署检查样式改为随首屏加载,“重新检查”按钮不再退回浏览器默认样式。
升级说明
- Web
1.0.1可直接升级,不新增 D1 迁移、Worker 变量、Secret、资源绑定或 API 变更。 - Workers Builds 的 Deploy command 应使用
npm run deploy,以确保每次发布都包含 D1 迁移检查;单独运行npx wrangler deploy不会执行项目迁移脚本。
[1.0.1] - 2026-09-05
改进
- 手机端主导航由拥挤的底部栏改为左侧抽屉,统一收纳邮件文件夹、第三方邮箱、管理员 功能与账户入口;已启用的邮箱来源增多时不再挤成多排或横向滚动。
- 邮件列表、邮件详情、第三方邮箱工作区与草稿编辑器释放原底栏占用的空间,改为使用 完整移动端视口,并同步调整弹层、提示和安全区位置。
- 抽屉支持遮罩与关闭按钮、Escape 键关闭、键盘焦点约束、选择后自动收起以及内部滚动, 同时适配浅色和深色主题。
升级说明
- Web
1.0.0可直接升级;本版本不新增 D1 迁移、Worker 变量、Secret、资源绑定或 API 变更,也不修改 OmniMail Float 和 Android 的独立版本号。
[1.0.0] - 2026-09-04
稳定兼容基线
- Web/API 与 OmniMail Float 同时进入
1.0.0,正式建立1.x向后兼容承诺。 - Web 与 Float 共用八类官方邮箱来源 ID 和工作区路径注册表,冻结账号状态、能力字段及 通知深链接协议;新增来源不能再只修改单侧实现。
- 新增来源级兼容矩阵和稳定契约测试,覆盖固定 API 适配器、错误归一、通知来源与 Web 工作区路由。
升级说明
- Web
0.10.4可直接升级;本版本不新增 D1 迁移、Worker 变量、Secret 或资源绑定。 - Float
0.8.1可直接覆盖升级,不新增 Chrome 权限、设备 Scope 或数据处理类型,也不 需要重新授权。 1.0仍面向个人和小团队自托管场景,不提供端到端加密、企业合规归档或高可用保证。
[0.10.4] - 2026-08-30
新增
- 为 iCloud(应用专用密码)和 Linux DO Mail 增加服务端轻量 IMAP 元数据索引。
- 新增
/api/mail-notifications统一通知接口,Float 每分钟只需一次请求。 - 新增
mail-notifications:read设备令牌 Scope;正文和附件仍按需读取,不写入索引。
安全与升级说明
- Cookie-only iCloud 账号不会被后台轮询;账号凭据错误会退避重试,不产生请求风暴。
- 应用 D1 迁移
0035_external_mail_indexes.sql后即可启用;本次不发布 Chrome Web Store。
[0.10.3] - 2026-08-30
新增
- 为 Float
0.7.0增加附件、同步、Microsoft 文件夹、草稿、发信、回复和本地索引通知 的来源级最小 Scope。 - Float 完成安全附件、稳定分页、OmniMail/QQ/Linux DO 发信、聚合通知、勿扰时段和 Web 深链接。
安全与升级说明
- 旧设备令牌不会静默扩大权限;用户需要在 OmniMail 网站明确重新授权。
- 旧版 Float 令牌需要在 OmniMail 网站重新授权以获得通知 Scope。
[0.10.2] - 2026-08-29
新增
- OmniMail Float 设备令牌新增 Linux DO Mail 的最小只读 Scope,可读取当前用户已连接 账号、INBOX/已发送列表和主动打开的正文。
- Float 完成 OmniMail、iCloud、Linux DO、Gmail、Microsoft、QQ、NAVER、Yandex 八类 Web 邮箱来源的发现与读取基线。
安全与升级说明
- Linux DO 连接、凭据更新、验证、发信及其他写操作不向 Float 开放;第三方凭据仍只在 Web 端处理。
- 无需 D1 迁移、新增变量、Secret 或资源绑定;旧 Float
0.4.1会话需明确升级授权 后才读取 Linux DO。
[0.10.1] - 2026-08-29
新增
- OmniMail Float 设备令牌新增 Microsoft、NAVER 与 Yandex 的最小只读 Scope,只允许 当前用户已连接账号的公开元数据、邮件列表和主动打开的正文。
- 扩展授权页统一说明已连接第三方邮箱的读取范围;已有 Float
0.4.0会话在重新授权 前继续保留 Gmail/QQ 能力,不会静默获得三个新来源。
安全与升级说明
- 不向 Float 开放 Microsoft 文件夹刷新、第三方账号管理、远端同步、附件、凭据或写 操作;未知来源仍不能变成任意 API 请求代理。
- 无需 D1 迁移、新增变量、Secret 或资源绑定。
[0.10.0] - 2026-08-29
新增
- OmniMail Float 设备令牌新增 Gmail 与 QQ 邮箱的最小只读 Scope,只允许读取当前用户 已连接账号的公开元数据、邮件列表和主动打开的正文。
- 扩展授权页明确展示 Gmail/QQ 读取用途;旧版令牌不会在刷新时自动获得新权限,必须由 用户重新确认授权。
安全与升级说明
- 不向 Float 开放 Gmail/QQ 凭据、账号管理、远端同步、附件、QQ 身份、发信或删除接口。
- 无需 D1 迁移、新增变量、Secret 或资源绑定;部署后只影响主动升级到
Float
0.4.0的扩展会话。
[0.9.3] - 2026-08-29
修复
- 兼容 QQ 邮箱部分
UID FETCH响应缺少 UID 的情况,改为逐 UID 请求并使用请求上下文安全 关联,避免同步在读取元数据阶段失败。 - 若 QQ 返回的 UID 与请求不一致,系统会拒绝写入,防止邮件元数据错配。
- 操作日志新增完整详情弹窗,长错误说明、阶段、错误码、状态码、耗时和重试状态不再被列表 单行省略遮挡。
升级说明
- 无需 D1 迁移、新增变量、Secret 或资源绑定,
0.9.2实例可直接升级。
[0.9.2] - 2026-08-29
新增
- 管理员操作日志新增独立的“QQ 邮箱”分类,可集中筛选账号、身份、同步和发信事件。
- QQ 邮箱同步日志补充任务来源、同步阶段、错误码、重试状态、邮件数量和耗时等诊断字段。
改进
- QQ 账号连接、重命名、授权码更新、验证、断开,发信身份增删、手动同步及发信操作记录更 完整的安全化详情;邮箱地址统一脱敏。
- 操作日志搜索支持 QQ 账号和发信身份名称、邮箱,分类筛选栏在窄屏下自动换行。
- 定时同步仅在错误码变化时记录失败事件,避免重复错误刷屏;定时成功不写审计日志。
安全与升级说明
- 审计日志不记录授权码、邮件主题、正文、附件名称或服务器原始响应。
- 无需 D1 迁移、新增变量、Secret 或资源绑定,
0.9.1实例可直接升级。
[0.9.1] - 2026-08-29
新增
- 新建邮件支持回车、逗号、分号或批量粘贴多个收件人,自动规范化、去重并以可删除标签展示; Resend 使用多地址投递,SendFlare 使用官方批量接口。
- 增加应用级错误边界、诊断编号和恢复页;客户端崩溃摘要会安全化后写入 Cloudflare Workers Logs。
- QQ 邮箱同步增加阶段化结构日志,记录错误码、任务来源、重试次数和耗时,不记录凭据、邮件 内容或服务器响应原文。
修复与可靠性
- 前端运行时异常不再直接留下白屏;用户可以重新加载邮箱继续操作。
- 新增同一页面连续发送两封邮件的回归覆盖,并保持现有单收件人草稿兼容。
- 未处理 API 异常改为结构化事件,可按请求路径和 Cloudflare Ray ID 排查。
升级说明
- 无需 D1 迁移、新增变量、Secret 或资源绑定,
0.9.0实例可直接升级。
[0.9.0] - 2026-08-28
新增
- 新增默认关闭的 Yandex Mail 只读 IMAP 工作区,支持个人
@yandex.com多账号聚合、有限 INBOX 索引、搜索、按需正文、附件与可降级已读同步。 - 新增 Yandex 独立凭据密钥、部署开关、管理员入口开关、10 个
API、部署检查、审计事件和 D1 迁移
0034_yandex_mail_imap.sql。
修复
- 修复 Yandex 后台同步已经完成,但账号管理弹窗仍持续显示“正在同步”的问题;弹窗现在会在 打开期间刷新账号状态,并在关闭时刷新账号与邮件列表。
- 修复关闭账号弹窗后立即打开邮件时,稍晚返回的旧列表快照可能把已读状态覆盖回未读的问题。
安全与上线要求
- 仅接受个人
@yandex.com和 Yandex Mail 应用密码,固定连接imap.yandex.com:993直接 TLS;不开放 SMTP 或其他远端写操作。 - 功能默认关闭;生产开放前应使用实际 Worker 完成账号验证和低频稳定性观察。
[0.8.1] - 2026-08-28
修复
- 修复系统设置中的“部署初始化向导”入口样式依赖懒加载弹窗 CSS,首次渲染时退化为浏览器 原生按钮的问题;入口样式现随管理员页面加载,并补充焦点与窄屏状态。
[0.8.0] - 2026-08-28
新增
- 新增默认关闭的 NAVER Mail 只读 IMAP 工作区,支持多账号有限 INBOX 索引、搜索、按需正文、 附件和可降级的远端已读同步。
- 新增 NAVER 专用凭据密钥、环境紧急开关、管理员入口开关、API 文档和 D1
迁移
0033_naver_mail_imap.sql。
安全与上线要求
- 仅接受个人
@naver.com和 NAVER 应用专用密码,固定连接官方 IMAP TLS 端点;不开放 SMTP 或其他远端写操作。 - 生产开放前仍需完成真实 Worker 登录和至少 24 小时稳定性观察,未验收时保持功能关闭。
改进与修复
- NAVER 首次同步保留最近 100 封,此后单轮最多拉取 20 封新增邮件并刷新最近 20 封状态; 过期同步租约会自动恢复,避免大邮箱长期停留在“正在同步”。
- D1 迁移规划增加
0031 → 0033、已有网易测试迁移0032 → 0033和重复部署幂等测试;0032永久保留,不进入主线。
[0.7.2] - 2026-08-28
修复
- QQ 邮箱同步改为单轮最多拉取 20 封新增邮件并刷新最近 20 封状态,同时自动恢复租约过期的 同步任务,避免大邮箱反复抓取 500 封元数据后永久停留在“正在同步”。
- Gmail 同步采用相同的分批策略与过期租约恢复机制;QQ/Gmail 手动同步页面新增 10、20、50 封的同步数量选择,并优化 QQ SMTP 发件身份候选菜单。
- Gmail 账号设置弹窗改为与 QQ 一致的二级设置流程,统一返回导航、状态摘要和操作分组。
- 修复主管理员开启无人收件后,邮件已接收但被隐藏邮箱过滤、无法出现在“所有邮箱”收件箱的问题。
[0.7.1] - 2026-08-27
新增
- QQ 邮箱账号支持添加多个已验证发信身份,包括
@qq.com英文地址、@foxmail.com和@vip.qq.com;这些身份共用一个 IMAP 收件箱,不再重复同步相同邮件。 - 新建和回复 QQ 邮件时可选择发件身份;回复会优先匹配原邮件收件地址,无法匹配时回退到 主身份。
- 新增发信身份创建与删除 API、审计事件,以及 D1 迁移
0031_qq_mail_identities.sql。
改进与修复
- QQ 账号设置改为紧凑选项目录,备注、邮箱身份、连接验证、同步和授权码分别进入独立子页; 设置流程使用稳定的响应式高度,内容只在内部滚动。
- 设置子页增加前进与返回方向动画,并在系统启用“减少动态效果”时自动停用动画;切换后焦点 会移至新标题,保持键盘和读屏操作连续。
- 移除 QQ 邮件空阅读区中“打开邮件后会尝试同步已读状态”的说明,减少无关提示。
- 发信接口拒绝未验证或已停用的身份,主身份不可删除,避免构造任意
From地址。
安全与可靠性
- 新身份会先使用现有授权码通过 QQ SMTP 验证,验证成功后才写入 D1;验证过程不会发送测试 邮件,也不会向浏览器返回授权码。
- 升级时会为现有 QQ 账号自动回填主身份;删除附加身份只停用 OmniMail 中对应的发信入口, 不删除共享收件箱或 QQ 邮箱中的邮件。
升级说明
- 部署脚本会自动应用
0031_qq_mail_identities.sql,现有 QQ 账号、授权码和邮件索引无需重新 连接。 - 无需新增 Worker 变量或 Secret;附加身份需由用户在 QQ 账号管理中手动添加并验证。
测试
- 527 项 Web/Node 单元与组件测试、10 项 Worker 测试和 74 项 Playwright E2E 全部通过。
- 覆盖身份域名校验、SMTP 验证、主身份保护、未知发件人拒绝、发件选择、回复身份匹配、设置 子页动画方向、固定高度、返回路径和减少动态效果兼容。
- TypeScript、Oxlint、生产构建、发布元数据检查、D1 迁移幂等执行和 Wrangler dry-run 通过。
发布
- Web 版本升级为
0.7.1;OmniMail Float 与 Android 保持各自独立版本。
[0.7.0] - 2026-08-27
新增
- 新增独立 QQ 邮箱工作区,支持通过授权码连接多个个人
@qq.com账号,并在全部账号与 单账号范围之间切换。 - 支持有限 INBOX
元数据同步、搜索、分页、按需正文和附件读取,以及打开来信后的精确
\Seen已读写入。 - 支持从所选 QQ 账号向单个收件人新建和回复邮件,固定使用
smtp.qq.com:465直接 TLS, 并接入既有 Queue、幂等、限速和审计链路。 - API 参考、部署指南和系统设置补齐 QQ 邮箱的 11 个接口、独立功能入口与连接说明。
安全与可靠性
- 授权码使用独立
QQ_MAIL_CREDENTIALS_KEY和绑定用户、账号与凭据用途的 AES-GCM 加密; API、日志与审计记录均不返回授权码。 - IMAP/SMTP 主机、端口与 TLS 策略由服务端固定,不接受 QQ 登录密码、自定义服务器、代理 或原始邮件协议命令。
- 同步使用账号级租约并限制索引规模;SMTP
发送限制单收件人、用户级配额和每日上限,
DATA后连接不确定时不会自动重发,避免重复邮件。
改进与修复
- Gmail 与 QQ 邮箱复用共享的 IMAP 阅读器、范围切换、搜索和 SMTP 写信组件,减少重复实现。
- QQ 邮件回复入口移至邮件正文与附件之后,标题栏保持专注于导航和来源信息。
- 侧边栏品牌区增加 GitHub 仓库与 OmniMail 官网入口,并保持窄侧栏与移动导航紧凑。
- API 指南 E2E 改为复用实际 Catalog 端点数量,新增接口时不再因重复硬编码计数而失效。
升级说明
- 新增 D1 迁移
0029_qq_mail_imap.sql与0030_qq_mail_smtp.sql,部署脚本会按顺序自动应用。 - 启用 QQ 邮箱前,必须在 Worker Variables & Secrets 中配置至少 32
字节的
QQ_MAIL_CREDENTIALS_KEY,并由用户在 QQ 邮箱设置中开启 IMAP/SMTP 服务、生成授权码。 - 可设置
QQ_MAIL_IMAP_ENABLED=false紧急隐藏入口并停止新的定时同步;不使用 QQ 邮箱的 现有部署无需连接账号,其他邮箱功能不受影响。
测试
- 520 项 Web/Node 单元与组件测试、10 项 Worker 测试和 74 项 Playwright E2E 通过。
- 全新隔离 D1 从
0001到0030完整迁移并通过二次幂等执行;TypeScript、Oxlint、 生产构建、发布元数据检查与 Wrangler dry-run 通过。
发布
- Web 版本升级为
0.7.0;OmniMail Float 与 Android 保持各自独立版本。
[0.6.1] - 2026-08-26
改进
- Microsoft 账号管理弹窗固定账号数量与操作按钮,仅账号卡片列表独立滚动,避免批量管理和 添加账号按钮随列表移出视口。
- Microsoft 单账号断开操作改用独立危险确认弹窗,不再在账号设置页面底部插入确认区域。
- iCloud、Linux DO、Gmail 与 Microsoft 邮件详情将整列作为滚动区域,正文两侧空白区域也可 响应滚轮,同时保持正文原有最大宽度和居中布局。
兼容
- 无需新增 D1 迁移、Worker 变量或 Secret;现有邮箱账号、凭据和邮件索引无需调整。
测试
- TypeScript、Oxlint、文件行数检查、组件测试、18 项相关 Playwright E2E 与生产构建通过。
- 已在 Cloudflare 线上环境人工验证账号弹窗和邮件详情滚动行为。
发布
- Web 版本升级为
0.6.1;OmniMail Float 与 Android 保持各自独立版本。
[0.6.0] - 2026-08-26
新增
- 新增独立 Microsoft 邮箱工作区,可连接多个 Outlook.com、Hotmail、Live,以及租户允许 IMAP 的 Microsoft 365 委托式账号。
- 支持分字段录入和两步批量导入;浏览器识别完整组合与仅 OAuth2 两类格式,安全预览不会 回显 refresh token、组合密码或完整 Client ID。
- 支持全部账号 INBOX 聚合、单账号文件夹浏览、25/50/100/200 条分页、本地元数据搜索、 手动同步、当前文件夹刷新、正文读取和最大 5 MiB 附件下载。
- 支持打开未读邮件后精确同步 Microsoft
\Seen状态;同步失败不会阻断正文显示。 - 账号管理支持重命名、验证、替换 OAuth2 凭据、单个断开与批量断开;范围面板支持复制 任意账号邮箱,全部范围默认复制第一个邮箱并可同步所有账号。
安全与可靠性
- Microsoft 认证只允许 OAuth2 + IMAP XOAUTH2,固定访问 Microsoft
Global 官方 token endpoint 与
outlook.office365.com:993;仅邮箱密码、IMAP LOGIN 和认证降级均已停用。 - refresh token、短期 access token 与经确认留存的组合 password
使用独立
MICROSOFT_CREDENTIALS_KEY和绑定用户、账号、凭据类型的 AES-GCM 上下文加密。 - 同步使用 Queue、五分钟调度、六分钟账号租约和账号级 token 刷新租约;消息身份绑定 account、folder、UIDVALIDITY 与 UID,所有 API 都校验当前用户归属。
- 正文和附件只按需读取且不持久化;唯一新增远端写入是对已校验 UID 添加
\Seen。
改进
- Microsoft 连接、批量导入与账号管理共用响应式固定高度弹窗,内容只在内部滚动,避免不同 页面和逐项导入过程导致外框与操作按钮跳动。
- 增加带减少动态效果兼容的弹窗开关动画、逐项导入状态动画、延迟显示滚动条、稳定安全预览 和完整的键盘焦点管理。
- Microsoft 实施说明、部署指南、API Catalog、生成式 API 文档和 README 已全部按当前实现 重写,移除密码兼容与待实现阶段等过时描述。
升级说明
- 新增 D1 迁移
0027_microsoft_imap.sql与0028_microsoft_oauth_combination_password.sql;现有部署在升级时会按顺序自动应用。 - 使用 Microsoft 邮箱前必须配置至少 32 字节的
MICROSOFT_CREDENTIALS_KEY。可选设置MICROSOFT_MAIL_ENABLED=false紧急停用入口和定时入队;不配置密钥时该功能保持关闭。 - 需要由部署者自行准备与用户配套的 refresh token、Client
ID、authority,并确保令牌包含 Outlook IMAP 委托权限和
offline_access。
测试
- 507 项 Web/Node 单元测试、10 项 Worker 池测试与 72 项 Playwright E2E 全部通过。
- 全新隔离 D1 从
0001到0028应用成功,第二次执行确认幂等;TypeScript、Oxlint、 生产构建、API 文档生成与 Wrangler dry-run 通过。
发布
- Web 版本升级为
0.6.0;OmniMail Float 与 Android 保持各自独立版本。
[0.5.3] - 2026-08-25
新增
- 管理员进入邮箱首页时自动检查是否存在新版本;发现更新后显示轻量提示,并在五秒后 自动消失。
- iCloud 支持仅使用主邮箱和应用专用密码收信,无需同时配置用于管理隐藏邮箱的 Cookie。
- iCloud 主邮箱加入收件地址列表,支持筛选邮件和复制地址。
改进
- Linux DO 邮箱标题显示当前地址并提供复制按钮;Gmail 增加当前账号复制按钮。
- 提高 iCloud 邮箱切换器中账号名称和地址的字号与对比度。
- Web 前端按
app、features、shared重组,Worker 按app、features、platform、shared重组;同步拆分大型路由、D1 Schema、API 类型、国际化和样式文件。
兼容
- 无需新增 D1 迁移、Worker 变量、Secret 或资源绑定;现有邮箱账号和凭据无需重新配置。
发布
- Web 版本升级为
0.5.3;OmniMail Float 与 Android 保持各自独立版本。
[0.5.2] - 2026-08-25
改进
- 收件趋势图的数据点改用站内统一悬浮提示,继续显示精确日期与邮件数量,并支持键盘 聚焦和“减少动态效果”。
修复与兼容
- 修复独立进入 Gmail 工作区时未加载查看范围组件共享样式,导致账号范围弹层退化为 浏览器默认布局的问题。
- Gmail 查看范围弹层继续限制在当前视口内;无需新增 D1 迁移、Worker 变量、Secret 或 资源绑定。
发布
- Web 版本升级为
0.5.2;OmniMail Float 与 Android 保持各自独立版本。
[0.5.1] - 2026-08-25
新增
- iCloud、Linux DO 与 Gmail 邮件详情补齐顶部邮件标题动画;点击顶部标题或右下角悬浮 按钮均可平滑返回详情顶部。
- 域名邮箱各文件夹及 iCloud、Linux DO、Gmail 邮件列表支持点击页面标题返回列表顶部。
改进
- Gmail 未配置状态保留完整邮件双栏布局,并使用与其他外部邮箱一致的空状态提示。
- 英文翻译、管理页面与外部邮箱样式按需加载,减少中文首屏不需要的资源。
- 邮件内嵌图片使用可回收的 Blob URL,并在正文未溢出时跳过额外布局扫描,降低内存和 渲染开销。
- 新邮件通知复用收件箱版本,减少浏览其他文件夹时的重复请求;前端大型模块进一步拆分, 并增加 React Hooks lint 与更严格的文件行数检查。
修复与兼容
- 修复 Linux DO 独立路由在移动端可能缺少共享详情样式的问题。
- 回顶操作支持键盘焦点与“减少动态效果”;无需新增 D1 迁移、Worker 变量、Secret 或 资源绑定。
发布
- Web 版本升级为
0.5.1;OmniMail Float 与 Android 保持各自独立版本。
[0.5.0] - 2026-08-24
新增
- 新增独立 Gmail 工作区,通过固定的 Gmail IMAP TLS 连接聚合多个个人或 Workspace Gmail 账号的 INBOX。
- 支持连接、重命名、验证、更新应用专用密码、手动同步和断开账号,并可在全部 Gmail 与单账号范围之间切换。
- 支持 D1
元数据搜索、稳定游标分页、按需读取正文与附件,以及打开正文后同步 Gmail
\Seen已读状态。
安全与可靠性
- Gmail 应用专用密码使用独立 Secret 和 AES-GCM 加密,密文绑定用户与账号;所有 Gmail 查询先验证当前用户归属。
- IMAP 固定连接
imap.gmail.com:993,仅开放受控读取命令和精确的已读写入,并限制连接、 响应、正文和附件大小。 - 凭据验证增加用户与 IP 组合限速;密码更新会撤销旧同步租约,防止旧任务覆盖恢复后的 账号状态。
- 手动同步在 D1 记录请求后立即返回,Queue 发送转入响应后任务;发送延迟或失败时由 定时同步补偿,避免前端把成功同步误报为超时。
改进
- Gmail 元数据同步使用 Queue、六分钟账号租约和五分钟定时调度;单账号失败不会阻断 其他账号。
- HTML 邮件阅读器适配固定宽邮件与窄屏,正文和附件仅按需读取,不持久化到 D1 或 R2。
- Gmail 账号弹窗增加遮罩与卡片的进入/退出动画,关闭后再卸载,并兼容减少动态效果与 键盘焦点圈定。
升级
- 新增 D1 迁移
0025_gmail_imap.sql和0026_gmail_unlimited_accounts.sql。 - 使用 Gmail 前必须配置至少 32 字节的
GMAIL_CREDENTIALS_KEY;不配置时不会启用 Gmail。
发布
- Web 版本升级为
0.5.0;OmniMail Float 与 Android 保持各自独立版本。
[0.4.1] - 2026-08-23
新增
- 邮件主标题滚出阅读区后,顶部工具栏会显示当前邮件标题;点击标题或右下角按钮均可 平滑返回邮件顶部。
改进
- 顶部标题使用可中断的双向打字机动画,并兼容“减少动态效果”和长标题省略。
- 邮件列表使用短距离、短错峰的入场动画,降低加载完成后的突兀感。
- 邮箱顶部工具重新分组:标题与主要操作左右对齐,通知入口在桌面侧栏和移动端顶部间 自适应切换;iCloud 首次打开改为无悬浮卡的轻量加载状态。
修复与兼容
- 主管理员邮件详情遵循系统远程图片设置并继续通过同源代理加载;详情抽屉增加完整的 打开和关闭动画、焦点恢复及减少动态效果支持。
- 主邮箱标题栏样式限定在自身工作区,避免影响 iCloud 与 Linux DO Mail 标题和操作布局。
- 无需新增 D1 迁移、Worker 变量、Secret 或资源绑定。
发布
- Web 版本升级为
0.4.1;OmniMail Float 与 Android 保持各自独立版本。
[0.4.0] - 2026-08-23
新增
- 新增独立的 Linux DO Mail 工作区,支持连接一个
@linux.do邮箱、读取 INBOX 最近 邮件与正文,并执行服务器端搜索。 - 新增 Linux DO Mail SMTP 发信、已发送视图与发件搜索,复用现有队列、幂等、失败状态、 审计日志和用户限速。
- 管理员可分别控制 iCloud 与 Linux DO Mail 工作区入口是否显示。
改进
- 提取 iCloud 与 Linux DO Mail 共用的最小 IMAP 连接层,统一 TLS、超时与协议错误处理。
- Linux DO Mail 支持先验证再轮换密码或认证令牌,验证失败时保留原凭据。
安全与兼容
- Linux DO Mail 凭据通过独立 Secret 进行 AES-GCM
加密,服务地址固定为官方
mail.linux.do:993/465,API 不返回原始凭据。 - SMTP 发件地址固定为已验证账号,并拒绝命令和邮件头换行注入;每日硬上限不受全局限速 开关影响。
- 从
v0.3.7升级会自动应用 D1 迁移0023和0024;使用 Linux DO Mail 时需新增LINUX_DO_MAIL_CREDENTIALS_KEYSecret,不使用该功能时可以留空。
发布
- Web 版本升级为
0.4.0;OmniMail Float 与 Android 保持各自独立版本。
[0.3.7] - 2026-08-22
新增
- iCloud 邮箱新增邮件搜索;IMAP 模式由 Apple 服务器检索,Web 摘要模式可筛选当前已 加载邮件。
改进
- iCloud 邮件列表与正文增加浏览器会话内存缓存,过期内容可先显示并在后台刷新;手动 刷新仍会强制请求 Apple 服务器。
- 放大邮件阅读页的发件人、转发地址、收件地址和时间信息,并优化完整正文加载文案。
- iCloud 查看范围弹窗固定异步加载期间的布局与滚动槽位,滚动条按悬停或键盘焦点显示, 并增加支持“减少动态效果”的退场动画。
修复与兼容
- 备份身份标识同时接受旧版带连字符 UUID 和新版 32 位十六进制格式,旧数据库无需手工 修改即可继续创建实例隔离备份。
- iCloud 邮件缓存按用户、账号、收件地址和搜索词隔离;接口响应禁止公共缓存。
发布
- Web 版本升级为
0.3.7;无需新增 D1 迁移、Worker 变量、Secret 或资源绑定。 - OmniMail Float 与 Android 保持各自独立版本,本次 Web 发布不包含其安装包。
[0.3.6] - 2026-08-22
新增
- iCloud 隐藏邮箱支持按名称、最新创建时间和邮箱地址排序。
- iCloud IMAP 邮件读取并同步服务器
\Seen状态,Web 摘要不伪造已读状态。 - 操作日志新增 iCloud 分类、可读动作名称、账号与隐藏邮箱详情。
- 新增 D1 迁移
0022_consistency_guards.sql,补充待删除对象、主邮箱唯一性和草稿状态 版本约束。
改进
- 强化发信幂等、SendFlare / Resend 重试边界、R2 延迟删除、存储配额与备份实例隔离。
- 密码变更会撤销旧会话并轮换当前浏览器会话。
- Web、管理页与浏览器扩展取消失效请求,避免旧响应覆盖当前状态。
- Worker 启动只检查最新迁移,健康检查不访问 D1;远程部署跳过已更新数据库的旧版 Bootstrap。
修复与兼容
- 阻止投递结果不确定时自动重复发信,并修复并发删除、配额释放、草稿版本及主邮箱创建的 一致性边界。
- 从
v0.3.5升级会自动应用0022;无需新增 Worker 变量、Secret 或资源绑定。
发布
- Web 版本升级为
0.3.6;OmniMail Float 与 Android 保持各自独立版本。
[0.3.5] - 2026-08-21
新增
- 收件箱新增“仅看未读”筛选;未读邮件增加与收藏星标同轴的状态点,并保留字体强调和 屏幕阅读器提示。
- 添加 iCloud 账号时可选填 iCloud 邮箱和应用专用密码,与 Cookie 一次验证后原子保存。
改进
- 隐藏邮箱批量创建的“增加邮箱”操作加入平滑入场和弹窗位置过渡,卡片宽度保持稳定。
- iCloud IMAP/Web 状态压缩到右上角;账号资格说明改为醒目的内联警示。
- iCloud 区域选择改为“全球 / 中国大陆”双段滑块,并加入滑动动画和键盘状态。
修复与兼容
- iCloud Web 客户端参数更新到 Apple 当前
2630Build35,修复中国区创建隐藏邮箱时可能 遇到的 Apple HTTP 400。 - 新增中国区“验证账号 → 生成地址 → 保留地址”完整请求测试。
- 无需新增 D1 迁移、Worker 变量、Secret 或资源绑定。
发布
- Web 版本升级为
0.3.5;OmniMail Float 与 Android 保持各自独立版本。
0.3.3 - 2026-08-20
新增
- iCloud 账号列表增加独立设置入口,支持修改备注名称、更新 Cookie 和应用专用密码; 新增归属校验、审计日志和对应 API。
- 创建隐藏邮箱前可预览并更换 Apple 候选地址;支持一次创建最多 5 个、独立标签以及 部分失败后保留剩余项目继续处理。
- 新增按 9 个业务分类生成的完整 Markdown API 参考,以及
npm run docs:api和 Catalog 元数据指纹同步测试。
改进
- 五地址批量创建在桌面端使用两列紧凑卡片,移动端自动单列;操作按钮补齐触控尺寸、 加载状态、悬浮说明和无障碍名称。
- iCloud 凭据保存成功反馈改为固定 toast;邮件发件人可识别 Hide My Email 中继地址, 不再直接显示冗长编码。
- 侧栏头尾固定、中间菜单独立滚动,滚动条与邮件列表保持一致;iCloud 入口移动到 垃圾箱之后,并支持移动端直接访问。
- 系统更新改为引导管理员同步 GitHub Fork,不再由应用直接触发 Cloudflare 构建。
安全与兼容
- 候选地址与不透明
previewId成对验证,保持 Applegenerate/reserve客户端身份 连续性;无效候选不会请求 Apple。 - Cookie 和应用专用密码继续在 Worker 内加密保存,查询接口不会回传原值。
- 无需新增 D1 迁移、Worker 变量、Secret 或资源绑定。
测试
- 完成 364 项单元测试、8 项 Worker 集成测试和 54 项 Playwright E2E。
- API 文档逐项覆盖 102 个真实端点,并验证路由、说明、参数、响应和示例元数据。
发布
- Web 版本为
0.3.3;OmniMail Float 与 Android 保持各自独立版本。
0.3.2 - 2026-08-18
改进
- iCloud 隐藏邮箱用途标签改为可选;支持自动生成以及购物、社交、订阅、工作、临时 使用等快捷标签,选择后仍可手动修改。
- iCloud 凭据管理中的删除账号操作改为清晰的危险按钮样式,补齐亮色、暗色、悬停和 键盘焦点状态。
修复
- 登录后的工作区锁定根页面滚动,修复完整 API 页面滚到底后整个应用可被卷出视口并 出现大面积空白的问题;API、管理页面和移动端继续使用各自的内部滚动。
测试
- 新增完整 API 页面外层滚动回归测试,验证 102 个接口仍在内部容器中滚动。
- 覆盖 iCloud 自动标签、快捷标签、自定义标签和危险按钮样式,并完成 53 项全量 E2E。
升级说明
- 无需新增 D1 迁移、Worker 变量或 Secret,正常重新部署即可。
发布
- Web 版本为
0.3.2;OmniMail Float 与 Android 保持各自独立版本。
0.3.1 - 2026-08-18
新增
- 在登录后的 Webmail 中新增
/settings/apiAPI 使用工作区,提供当前实例地址、 Bearer Token 获取与轮换流程,以及 cURL、JavaScript、Python、n8n 和 Postman 示例。 - 按 Worker 路由源码完整记录 102 个 HTTP API;支持按模块、路径、方法、用途和参数 搜索,并为每个接口展示权限、请求、响应、限制和可复制 cURL 示例。
改进
- iCloud 隐藏邮箱范围选择器为每个地址增加独立快捷复制按钮,复制时不会切换地址或 关闭选择弹层。
- 创建新的 iCloud 隐藏邮箱后自动切换到该地址,并立即加载对应收件箱。
- 完整 API 目录独立按需加载,不增加其他管理页面的首次打开体积。
修复
- 兼容 Apple Hide My Email
generate接口当前的扁平result.hme响应,同时保留 对旧嵌套响应的支持,修复创建地址时报“iCloud 响应中没有隐藏邮箱地址”。
测试
- API 目录测试会从主路由和子路由源码提取端点,确保 102 个接口无缺失、重复或多余。
- 增加 iCloud 扁平响应、创建后自动切换和范围选择器快捷复制的单元及端到端覆盖。
升级说明
- 无需新增 D1 迁移、Worker 变量或 Secret,正常重新部署即可。
发布
- Web 版本为
0.3.1;OmniMail Float 与 Android 保持各自独立版本。
0.3.0 - 2026-08-17
新增
- 将 OmniIMail 的 iCloud+ Hide My Email 能力融合为 OmniMail 的独立
/icloud工作区,共用现有登录、用户权限、主题、语言与响应式导航。 - 支持连接
icloud.com/icloud.com.cn账号,同步、创建、停用、恢复和删除隐藏 邮箱地址。 - 支持应用专用密码验证、iCloud IMAP 最近来信与完整正文读取;全部邮件视图在 IMAP 不可用时回退到 iCloud Web 摘要。
- 新增
ICLOUD_CREDENTIALS_KEY,使用带用户、账号和字段上下文的 AES-GCM 加密 iCloud Cookie 与应用专用密码;API 永不回传凭据。 - 新增 D1 迁移
0021_icloud_accounts.sql、iCloud API、部署自检项,以及 Node / workerd 的加密、解析、迁移、用户隔离和 Scope 回归测试。
说明
- iCloud 邮件按需从 Apple 读取,不复制到 OmniMail 的 D1、R2 或现有收件箱。
- OmniMail Float 的受限设备令牌默认不能访问 iCloud 凭据与接口。
- Web 版本为
0.3.0;OmniMail Float 保持独立版本,不包含 iCloud 管理接口。
优化
- Worker 可按顺序补齐
0020/0021并写回 Wrangler 迁移记录,避免旧实例因漏跑 D1 迁移持续返回500;部署前仍会正常执行npm run db:migrate。 - iCloud HTTP 与 IMAP 请求增加明确超时和安全重试边界;别名写操作不再因不确定的 网络失败自动重放,操作后的地址统计以 Apple 返回列表为准。
- 账号列表不再解密 Cookie 或应用专用密码,并限制 Cookie 数量、单值大小、总大小及 非法头部字符。
- 切换账号、地址或邮件时会取消失效请求;iCloud 弹窗支持进退场过渡、Escape、焦点 循环和焦点恢复,复制地址会显示成功或失败反馈。
- 将 iCloud 工作区重构为与 OmniMail 收件箱一致的邮件列表与常驻阅读区;账号、隐藏地址 范围和管理操作集中到列表栏,并明确区分 Cookie Web 摘要与 IMAP 完整模式。
- iCloud IMAP 完整邮件保留 HTML 正文并使用沙箱与 CSP 安全渲染;纯文本链接也会经过 OmniMail 外链确认,不再把所有邮件降级成不可点击的灰色文本块。
- iCloud 邮件远程图片遵循系统开关并通过同源代理加载,避免向发件方暴露浏览器网络信息; 列表栏图标操作补齐与主收件箱一致的悬浮说明。
0.2.5 - 2026-08-15
新增
- 新增完整的邮箱地址管理:普通邮箱可以启用、停用、设为主邮箱或经二次确认后删除。
- 删除邮箱时先立即隐藏地址,再由 Cloudflare Workflow 分批永久清理对应邮件、草稿、 附件和主存储对象;主邮箱不能删除,清理任务启动失败时会恢复原状态。
- 快速生成邮箱支持输入自定义前缀;管理员可以配置随机邮箱固定前缀,网页应用和 OmniMail Float 会共享该设置。
改进
- 随机邮箱地址统一使用 12
位十六进制随机字符;固定前缀默认留空,不再强制使用
omni-,可在系统设置中配置最多 20 个字符的前缀。 - 新增版本化发布说明目录与模板,GitHub Release 会直接使用与 Tag 同名的 Markdown 文件,缺失或空文件会阻止发布。
测试
- 新增邮箱主地址切换、删除与异步清理、随机前缀配置和地址格式校验的单元测试。
- 新增自定义邮箱创建、设为主邮箱与删除旧地址的端到端测试,并更新扩展 smoke 测试。
升级说明
- 无需新增 D1 迁移、环境变量或 Secret;部署仍需现有
CLEANUP_WORKFLOW绑定。
发布
- 网页应用与 OmniMail Float 扩展版本统一为
0.2.5,GitHub Release 包含扩展 ZIP。
0.2.4 - 2026-08-14
新增
- 内置 Chrome Web Store 正式版 OmniMail Float 的固定扩展
ID,主管理员可在 系统设置 → 官方浏览器扩展
中直接开启或关闭,无需配置
APP_ORIGINS。 - 新增全局扩展开关 API 与中英文设置卡片;开发版和其他扩展 ID
仍可继续通过
APP_ORIGINS精确配置。
安全
- 官方扩展默认关闭;关闭时同时拒绝固定来源的 CORS、授权码签发、授权码兑换和 后续 API 请求。
- 即使固定商店来源被重复写入
APP_ORIGINS,也不能绕过主管理员的全局开关。
测试
- 新增官方扩展来源、授权流程、公开配置及主管理员权限的回归测试。
- 完整单元测试、Worker 类型检查、前端生产构建及发布门禁均覆盖该功能。
发布
- 网页应用版本升级为
0.2.4;Chrome Web Store 的 OmniMail Float 保持0.2.1,本次不发布新的扩展包。
0.2.3 - 2026-08-14
修复
- 修复
v0.1.0至v0.1.4使用运行时建库、没有 Wranglerd1_migrations表时,直接升级会因查询迁移记录失败而返回500的问题。 - Worker 会根据已知的旧版
schema_version创建 Wrangler 兼容的迁移记录,按顺序 补齐0015至0020;此前迁移失败留下空记录表的数据库也可以继续恢复。 npm run db:migrate会先安全引导已知旧库的 Wrangler 迁移基线,修复手动部署在 新 Worker 上线前就从0001开始执行并发生表冲突的问题;远程迁移改用 D1 文件 导入通道,兼容包含 SQLite Trigger 的迁移文件。- 无法识别的数据库结构不会被猜测性标记为已迁移,仍会返回明确的迁移提示。
测试
- 新增三条旧版结构基线、空迁移表及并发迁移的单元回归测试。
- Worker 集成测试现在会实际删除
d1_migrations,验证旧库恢复后可再次交由 Wrangler 检查且不会重复执行迁移。
发布
- 网页应用与 OmniMail Float 扩展版本统一为
0.2.3。
0.2.2 - 2026-08-13
修复
- 修复通过 Cloudflare Builds 更新时可能绕过 D1 迁移、导致新版 Worker
因缺少
0020_device_token_scopes.sql而返回500的问题;Worker 会安全补齐并登记该迁移。
安全
- 为设备会话增加持久化 Scope;现有桌面令牌保持完整权限,OmniMail Float
新令牌仅
能读取域名与邮箱、创建邮箱、读取邮件及标记已读,访问管理、发信、删除和账户
设置接口时返回
403。 - Refresh Token 轮换会继承原会话 Scope,不能通过刷新扩大权限;设备列表与令牌 响应会返回当前 Scope。
- 服务端强制
SETUP_TOKEN至少为 32 个 UTF-8 字节,并对首次初始化实行每 IP 与 全局 15 分钟限速,超限返回429和Retry-After。 - 初始化完成后,公开的
/api/config不再返回SUPER_ADMIN_EMAIL。
测试
- 新增 Cloudflare Workers Vitest 集成测试,在 workerd/Miniflare 中应用全部 D1 迁移, 操作真实 D1、R2 与 Queue 绑定,并验证扩展 Scope、令牌刷新及初始化安全边界。
- CI 新增
npm run test:worker,与现有 Node 单测、构建、E2E 和 Wrangler dry-run 共同作为发布门禁。
发布
- 网页应用与 OmniMail Float 扩展版本统一为
0.2.2。
0.2.1 - 2026-08-13
新增
- 发布 OmniMail Float 浏览器扩展:支持在普通网页悬浮生成邮箱、自动填入邮箱输入框、 查看收件箱与邮件详情,并接收新邮件通知。
- 新增网站授权扩展流程,使用 Chrome Identity、一次性授权码与 PKCE S256;设备令牌 可撤销,密码和 MFA 始终只在 OmniMail 网站中处理。
- 新增扩展自定义邮箱、随机邮箱、最近邮件自动刷新、右侧停靠与布局恢复。
- 新增 Chrome Web Store 隐私声明、商店素材、真实 Chromium smoke 测试及独立发布 会话脚本。
- 新增 Deploy to Cloudflare 配置,覆盖 D1、R2、Queue、Workflow、Workers AI 与静态 资源绑定。
- 新增邮件搜索、消息列表索引和数据库基线迁移,改善大型邮箱的数据查询与升级流程。
修复
- 修复 Linux DO 登录后丢失扩展授权页路径与查询参数的问题。
- 修复扩展令牌刷新遇到临时网络或服务端错误时错误清除登录状态的问题;仅在刷新令牌 被明确拒绝时退出登录。
- 修复快速切换邮箱时较早请求覆盖当前邮件列表的竞态问题。
- 修复扩展 smoke 测试默认覆盖 Chrome Web Store 正式图片素材的问题。
- 加强扩展来源校验、授权回调验证、会话过期处理和邮件 HTML 隔离。
发布
- 网页应用与 OmniMail Float 扩展版本统一为
0.2.1。 - Chrome Web Store 条目
fpeecjailboemocpmpcbjaghpkpcaihf已提交0.2.1审核, 审核通过后自动公开发布。