Releases: ZeroPointSix/outlookEmailPlus
Releases · ZeroPointSix/outlookEmailPlus
v2.2.2
修复 / 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.py与test_temp_mail_plugin_api.py的tearDown中文件清理模式从mock_*.py放宽为*.py,防止custom_one.py等临时文件残留。
重要变更 / Important Changes
- 版本升级:
outlook_web.__version__从2.2.1升级为2.2.2。
v2.2.1
修复 / Bug Fixes
- CI 测试环境兼容性修复:将
tests/test_settings_dynamic_provider_names.py从 pytest 语法迁移至标准库unittest,消除 CI 环境中因缺少pytest导致的ModuleNotFoundError,修复Python Tests与Build and Push Docker Image质量门禁失败。
重要变更 / Important Changes
- 版本升级:
outlook_web.__version__从2.2.0升级为2.2.1。
v2.2.0
新增功能 / 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.json从0.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.tardist/outlookEmailPlus-v2.2.0-src.zipdist/browser-extension-v0.3.0.zip
v2.1.0
新增功能 / 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 / 404与IMAP_AUTH_FAILED / 401兼容口径。 - Overview 页面细节修复:修复页头/Tab 模板静态文本未走 i18n、
刷新/邮箱池漏词条、残留英文短标签与动态机器值直出等问题。
重要变更 / Important Changes
- 版本升级:
outlook_web.__version__从2.0.0升级为2.1.0。 - 扩展版本同步:
browser-extension/manifest.json从0.1.0升级为0.2.0,与本次扩展可用性修复一并发布。 - 数据库升级:schema 升级到
v23,新增verification_extract_logs表;其中account_id > 0表示accounts.id,account_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
新增功能 / 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
新增功能
- 刷新失败提示模板化增强:前端新增 selected/refresh-all 失败摘要构造函数,统一展示错误码、可执行步骤与 trace 反馈指引,减少“仅显示刷新失败”的不可操作提示。
- 新增 Issue #45 独立回归文件
tests/test_refresh_selected_issue45.py,覆盖 Outlook+IMAP 混选下仅刷新 Outlook、跳过 IMAP 且 SSEstart/progress/complete完整返回。
修复
- 修复 selected 刷新链路在
sqlite3.Row上使用.get()导致的 SSE 提前失败问题:selected 查询补齐provider字段并改为row["provider"]访问。 - 统一 scheduled / selected / retry_failed 三条刷新入口
REFRESH_CONFLICT语义,提示“已有任务执行中,请等待完成后重试”。 - 补齐
NO_MAIL_PERMISSION场景的前端可执行指引,明确重新授权与Mail.Read / Mail.ReadWritescope 要求。 - 修复 OAuth Tool 空列表测试的共享库污染问题,
tests/test_oauth_tool.py初始化阶段补充关联表清理,消除间歇性失败。
重要变更
- 版本升级:
outlook_web.__version__从1.18.0升级为1.19.0。 - 版本口径同步:
README.md、README.en.md、tests/test_version_update.py、CHANGELOG.md、docs/DEVLOG.md。 - 发布口径保持不变:本仓库继续使用 Python + Docker 发布链路,不包含 Tauri/Cargo/NPM/MSI/NSIS 构建产物。
测试 / 验证
- 版本口径回归:
python -m unittest tests.test_version_update -v→Ran 51 tests,OK。 - 全量分批回归(单命令 300000ms 约束下):
- Batch1:
Ran 303 tests in 146.333s,OK - Batch2:
Ran 266 tests in 58.760s,OK - Batch3:
Ran 273 tests in 44.991s,OK (skipped=7) - Batch4:
Ran 352 tests in 83.978s,OK
- Batch1:
- 构建验证:
docker build -t outlook-email-plus:v1.19.0 .成功。 - 产物:
dist/outlook-email-plus-v1.19.0-docker.tar(205,110,784 bytes,sha2562192206c35b53baffb30d669f01f3712682518a94c07057e5efc716d5d296410)dist/outlookEmailPlus-v1.19.0-src.zip(4,153,423 bytes,sha256c6e03de9b5e6c36f980544464bcfea152bd1e28c4557cc097ae99333bbea6778)
v1.18.0
v1.18.0 发布日志
新增功能
- 新增长期邮箱“项目维度成功复用”能力:在显式传入
project_key、caller_id、task_id的路径下,claim-complete(result=success)后账号立即回到available,支持跨项目继续领取。 - 新增项目成功事实字段与 claim 上下文:
accounts.claimed_project_key、account_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_key与account_project_usage.first_success_at / last_success_at / success_count。 - 历史长期邮箱
used -> available的迁移只在升级到v22时执行;cloudflare_temp_mail/temp_mail不进入该迁移语义,也不伪造历史 success 数据。 - 当前仓库仍不是 Tauri 工程,不包含
Cargo.toml、package.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 tests,OK
- 发布前全量回归:
python -m unittest discover -v- 结果:
Ran 1187 tests in 458.110s,OK (skipped=7)
- 构建验证:
docker build -t outlook-email-plus:v1.18.0 .→ 成功- 发布产物:
dist/outlook-email-plus-v1.18.0-docker.tardist/outlookEmailPlus-v1.18.0-src.zip
v1.17.0
新功能 / 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.md、README.en.md、tests/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 passedpython -m unittest tests.test_webhook_push -v→ 7 passedpython -m unittest tests.test_notification_dispatch -v→ 25 passedpython -m unittest tests.test_settings_webhook_frontend_contract -v→ 4 passedpython -m unittest tests.test_v190_frontend_contract -v→ 18 passedpython -m unittest tests.test_settings_tab_refactor_backend -v→ 14 passedpython -m unittest tests.test_settings_tab_refactor_frontend -v→ 12 passed
- 分批回归(单命令超时约束下):
test_[a-f]*→ Ran 346, OKtest_[g-l]*→ Ran 89, OKtest_[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
新增功能
- OAuth Token 工具前端流程升级为“获取授权链接”模式:先生成
authorize_url,支持页面内复制/打开链接,再手动粘贴回调 URL 完成 token 交换,减少受限浏览器环境下的授权失败。 - Token 工具三层模块(routes/controllers/services)补充了面向维护者的设计说明,明确兼容导入模式约束:
tenant=consumers、client_secret为空、PKCE 授权链路。
修复
- 修复
outlook_web/services/oauth_tool.py中get_oauth_flow()函数体缺失导致的IndentationError,恢复 OAuth flow 状态读取能力。 - 恢复 flow 读取关键逻辑:过期清理(TTL)、状态读取、浅拷贝返回,修复授权回调后
state -> verifier -> token exchange链路不稳定问题。
重要变更
- 版本号从
v1.15.0升级到v1.16.0(outlook_web.__version__)。 - 同步更新版本展示与断言:
README.md、README.en.md、tests/test_version_update.py。 - 同步更新发布记录:
CHANGELOG.md、docs/DEVLOG.md。
测试/验证
- 全量测试:
python -m pytest tests/ -q→ 1109 passed, 9 skipped。 - 关键专项:
python -m pytest tests/test_version_update.py -q→ 51 passed。python -m pytest tests/test_oauth_tool.py -q→ 71 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
新增功能
- 无新增业务功能。
修复
- 修复 CI 格式化门禁失败:对仓库代码执行
black/isort全量对齐,消除Code Quality与docker-build-push前置quality-gate阻断。 - 恢复主干构建发布链路:
Build and Push Docker Image在main分支重新通过,镜像推送流程恢复稳定。
重要变更
- 版本号由
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.py→71 passed
- 远端 CI(
main/ commit61208e0)全绿:Build and Push Docker Image✅Code Quality✅Python Tests✅SonarCloud Scan✅