172 lines
6.7 KiB
Markdown
172 lines
6.7 KiB
Markdown
# 更新日志
|
||
|
||
所有重要的更改都会记录在此文件中。
|
||
|
||
格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/),
|
||
版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
|
||
|
||
## [1.3.1] - 2026-01-26
|
||
|
||
### 优化
|
||
- **版本号显示优化** - 侧边栏版本号按钮样式改进
|
||
- 移至次级导航区域,与其他菜单项样式一致
|
||
- 更新日志改用 Sheet 组件(右侧滑出),替代底部 Drawer
|
||
- 统一暗色主题下的视觉效果
|
||
|
||
## [1.3.0] - 2026-01-26
|
||
|
||
### 新增
|
||
- **京东账单支持** - 支持京东白条账单上传和清洗
|
||
- 自动识别京东账单类型(交易流水 ZIP)
|
||
- 解析京东白条账单 CSV 格式(含还款日期信息)
|
||
- 京东专属分类映射配置(`config/category_jd.yaml`)
|
||
- 支持京东外卖、京东平台商户等商户识别
|
||
- 上传页面和账单列表页面添加"京东"选项
|
||
- 账单来源 Badge 添加紫色京东标识
|
||
|
||
### 优化
|
||
- **京东订单智能去重** - 上传京东账单时自动软删除其他来源中的京东订单
|
||
- 识别描述中包含"京东-订单编号"的支付宝/微信账单
|
||
- 软删除冲突记录,避免重复计入支出
|
||
- 上传响应返回被删除的记录数
|
||
- **分类推断复核等级优化** - 京东账单引入 LOW 复核等级
|
||
- 商户映射成功(如"京东外卖"):无需复核
|
||
- 原分类映射成功(如"食品酒饮"→餐饮美食):无需复核
|
||
- 通用关键词匹配成功:**LOW 复核**(需确认推断准确性)
|
||
- 未知分类或匹配失败:HIGH 复核
|
||
- **京东平台商户关键词扩展** - 在通用分类配置中添加京东平台常见关键词
|
||
- 宠物用品:小佩、米家宠物、猫砂、猫粮等
|
||
- 数码电器:小米、延长保修、家电等
|
||
|
||
### 技术改进
|
||
- 新增 `analyzer/cleaners/jd.py` 京东账单清理器
|
||
- 新增 `analyzer/config/category_jd.yaml` 京东专属配置
|
||
- 后端新增 `SoftDeleteJDRelatedBills()` 接口和实现
|
||
- 前端 API 类型添加 `'jd'` 支持
|
||
- 新增单元测试 `analyzer/test_jd_cleaner.py`(11 个测试用例)
|
||
|
||
### 文档
|
||
- 更新 `TODO.md` 添加 Gitea Webhook 自动部署计划
|
||
|
||
## [1.2.0] - 2026-01-25
|
||
|
||
### 新增
|
||
- **账单删除功能** - 支持在账单详情抽屉中删除账单(软删除)
|
||
- 删除按钮带二次确认,防止误操作
|
||
- 删除后数据标记为 `is_deleted`,不真正从数据库删除
|
||
- 已删除的账单在所有查询中自动过滤
|
||
- 账单列表和复核页面都支持删除操作
|
||
|
||
### 技术改进
|
||
- 后端 MongoDB 查询方法添加软删除过滤
|
||
- 新增 `DELETE /api/bills/:id` 接口
|
||
- `BillDetailDrawer` 组件新增 `allowDelete` 和 `onDelete` props
|
||
|
||
## [1.2.1] - 2026-01-23
|
||
|
||
### 优化
|
||
- **智能复核快捷确认** - 在复核列表每行添加快捷确认按钮
|
||
- 无需打开详情页面即可确认分类正确
|
||
- 点击确认按钮立即清除复核标记并从列表移除
|
||
- 自动更新统计数据(总数、高优先级、低优先级计数)
|
||
- 按钮支持加载状态显示,防止重复操作
|
||
- 提升复核效率,支持快速批量确认
|
||
|
||
### 文档
|
||
- **AGENTS.md 更新** - 精简为 150 行,专为 AI 编程助手设计
|
||
- 核心构建/测试/lint 命令说明
|
||
- TypeScript、Go、Python 代码风格指南
|
||
- 关键架构模式和文件位置
|
||
|
||
## [1.1.0] - 2026-01-23
|
||
|
||
### 新增
|
||
- **ZIP 压缩包上传** - 支持上传加密的 ZIP 压缩包(微信/支付宝导出的原始格式)
|
||
- 支持 AES 加密的 ZIP 文件,需输入解压密码
|
||
- 自动将 xlsx 格式转换为 csv
|
||
- 自动将 GBK 编码转换为 UTF-8
|
||
- 前端添加密码输入框
|
||
|
||
### 修复
|
||
- **支付宝扩展格式解析** - 修复从 ZIP 解压的支付宝账单(含 24 行元数据头)无法解析的问题
|
||
- **CSV 字段数不一致** - 修复支付宝 CSV 文件字段数不一致导致解析失败的问题
|
||
- **中文文件名乱码** - 修复 ZIP 内 GBK 编码的中文文件名解压后乱码的问题
|
||
|
||
### 其他
|
||
- 添加 `AGENTS.md` 项目开发指南文档
|
||
|
||
## [1.0.7] - 2026-01-16
|
||
|
||
### 优化
|
||
- **认证过期策略调整** - Token 过期/无效由后端统一判断,前端不再自行解析过期时间
|
||
- 后端新增 JWT 鉴权中间件,统一返回 401 并携带错误码
|
||
- 前端在收到 401 后清理登录状态并跳转到登录页
|
||
|
||
### 重构
|
||
- **后端数据访问层收敛** - 账单相关服务统一通过 repository 访问 MongoDB,减少多套数据层并存
|
||
|
||
## [1.0.6] - 2026-01-08
|
||
|
||
### 修复
|
||
- **数据分析页面总支出和大盘数据错误** - 修复数据分析页面与账单管理页面总支出不一致的问题
|
||
- 原因:后端限制 `page_size` 最大为 100,但前端请求了 10000,导致只获取到部分数据
|
||
- 解决:数据分析页面改为使用后端返回的聚合统计(`total_expense`),而不是前端计算,且关闭后端最大100的限制
|
||
- 现在两个页面都使用相同的后端数据库聚合统计,确保数据一致性
|
||
|
||
## [1.0.5] - 2026-01-08
|
||
|
||
### 优化
|
||
- **支付宝时间格式解析** - 支持无前导零的日期格式
|
||
- 自动标准化 `2026/1/13 20:08` 为 `2026/01/13 20:08`
|
||
- 兼容支付宝账单的时间格式
|
||
- **Webhook 服务修复** - 移除未使用的 `fmt` 导入,修复编译错误
|
||
|
||
## [1.0.4] - 2026-01-13
|
||
|
||
### 新增
|
||
- **Gitea Webhook 自动部署** - 推送代码后自动触发服务器拉取并重新部署
|
||
- 独立的 webhook 服务(Go 实现,端口 9000)
|
||
- HMAC-SHA256 签名验证,确保安全性
|
||
- 仅处理 master/main 分支的推送
|
||
- 零停机热更新部署
|
||
- 自动清理旧镜像
|
||
- 健康检查验证
|
||
- 完整的部署配置文档 `WEBHOOK_SETUP.md`
|
||
|
||
### 优化
|
||
- 部署脚本使用 `docker-compose up -d --build --force-recreate` 实现热更新
|
||
- 部署时排除 webhook 容器自身,避免自杀问题
|
||
- Dockerfile 添加国内镜像源配置,加速构建
|
||
|
||
## [1.0.3] - 2026-01-13
|
||
|
||
### 新增
|
||
- **DateTimePicker 组件** - 使用 shadcn-ui 的 Calendar + Popover 替换原生 datetime-local 输入框
|
||
- **收支类型动态分类** - 手动添加账单时,根据收支类型自动切换分类选项(支出/收入分类)
|
||
|
||
### 优化
|
||
- 切换收支类型时自动清空已选分类,避免选择不匹配的分类
|
||
- 收入模式下隐藏"支付方式"和"交易状态"输入框,简化表单
|
||
- 调整手动添加账单表单布局为 1:1 两列,待提交列表宽度更合理
|
||
|
||
## [1.0.2] - 2026-01-08
|
||
|
||
### 修复
|
||
- 修复 Docker volume 映射路径与配置不一致导致上传文件无法持久化的问题
|
||
|
||
## [1.0.1] - 2026-01-07
|
||
|
||
### 新增
|
||
- 手动添加账单功能
|
||
- 账单去重检查
|
||
- MongoDB 数据持久化
|
||
|
||
## [1.0.0] - 2026-01-01
|
||
|
||
### 新增
|
||
- 初始版本发布
|
||
- 支持微信/支付宝账单 CSV 导入
|
||
- 智能分类推断
|
||
- 可视化分析报表
|
||
- Docker Compose 一键部署
|