# 更新日志 所有重要的更改都会记录在此文件中。 格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/), 版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。 ## [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 一键部署