跳转到内容

重构与功能验证 ​

日期:2026 年 10 月 13 日。平台:macOS arm64(Apple M1 Pro)。本报告覆盖项目评估中的结构及 P0–P2 功能建议。

交付范围 ​

建议实现与行为
会话职责生命周期、导入、命令、验证、持久化、恢复、移除、观测和快照拆到同包不同文件;唯一 Manager 仍负责串行修改和引擎调用
窗口归属主窗口、设置和添加窗口状态独立,windowBase 仅共享生命周期、状态和可取消工作
UI 组织主区域与导入渲染分离,设置渲染、输入和保存分离,根原生入口保持不变
类型化命令、状态与错误命令/阶段/暂停使用命名类型,副作用前验证完整批次,结构化错误延迟到 UI 翻译
文档当前首页、架构、源码结构和状态齐备,原结构保留在 history
磁力预览独立元数据客户端,不准入内容、不访问目标目录,45 秒超时,可取消/重试,提交前认证文件/名称/大小
可操作错误当前语言提示、任务重试、目录重定位,以及修复存储后的显式会话重新加载;等待节点有独立提示
设置输入十进制 KB/s 和 MB/s;完成后停止、目标分享率或不限做种;可选累计做种小时数
已有数据与位置显式接管记录文件身份但无废纸篓权限;挂接后重新校验并修复损坏;重定位不移动旧文件、不恢复手动暂停
文件选择目录展开/折叠、搜索、分页及原子的目录/文件优先级修改,不能跳过全部文件
Tracker 诊断每 Tracker 的通告结果、分类错误和下次通告时间,5 秒刷新;固定引擎适配器解析 HTTP/UDP 状态,含本地 HTTP 集成测试
定时限速与做种时长每日本地时间区间支持跨午夜,手动慢速可覆盖;累计有效做种时间随统计保存,自动策略保留手动暂停
标签与监视文件夹持久标签、详情编辑、工具栏筛选;两次稳定的 10 秒扫描后非递归导入种子,支持自动标签和持久去重账本,保留源文件
大集合稳定 ID 虚拟任务列表、文件树缓存、每页 60 行及可重复基准

数据与恢复契约 ​

会话 schema 1 迁移到 schema 2,保留暂停意图、任务 ID、元数据引用与归属日志。较新或损坏的 schema 阻止写入,不重置数据。新增设置字段采用默认值,设置 schema 保持 2。

接管授权校验和修复指定已有文件,不授权移到废纸篓。写入前设备号/inode 必须仍与确认时一致。新文件仍采用创建日志和排他发布路径。重定位只改变引用:原文件保持原位,重置新位置观测,下一次运行重新校验。需要移动文件时,用户先在应用外移动,再选择新的父目录。

监视目录输入是明确指定的本地文件。监视器将读取到的稳定字节直接交给解析器,最多 16 MiB,忽略符号链接和非普通文件,不自动接管已有内容。无效文件不阻塞其他文件。原子账本跨重启保留处理结果,会话保存失败会重试,损坏账本绝不覆盖。

结构化错误保留翻译键和参数,不存储特定语言的格式化文本。会话快照克隆可变切片、映射和错误参数。修改标签不会清除无关恢复锁。

测量结果 ​

以下为 go test -bench ... -benchmem -benchtime=500ms 的代表结果,属于无界面的 Go/UI 测量,不保证硬件交互表现。

工作负载优化前优化后
1,000 个任务的主视图帧22.51 ms;4.11 MB;14,065 次分配0.885 ms;3.77 MB;2,177 次分配
10,000 文件的树结构3.357 ms;2.59 MB;10,881 次分配缓存后 0.0214 ms;零分配
1,000 任务 / 10,000 文件快照—0.369 ms;1.52 MB;2,001 次分配

本轮快照成本不足以支持拆分摘要/详情契约。UI 列表构建成本明显,因此改用 MyGo 虚拟 List。路径、搜索或展开状态改变时使文件树缓存失效,进度与优先级更新不重建结构。

基准名称为 BenchmarkMain1000Tasks、BenchmarkFileTree10000Files、BenchmarkCachedFileTree10000Files、BenchmarkSnapshot1000Tasks10000Files。

验证 ​

  • 单元与原生 UI 测试、Go vet、MyGo vet,以及全部包的竞态检测。
  • 本地隔离 swarm:v1/v2/混合完整性、磁力元数据、取消、接管损坏数据修复、共享分片选择、暂停/恢复及 HTTP Tracker 诊断和脱敏。
  • 持久化、接管、重定位、废纸篓、原子批次验证、schema 迁移、定时边界、做种时长、监视稳定性/重试/重启、错误语言刷新。
  • 两种外观与五种语言 UI 截图,以及下载/自动化设置截图;虚拟列表滚动测试到第 1,000 个任务。
  • ad-hoc 签名 macOS arm64 应用构建;主窗口、下载设置和自动化设置使用独立数据原生捕获,均通过保存协调器以 0 退出。
  • Windows amd64 与 Linux amd64 交叉编译。

限制与原生验收 ​

这些修改不替代桌面发布检查:真实传输中的睡眠唤醒、外置卷替换、磁盘写满/强制终止、签名更新替换、VoiceOver、登录授权和多显示器托盘仍需硬件与系统验收。

隐私属性未知的磁力链接仍要求显式 Tracker 或节点,在元数据认证前禁用 DHT/PEX,预览不绕过该策略。Tracker 诊断依赖固定引擎的文本状态契约,升级依赖必须通过本地 Tracker 集成测试;格式不匹配显示不可用,不伪造结果。

崩溃可能丢失最多 15 秒的做种/上传统计。监视文件夹不递归,仅支持一个配置目录和标签。Windows 虽可交叉编译,但缺少内容归属支持。本轮没有引入签名、公证、发布或部署凭据。

支持 macOS、Windows 和 Linux 的原生 BitTorrent 应用。