Notion Files Management v2.0.0-Beta-3
修复
- Download 页探测期间选中文件仍会被刷新清空:
<el-table>只有row-key="url"不够,selection 列也需要reserve-selection才会在scanItems整组替换后保留选择。已给frontend/src/views/Download.vue的 selection column 补上reserve-selection。 - 扫描页面文件完成后进度不是 100%:扫描 poll 在
done=true时可能保留status=probing,任务看板不会按完成任务显示 100%。已在notion_facade.py中为扫描任务补percent,终态统一status=done;前端任务看板也对非错误终态做 100% 兜底。 - Range 分片实验开关误判和未知大小回退:日志显示
enable_range_download=False时仍进入[DownloadRange] fallback,原因是字符串"False"被bool()判真。已新增布尔归一化,关闭分片时不再进入 Range 分支。另修复manual_size_mb=0时大文件被below_threshold错误回退的问题:开启分片后未知大小会先 Range 探测总大小,再按阈值决策。
新增
- 启动日志信息块:后端 logger 初始化后立即输出
NFM STARTUP固定块,包含程序版本、渠道、启动时间、构建时间、发行时间、Python/平台、数据目录、日志目录、staging 目录和关键配置。Token 只记录是否配置,不记录密钥内容。NFM_BUILD_TIME/NFM_RELEASE_TIME可由打包/发布流程注入。 - 全局任务看板:新增
frontend/src/views/Tasks.vue和/tasks路由,任务不再局限在上传/下载页面内查看。任务看板支持列表筛选、运行中取消、终态任务重试、下载任务 ZIP 入口。 - 任务详情展开区:任务看板每个任务新增「详情」折叠区。上传/下载任务展示每个文件的进度条、状态、已传/已下载大小、总大小、速率、ETA 和错误信息;其它任务展示关键进度字段。
- 扫描任务详情结果:任务看板展开扫描任务详情时,懒加载
/api/scan/{task_id}/list并展示扫描到的文件名、大小和来源标识,避免每次 SSE 都携带完整扫描结果。 - 下载性能诊断:下载任务进度新增
perf聚合指标,包括下载并发、排队文件数、当前总速率、平均速率、已下载量、耗时和排队压力。任务看板详情区展示性能诊断和每个文件的等待/耗时,用于排查下载慢的问题。 - 下载性能日志:下载底层新增单文件 start/completed 日志;任务 poll 每 30 秒写一条
[DownloadPerf]汇总,包含文件完成数、活跃/排队、总速率、平均速率、已下载量、耗时和活跃文件速率。 - 实验性 Range 分片下载:新增
enable_range_download、range_download_min_mb、range_download_chunks配置,默认关闭。开启后仅对超过阈值且 Range 探测成功的文件分片下载;任务详情展示单连接/分片模式,日志输出[DownloadRange] probe/start/completed/fallback/failed。 - 缓存可读名称:上传/下载/生成 zip 缓存新增
.nfm-cache.json/*.meta.json元数据,GET /api/cache/items同时返回稳定id、可读name和storage_name。缓存页主展示业务名称,辅助展示底层存储 ID,避免纯随机 ID 难以识别。 - 全局任务 store:新增
frontend/src/stores/tasks.ts,统一GET /api/tasks、SSE 订阅、取消和重试。主页Dashboard.vue增加最近任务小面板。 - 任务元数据/重试 API:
backend/app/taskregistry.py的TaskHandle增加title/source/input/artifact/cache_refs/retry_fn等字段;backend/app/routers/tasks.py新增GET /api/tasks/{tid}和POST /api/tasks/{tid}/retry。 - 云端缓存页面:新增
frontend/src/views/Cache.vue和/cache路由,可查看、下载、删除、按策略清理${NFM_DATA_DIR}/staging下的上传缓存、下载产物和生成 zip。 - 缓存管理 API:
backend/app/staging.py新增缓存列表、单项删除、单项下载定位、保护路径清理;backend/app/routers/system.py新增/api/cache/items、/api/cache/items/{id}/download、DELETE /api/cache/items/{id}、/api/cache/cleanup。 - 缓存策略配置:
config.py/settings.py/Settings.vue增加cache_auto_cleanup_enabled、cache_ttl_seconds、cache_cleanup_interval_seconds。main.py启动时清理一次,并在非 pytest 环境启动 daemonCacheCleanup线程定期清理。
调整
Upload.vue/Download.vue创建云端上传/下载任务后,把任务注册到全局tasksstore,再询问是否前往任务看板管理。Upload.vue/Download.vue创建任务后不再自动跳转任务看板,改为弹窗提示「已创建任务,是否前往任务看板查看?」,用户确认后再跳转。Tasks.vue任务列表 UI 重构为紧凑任务队列:顶部统计改为小型状态 pill,单条任务横向展示状态、标题、进度、摘要和操作;详情区改为指标条 + 明细表,移动端纵向堆叠避免横向溢出。- 新建上传缓存目录改为
upload-<id>,下载产物目录改为download-<id>,生成 zip 改为generated-*.zip,便于缓存页面分类。 - 下载单文件接口优先使用
save_name,避免同名文件去重后按real_name找不到实际保存文件。
