release: v1.4.0 — 账号导入导出无缝迁移
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
1 parent
973412d44c
commit
450fc6dd45
2 files changed
+34
-1
No files matched your search
@@ -1,5 +1,38 @@
|
||||
# DEVLOG(发布记录)
|
||||
|
||||
## v1.4.0(2026-03-04)
|
||||
|
||||
### 新增功能
|
||||
- **🔄 账号导入导出无缝迁移(PRD-00006)**:实现"导出→不修改→直接导回来"的一键无缝迁移
|
||||
- **🔍 智能识别(混合导入)模式**:在导入界面选择"智能识别"即可自动逐行判断账号类型(Outlook OAuth / 标准 IMAP / 自定义 IMAP / GPTMail 临时邮箱),支持混合格式文件一次性导入
|
||||
- **📧 域名自动推断 Provider**:2段格式(邮箱+密码)自动根据域名推断为 Gmail/QQ/163/126/Yahoo/阿里邮箱/Outlook 等,并使用对应的 IMAP 配置
|
||||
- **📁 自动按类型分组**:导入时自动创建或复用 provider 对应的分组(如 Gmail、QQ邮箱等),无需手动指定
|
||||
- **🔁 重复账号处理策略**:新增"跳过重复"和"覆盖更新"两种策略,覆盖更新仅更新凭据字段,保留备注/标签/状态
|
||||
- **🌐 兜底 IMAP 设置**:未知域名可指定备用 IMAP 服务器地址,避免导入失败
|
||||
- **📊 增强导入结果展示**:按 provider 分类统计导入/跳过/失败数量,显示自动创建的分组列表
|
||||
- **📤 导出格式升级为 v2**:
|
||||
- 文件头部新增元信息注释块(导出时间、各类型账号数量、格式版本标识)
|
||||
- 新增 GPTMail 临时邮箱分段导出(仅邮箱地址),纳入全量导出
|
||||
- 导出文件名统一为 `accounts_export_YYYYMMDD_HHMMSS.txt` 带时间戳
|
||||
- **🔧 新增 Repository 层能力**:
|
||||
- `get_group_by_name()`:按名称精确查找分组(不区分大小写)
|
||||
- `update_account_credentials()`:仅更新凭据字段,敏感字段自动加密
|
||||
|
||||
### 修复
|
||||
- 无(本版本为新增功能)
|
||||
|
||||
### 重要变更
|
||||
- **导入 API 扩展**:`POST /api/accounts` 新增 `provider="auto"` 值触发智能识别,不影响现有 provider 值的导入行为(完全向后兼容)
|
||||
- **Provider 列表扩展**:`GET /api/providers` 返回列表首位新增"🔍 智能识别(混合导入)"选项
|
||||
- **导出文件名变更**:从 `all_accounts_*.txt` / `selected_accounts_*.txt` 改为 `accounts_export_*.txt` / `accounts_export_selected_*.txt`
|
||||
- **导出选中分组新增 GPTMail 支持**:仅当选中了"临时邮箱"系统分组时,导出文件才包含 GPTMail 分段
|
||||
- **前端导入模态框新增 UI**:重复策略单选(跳过/覆盖)、兜底 IMAP 输入、智能识别模式提示
|
||||
|
||||
### 测试/验证
|
||||
- **新增 47 个测试用例**(4 个测试文件):覆盖域名推断、行类型识别、auto 混合导入全链路、导出 v2 格式
|
||||
- **全量测试通过**:169 个测试全部通过(基线 122 + 新增 47),零回归
|
||||
- **手动验收通过**:导出→导入闭环、混合格式导入、域名推断、重复策略、自动分组、向后兼容
|
||||
|
||||
## v1.3.0(2026-03-03)
|
||||
|
||||
### 新增功能
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
__version__ = "1.3.0"
|
||||
__version__ = "1.4.0"
|
||||
|
||||
from outlook_web.app import create_app
|
||||
|
||||
|
||||
Reference in new issue
Block a user