Skip to content

Releases: ZeroPointSix/outlookEmailPlus

v2.2.2

22 Apr 03:08

Choose a tag to compare

修复 / Bug Fixes

  • CI 质量门禁彻底修复
    • isort 排序失败:修复 tests/test_settings_dynamic_provider_names.py 内部 import 顺序,通过 isort --check-only
    • coverage 报告失败:在 pyproject.toml 中配置 [tool.coverage.run],omit 测试期间动态创建的临时插件文件(*/outlookEmail-tests-*/plugins/temp_mail_providers/*.py),解决 No source for code 错误。
    • 插件测试文件泄漏:将 test_temp_mail_plugin_manager.pytest_temp_mail_plugin_api.pytearDown 中文件清理模式从 mock_*.py 放宽为 *.py,防止 custom_one.py 等临时文件残留。

重要变更 / Important Changes

  • 版本升级outlook_web.__version__2.2.1 升级为 2.2.2

v2.2.1

22 Apr 02:03

Choose a tag to compare

修复 / Bug Fixes

  • CI 测试环境兼容性修复:将 tests/test_settings_dynamic_provider_names.py 从 pytest 语法迁移至标准库 unittest,消除 CI 环境中因缺少 pytest 导致的 ModuleNotFoundError,修复 Python TestsBuild and Push Docker Image 质量门禁失败。

重要变更 / Important Changes

  • 版本升级outlook_web.__version__2.2.0 升级为 2.2.1

v2.2.0

22 Apr 01:46

Choose a tag to compare

新增功能 / New Features

  • 临时邮箱 Provider 插件化架构:全新插件系统支持第三方临时邮箱 Provider 动态安装、卸载、配置与热加载。
    • 核心模块:temp_mail_registry(全局注册表)、temp_mail_plugin_manager(生命周期管理)、temp_mail_plugin_cli(CLI 工具)、plugins/registry.json(源索引)。
    • 内置 Provider:Cloudflare Workers(多域 + Admin Key 加密)、Custom API、GPTMail、Moemail。
    • Web 管理 API:/api/plugins(列表/安装/卸载/配置/连接测试)。
    • 设置页新增插件管理卡片,支持自定义安装模态框与 Provider 注入逻辑。
    • Provider 设置与域名选择解耦:设置页不再硬编码 Provider 名称,改为动态从注册表获取。
  • 浏览器扩展 v0.3.0 增强
    • 新增本地个人信息生成器(profile-generator.js + profile-data-us.js),支持一键生成姓名/地址/电话等注册所需字段。
    • 新增完整 Jest 测试覆盖(popup、storage、profile-generator 的单元与集成测试)。
  • 登录鉴权增强login_required 装饰器现同时支持 session["logged_in"]session["user_id"],提升多场景兼容性与安全性。

修复 / Bug Fixes

  • 发布质量门禁修复:对新增插件化模块及既有文件执行 black / isort 对齐,修复 Code Quality / Build and Push Docker Image 链路被质量门禁阻断的问题;本地复测确认 Code Quality 等效命令已全部通过。
  • 版本测试动态化tests/test_version_update.py 改为跟随 outlook_web.__version__ 动态断言,避免仅因版本号 bump 导致全量回归误报。

重要变更 / Important Changes

  • 版本升级outlook_web.__version__2.1.0 升级为 2.2.0
  • 扩展版本同步browser-extension/manifest.json0.2.0 升级为 0.3.0,与扩展新增能力一并发布。
  • 发布口径保持不变:当前仓库继续采用 Python + Docker 发布链路,正式产物以 Docker 镜像 tar 与源码 zip 为主,不引入 Tauri / Cargo / MSI / NSIS 构建链路。

测试/验证 / Testing & Verification

  • 全量回归:
    • python -m unittest discover -s tests -v(CI 等效)
    • 结果:1,369 passed, 9 skipped, 0 failed
    • 状态:全绿 ✅
  • 构建验证:
    • docker build -t outlook-email-plus:v2.2.0 . → 待执行
    • 产物:
      • dist/outlook-email-plus-v2.2.0-docker.tar
      • dist/outlookEmailPlus-v2.2.0-src.zip
      • dist/browser-extension-v0.3.0.zip

v2.1.0

20 Apr 04:01

Choose a tag to compare

新增功能 / New Features

  • 数据概览大盘正式上线:新增 5 Tab 统一运营看板,覆盖总览、验证码提取、对外 API、邮箱池、系统活动,并用纯 CSS 图表/进度块/时间线替换旧 dashboard。
  • 验证码提取日志统一观测:新增 verification_extract_logs 表与共享写库 helper,普通账号、临时邮箱、external API、邮箱池相关提取链路统一落日志,支持时延、通道、AI fallback、错误码等维度分析。
  • Overview 前端实时联动与多语言补齐:提取成功后会主动失效 overview 缓存并重拉相关 Tab;overview 页头、Tab、KPI、表头、hover note、timeline/channel/status 等可见文案已全部纳入 i18n。

修复 / Bug Fixes

  • 浏览器扩展“API 无效”修复:主应用设置页复制 External API Key 时,已从“复制脱敏值”改为登录态拉取真实明文后再复制,避免扩展天然拿到错误 Key。
  • 浏览器扩展前置条件口径澄清:补齐 external pool / pool_access 真实依赖,避免把所有“API 无效”都误判成同一个 API Key 问题。
  • 内部 Web 提取兼容回归修复:普通账号前端提取接入 shared logging 后,重新补齐 IMAP generic patch 点与旧错误语义,继续保持 EMAIL_NOT_FOUND / 404IMAP_AUTH_FAILED / 401 兼容口径。
  • Overview 页面细节修复:修复页头/Tab 模板静态文本未走 i18n、刷新 / 邮箱池 漏词条、残留英文短标签与动态机器值直出等问题。

重要变更 / Important Changes

  • 版本升级outlook_web.__version__2.0.0 升级为 2.1.0
  • 扩展版本同步browser-extension/manifest.json0.1.0 升级为 0.2.0,与本次扩展可用性修复一并发布。
  • 数据库升级:schema 升级到 v23,新增 verification_extract_logs 表;其中 account_id > 0 表示 accounts.idaccount_id < 0 表示负数编码后的 temp_emails.id
  • 发布口径保持不变:当前仓库继续采用 Python + Docker 发布链路,正式产物仍以 Docker 镜像 tar 与源码 zip 为主,不引入 Tauri / Cargo / MSI / NSIS 构建链路。

测试/验证 / Testing & Verification

  • 全量回归:
    • python -m unittest discover -s tests -v
    • 结果:Ran 1243 tests in 302.912s
    • 状态:OK (skipped=7)
  • 构建验证:
    • docker build -t outlook-email-plus:v2.1.0 . → 成功
    • dist/outlook-email-plus-v2.1.0-docker.tar(177,893,376 bytes)
    • dist/outlookEmailPlus-v2.1.0-src.zip(4,335,587 bytes)
    • dist/browser-extension-v0.2.0.zip(38,097 bytes)

v2.0.0

18 Apr 13:29

Choose a tag to compare

新增功能 / New Features

  • 浏览器扩展(Chrome/Edge MV3)v0.1.0:全新 browser-extension/ 子目录,提供邮箱池快捷操作面板,支持一键申领邮箱、自动提取验证码/验证链接、完成/释放邮箱,与 OutlookMail Plus 外部 API 无缝集成。
  • 后端 CORS 支持/api/external/* 接口支持 chrome-extension:// 来源跨域访问,扩展可直接调用后端。

修复 / Bug Fixes

  • 修复账号覆盖导入(overwrite 模式)时 pool_status 未正确更新的 bug(_overwrite_account 参数透传遗漏)。
  • 修复 update_account_credentials 不允许更新 pool_status 字段导致导入后邮箱池状态异常的问题。

重要变更 / Breaking Changes

  • 版本号从 1.19.0 升级至 2.0.0(浏览器扩展为项目重大里程碑)。
  • requirements.txt 新增 flask-cors>=4.0.0

v1.19.0

17 Apr 06:48

Choose a tag to compare

新增功能

  • 刷新失败提示模板化增强:前端新增 selected/refresh-all 失败摘要构造函数,统一展示错误码、可执行步骤与 trace 反馈指引,减少“仅显示刷新失败”的不可操作提示。
  • 新增 Issue #45 独立回归文件 tests/test_refresh_selected_issue45.py,覆盖 Outlook+IMAP 混选下仅刷新 Outlook、跳过 IMAP 且 SSE start/progress/complete 完整返回。

修复

  • 修复 selected 刷新链路在 sqlite3.Row 上使用 .get() 导致的 SSE 提前失败问题:selected 查询补齐 provider 字段并改为 row["provider"] 访问。
  • 统一 scheduled / selected / retry_failed 三条刷新入口 REFRESH_CONFLICT 语义,提示“已有任务执行中,请等待完成后重试”。
  • 补齐 NO_MAIL_PERMISSION 场景的前端可执行指引,明确重新授权与 Mail.Read / Mail.ReadWrite scope 要求。
  • 修复 OAuth Tool 空列表测试的共享库污染问题,tests/test_oauth_tool.py 初始化阶段补充关联表清理,消除间歇性失败。

重要变更

  • 版本升级:outlook_web.__version__1.18.0 升级为 1.19.0
  • 版本口径同步:README.mdREADME.en.mdtests/test_version_update.pyCHANGELOG.mddocs/DEVLOG.md
  • 发布口径保持不变:本仓库继续使用 Python + Docker 发布链路,不包含 Tauri/Cargo/NPM/MSI/NSIS 构建产物。

测试 / 验证

  • 版本口径回归:python -m unittest tests.test_version_update -vRan 51 testsOK
  • 全量分批回归(单命令 300000ms 约束下):
    • Batch1:Ran 303 tests in 146.333sOK
    • Batch2:Ran 266 tests in 58.760sOK
    • Batch3:Ran 273 tests in 44.991sOK (skipped=7)
    • Batch4:Ran 352 tests in 83.978sOK
  • 构建验证:docker build -t outlook-email-plus:v1.19.0 . 成功。
  • 产物:
    • dist/outlook-email-plus-v1.19.0-docker.tar(205,110,784 bytes,sha256 2192206c35b53baffb30d669f01f3712682518a94c07057e5efc716d5d296410
    • dist/outlookEmailPlus-v1.19.0-src.zip(4,153,423 bytes,sha256 c6e03de9b5e6c36f980544464bcfea152bd1e28c4557cc097ae99333bbea6778

v1.18.0

16 Apr 12:21

Choose a tag to compare

v1.18.0 发布日志

新增功能

  • 新增长期邮箱“项目维度成功复用”能力:在显式传入 project_keycaller_idtask_id 的路径下,claim-complete(result=success) 后账号立即回到 available,支持跨项目继续领取。
  • 新增项目成功事实字段与 claim 上下文:accounts.claimed_project_keyaccount_project_usage.first_success_at / last_success_at / success_count,让复用判定从“claim 痕迹”升级为“项目 success 事实”。
  • 新增专项自动化覆盖:Schema / Repository / Service 三层测试文件落库,并补强 flow suite、旧回归与 CF 骨架用例,覆盖 success 计数、同项目防重、跨项目复用与 token 校验。

修复

  • 修复长期邮箱在 success 后被直接打成全局 used、导致其他项目无法继续复用的问题。
  • 修复 claim-complete 阶段缺失项目上下文、无法判断此次 success 属于哪个项目的问题。
  • 修复 legacy v21 迁移在缺少 password / refresh_token 等列时的兼容性问题,migrate_sensitive_data() 现按实际列集合兼容执行。
  • 修复历史旧回归中“release 必须删除 account_project_usage 行”的错误假设,避免测试口径继续与当前语义冲突。

重要变更

  • 版本号从 1.17.0 升级至 1.18.0
  • 数据库 schema 升级至 v22,新增 accounts.claimed_project_keyaccount_project_usage.first_success_at / last_success_at / success_count
  • 历史长期邮箱 used -> available 的迁移只在升级到 v22 时执行;cloudflare_temp_mail / temp_mail 不进入该迁移语义,也不伪造历史 success 数据。
  • 当前仓库仍不是 Tauri 工程,不包含 Cargo.tomlpackage.json、MSI 或 NSIS 构建链路;本次正式产物继续沿用 Docker 镜像 tar 与源码 zip。

测试 / 验证

  • 目标专项回归:
    • python -m unittest tests.test_db_schema_v22_pool_project_reuse tests.test_pool_repository_project_reuse tests.test_pool_service_project_reuse tests.test_pool_flow_suite tests.test_pool -v
    • 结果:Ran 78 testsOK
  • 发布前全量回归:
    • python -m unittest discover -v
    • 结果:Ran 1187 tests in 458.110sOK (skipped=7)
  • 构建验证:
    • docker build -t outlook-email-plus:v1.18.0 . → 成功
    • 发布产物:
      • dist/outlook-email-plus-v1.18.0-docker.tar
      • dist/outlookEmailPlus-v1.18.0-src.zip

v1.17.0

15 Apr 11:26

Choose a tag to compare

新功能 / New Features

  • 通用 Webhook 通知通道:在现有通知分发体系中新增 webhook 通道,支持全局单 URL 配置,与 Email/Telegram 并存;发送协议为 POST text/plain; charset=utf-8
  • Webhook 测试链路:新增 /api/settings/webhook-test,按“先保存,再测试”口径,仅使用已保存配置进行测试发送。
  • External API Key 易用性增强:设置页新增“随机生成 + 复制”交互,随机值为前端 crypto.getRandomValues 生成的 64 位 URL-safe 字符串。

修复 / Bug Fixes

  • 设置链路校验修复:补齐 Webhook 配置保存与测试路径中的错误码映射与可读错误返回,配置缺失时稳定返回 WEBHOOK_NOT_CONFIGURED
  • 通知分发兼容修复:Webhook 接入后继续保持 Email/Telegram 既有行为与游标/去重语义,不引入跨通道互斥副作用。
  • 前端契约修复:补齐自动化 Tab 与 API 安全 Tab 的文案和交互契约(Webhook 字段、测试按钮、API Key 生成与复制函数)以消除回归风险。

重要变更 / Important Changes

  • 版本升级outlook_web.__version__1.16.0 升级为 1.17.0
  • 版本口径同步README.mdREADME.en.mdtests/test_version_update.py 同步更新到 v1.17.0
  • Webhook Token 作为可选头处理:仅在 token 非空时发送 X-Webhook-Token
  • Webhook 投递策略固定:10 秒超时、失败立即重试 1 次、2xx 视为成功。
  • 本次能力扩展未引入新第三方依赖,未进行数据库 schema 变更。

测试/验证 / Testing & Verification

  • 定向测试:
    • python -m unittest tests.test_settings_webhook -v → 9 passed
    • python -m unittest tests.test_webhook_push -v → 7 passed
    • python -m unittest tests.test_notification_dispatch -v → 25 passed
    • python -m unittest tests.test_settings_webhook_frontend_contract -v → 4 passed
    • python -m unittest tests.test_v190_frontend_contract -v → 18 passed
    • python -m unittest tests.test_settings_tab_refactor_backend -v → 14 passed
    • python -m unittest tests.test_settings_tab_refactor_frontend -v → 12 passed
  • 分批回归(单命令超时约束下):
    • test_[a-f]* → Ran 346, OK
    • test_[g-l]* → Ran 89, OK
    • test_[m-r]* → Ran 231, OK (skipped=7)
    • test_[s-z]* → Ran 492, OK
    • 汇总:1158 tests 通过,skipped=7
  • main 分支复核:
    • 在 main 再次执行分批全量回归,结果与上次一致(1158 通过,skipped=7)。
  • 构建验证:
    • docker build -t outlook-email-plus:v1.17.0 .(本次发布执行)
    • 产物预期:Docker 镜像 tar + 源码 zip

已知风险 / Known Risks

  • Webhook 当前固定发送纯文本(text/plain);若下游仅接受 JSON,需要由接入方在网关/中间层做文本转 JSON 适配。
  • UI 人工冒烟(Webhook 卡片实操、API Key 随机/复制体验)仍建议在发布前补齐。

v1.16.0

13 Apr 08:49

Choose a tag to compare

新增功能

  • OAuth Token 工具前端流程升级为“获取授权链接”模式:先生成 authorize_url,支持页面内复制/打开链接,再手动粘贴回调 URL 完成 token 交换,减少受限浏览器环境下的授权失败。
  • Token 工具三层模块(routes/controllers/services)补充了面向维护者的设计说明,明确兼容导入模式约束:tenant=consumersclient_secret 为空、PKCE 授权链路。

修复

  • 修复 outlook_web/services/oauth_tool.pyget_oauth_flow() 函数体缺失导致的 IndentationError,恢复 OAuth flow 状态读取能力。
  • 恢复 flow 读取关键逻辑:过期清理(TTL)、状态读取、浅拷贝返回,修复授权回调后 state -> verifier -> token exchange 链路不稳定问题。

重要变更

  • 版本号从 v1.15.0 升级到 v1.16.0outlook_web.__version__)。
  • 同步更新版本展示与断言:README.mdREADME.en.mdtests/test_version_update.py
  • 同步更新发布记录:CHANGELOG.mddocs/DEVLOG.md

测试/验证

  • 全量测试:python -m pytest tests/ -q1109 passed, 9 skipped
  • 关键专项:
    • python -m pytest tests/test_version_update.py -q51 passed
    • python -m pytest tests/test_oauth_tool.py -q71 passed
  • 构建验证:docker build -t outlook-email-plus:v1.16.0 . 成功。
  • 产物构建:
    • dist/outlook-email-plus-v1.16.0-docker.tar(成功)
    • dist/outlookEmailPlus-v1.16.0-src.zip(成功)

v1.15.1

12 Apr 13:42

Choose a tag to compare

新增功能

  • 无新增业务功能。

修复

  • 修复 CI 格式化门禁失败:对仓库代码执行 black / isort 全量对齐,消除 Code Qualitydocker-build-push 前置 quality-gate 阻断。
  • 恢复主干构建发布链路:Build and Push Docker Imagemain 分支重新通过,镜像推送流程恢复稳定。

重要变更

  • 版本号由 1.15.0 升级至 1.15.1,用于补齐“版本标签镜像”发布链路,与已修复的主干 CI 状态保持一致。

测试/验证

  • 本地格式化校验:
    • python -m black --check outlook_web tests web_outlook_app.py outlook_mail_reader.py start.py
    • python -m isort --check-only --profile black outlook_web tests web_outlook_app.py outlook_mail_reader.py start.py
  • 本地回归抽检:
    • python -m pytest -q tests/test_version_update.py tests/test_i18n_settings_completeness.py71 passed
  • 远端 CI(main / commit 61208e0)全绿:
    • Build and Push Docker Image
    • Code Quality
    • Python Tests
    • SonarCloud Scan