Files

87 lines
11 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 首版验收(2026-10-01,Asia/Hong_Kong)
> 历史验收记录:2026-10-04 起所有旧备份兼容与单文件 JSON 支持已删除,当前仅接受 ZIP v9;本文旧版本测试记录不代表现行功能。现行 MCP 权限与工具范围见 [本次更新](update-agent-backup-2026-10-04.md)。
代码位于 E:\WorthPath,远程 origin 为用户指定 GitHub 仓库,分支 main。初始目录和仓库为空;没有覆盖已有项目文件。已有其他程序占用 API 默认端口,因此本项目使用 3100,前端使用 5173。
已验证:
- 后端和前端类型检查、生产构建通过。
- 14 项单元测试通过:Decimal 精度、负债符号、缺失汇率、历史更正、汇率/余额归因、大额金额、输入和备份校验、固定公共汇率请求与失败保护。
- 真实 MySQL 集成测试通过:注册、密码哈希、登录退出、会话失效、同源写入限制、双用户资源与历史隔离、客户端 userId 拒绝、信用卡负债、债务关联不重复求和、余额变化、同日多次更新、更正、还款金额和负债类型校验、归档金额编辑限制。
- 备份不含认证数据;预览验证、明确确认、恢复后 ID 重建与关联保留、重复导入拒绝、已导入项目修改后重复导入仍拒绝、两请求并发导入仅一次成功,失败没有留下部分项目。
- 四次可追踪迁移已应用,数据库结构处于最新状态,未运行 reset/db push。
- 浏览器验收:注册、空状态、账户创建、同日连续余额更新、外币资产、独立债务与关联、历史汇率、总览趋势及变化归因、手机退出登录。编辑过程中撤销临时会话后,服务端拒绝保存,界面清除旧弹窗和草稿;重新登录后未恢复旧草稿,数据库原名称不变。
- 浏览器真实下载版本化备份,选择重复文件显示拒绝说明;另一临时用户中预览并明确确认恢复成功。
- 公共汇率实际请求成功并保存日期和十进制汇率,原币未改变。
- 390×844 手机、742px 中间视口、1280×800 桌面布局检查;手机和桌面未出现页面横向溢出,宽历史表格单独滚动。
- 临时测试用户及其项目已清理,网站没有预置演示资产。验收截图使用明确标为“验收临时”的项目。验收期间出现的非测试用户数据已保留,清理仅针对明确创建的临时用户。
- 每次提交前扫描本地环境中的凭证与连接元数据,环境文件、数据库文件、依赖和构建产物未纳入提交。
首版限制:每次更新保留独立绝对余额记录,同日多次更新与备份恢复顺序已验证;更正替换该日记录,暂未另存更正操作的审计副本。归档项目仍计入财富,需要结清时先更新为零。首版支持十种常见币种;汇率为参考价,首次使用不会自动抓取全量历史。历史汇率缺失时该日期标记不完整,保留原币并提示换算不完整。备份仅追加,不能直接覆盖恢复到已有空间。列表暂不分页;适合个人规模数据。
尚未验证或未交付:连续多日无人值守运行、生产 HTTPS 与反向代理部署、多实例共享认证限速、运行告警、真实手机浏览器与触摸设备矩阵、大规模数据性能、密码找回/变更、家庭共享。开发服务在本机可启动,当前交付不等同于生产上线。
下一步建议:基于真实少量资产试用,完善筛选和分页、键盘焦点管理及历史更正审计;随后建立最小权限数据库账号、HTTPS 部署和共享限速,进行实际设备验收。家庭共享与报表作为后续独立模块。
## 功能更新验收
- 临时账号集成测试验证隐藏账户默认不进入列表、详情及总额;密码错误拒绝,另一会话和其他用户不继承查看权限,授权过期重新排除。
- 分钟业务时间和变更额、v2 隐藏状态备份恢复及 v1 旧格式兼容通过。
- 未下载备份、错误确认文字、伪造 userId、备份后数据变化均拒绝清空;成功仅删除当前临时用户数据,其他用户保留,当前用户仍可登录。
- 用户侧栏和定时退出设置持久化,非法分钟数拒绝;过期会话及活动续期请求均被拒绝。
- 浏览器已验证隐藏账户、密码解锁、分钟展示、侧栏隐藏后的手机导航、真实备份下载及清空下一步、一分钟无操作退出;未对实际用户执行清空操作。
- ZIP 分文件内容及摘要校验、损坏/缺失/未知文件拒绝、真实上传与当前会话令牌隔离、确认后恢复已通过。超过 1000 个项目、单项目 10000 条历史、总计 20000 条历史的校验通过。未做 512 MB 边界和超大规模恢复压力测试。
- 手动汇率写入 API 返回 404,界面入口已移除;已有历史汇率未删除。
内网穿透测试更新:支持本地 `WEB_ORIGIN=*`;HTTP/HTTPS 来源探测均通过来源校验,缺失或 null 来源拒绝。精确来源模式及生产禁止通配符的单元校验通过。此轮 14 项单元测试、2 项数据库集成测试、类型检查和构建通过;未执行外网穿透链路端到端验收。
## 账户图标更新
新增迁移 005_account_icons,不修改既有迁移或财务数据;预置 20 个图标,使用固定 ID 幂等初始化。构建/类型检查和 ZIP v3/v4 单元回归通过。新增真实数据库集成覆盖私有图标跨用户不可检索/读取/赋值、共享中文名称和公开确认、图片规范化与恶意格式拒绝、相同图片多账户复用、ZIP 图标内容/关联恢复、损坏图标整次导入拒绝、清空保留他人引用共享图标。测试仅清理随机验收用户和他们上传的图标。
桌面浏览器实际验收:中文检索支付宝、选择图标后保存账户、私有图片上传及共享中文名称/公开确认发布成功。390×844 手机布局无横向溢出,全部图标正常加载。原生 ZIP 下载包含 10 个 JSON 文件,manifest v4,图标内容和账户关联均存在。开发进程改为只监听 dist,避免首次加载图片处理依赖导致不必要的自动重启。
## 2026-10-02 转账、图标与设置更新
- 类型检查与最终前后端生产构建通过;16 项单元测试、6 项集成检查通过。增加显示偏好导出/恢复断言后,转账专项 3 项再次通过。追加导入已有空间保留现有显示偏好;空空间恢复备份偏好。
- 006_navigation_transfers 和 007_notes_display 已增量应用,7 个迁移状态最新;未执行 reset、db push 或财务数据清空。
- 真实 MySQL 验证转账双方余额/历史原子更新、同币种/跨币种精度、额外手续费、重复请求去重、并发余额不足、跨用户拒绝、隐藏账户隔离,以及完整转账 ZIP 导出和关系重建。禁止插入已有转账之前的余额调整,禁止单独更正转账及之前历史。
- ZIP v5 含 11 个 JSON 文件;v3/v4 ZIP 和旧 JSON 兼容通过。备注与菜单偏好进入备份,认证凭据不进入备份。图标白色背景转透明且彩色像素保留的处理测试通过。
- 浏览器实际验证各菜单独立开关保存/刷新、设置入口保留、顶部重复导航移除、备注在编辑表单及历史列表隐藏、透明支付宝图标检索与弹窗选择后保存账户。
- 临时账号界面转账:100 转出 25、手续费 1 后余额 74;另一个 10 的账户到账后为 35;总额 109,配对历史按分钟显示。未执行银行或支付平台真实资金转移。
- 清空标题颜色为红色;真实下载 ZIP 后才能进入文字确认,再出现两次弹窗。第一次取消左/确认右,第二次确认左/取消右,均默认聚焦取消。浏览器在第二次选择取消,账户及转账保留;实际清空 API 仅在随机测试账号中回归,未清空真实用户数据。
- Swagger UI 在前端代理地址真实加载,OpenAPI JSON 包含实际转账和设置字段及会话认证说明。README 已记录文档及 JSON 地址。
- 390×844 手机设置界面检查:页面内容宽度 375,无横向溢出,开关、下拉菜单与底部导航可用;未验证真实手机硬件和外网隧道端到端链路。
- 精确清理本次创建的临时验收账号及其财务数据;共享预置图标及实际用户保留。用户原有 Vite 配置修改保留,未纳入本次功能提交。
## 2026-10-02 账户分组、计划与日历
本轮 28 项单元测试、类型检查和生产构建通过。浏览器模拟数据验证与实际数据库未验证部分详见 [本轮验收](update-2026-10-02.md)。首轮连接数据库发生 PROTOCOL_CONNECTION_LOST;2026-10-02 17:54 补充验收已完成迁移、31 个图库图标初始化及全部 9 项真实 MySQL 集成检查。前文并发余额不足的旧断言已随允许透支需求调整。
## 2026-10-02 页面精简、记录编辑与补充图库
类型检查、生产构建、28 项单元测试通过。新增真实数据库记录编辑专项涵盖双边余额、历史重放、计划支出更正、日历联动、精确金额、债务回滚及权限边界。13 个迁移已应用;9 张表与 88 个字段均有注释;内置图标扩充至 34 项。浏览器虚构数据检查与限制见 [更新说明](update-2026-10-02.md)。
最终完整真实数据库回归 10 项全部通过;连续测试触发限流后的重启复验与新增记录专项见更新说明。
## 2026-10-03 账号、删除与备份修复
28 项单元测试、11 项真实 MySQL 集成检查、前后端类型检查和生产构建通过。新增账号凭据变更与会话撤销、配对历史直接删除、零历史项目及 ZIP 上传恢复验证;浏览器确认删除弹窗和修改后的自动刷新。详情与验证边界见 [更新说明](update-2026-10-03.md)。无数据库结构变更。
## 2026-10-03 负债账户溢缴存款
30 项单元测试、12 项真实 MySQL 集成检查、类型检查及构建通过。浏览器验证信用卡从欠款转为正数溢缴存款并计入总资产,余额历史与总览自动刷新;补充金额精度、趋势、日历、权限和备份恢复断言。无数据库结构变更。详见 [更新说明](update-credit-balance-2026-10-03.md)。
## 2026-10-03 分组排序
32 项单元测试、13 项真实 MySQL 集成检查、前后端类型检查及生产构建通过。浏览器确认上下移动、保存与刷新持久化,以及账户选择弹窗同序显示。14 个迁移状态最新,9 张表与 89 个字段均有注释;ZIP 新旧排序字段兼容及用户隔离已验证。详见 [更新说明](update-group-order-2026-10-03.md)。
## 2026-10-03 图库补充
内置图库扩充为 36 项,新增“抖音月付”和“东方财富”。真实数据库与已认证接口验证名称搜索、共享范围、图片读取和透明 PNG 规范;已有财务数据保持不变。资源来源与验收见 [更新说明](update-icons-2026-10-03.md)。
## 2026-10-03 拖拽排序与分组分行
33 项单元测试、前端类型检查和生产构建通过;真实数据库分组排序专项检查通过。浏览器验证实际拖拽、取消、键盘调整、保存刷新和弹窗联动,确认全部账户页按分组顺序分行显示。无新增数据库字段。详见 [更新说明](update-group-drag-2026-10-03.md)。