Files
my_site/docs/agents/unfinished-work.md
2026-04-09 00:48:32 +08:00

160 lines
4.7 KiB
Markdown
Raw 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-04-09
本文只记录当前还没有完全收口的工作,方便后续窗口快速接上。新会话仍必须先读 `memory.md``docs/architecture.md``docs/api-reference.md`,再读本文。
## 当前 Git 状态
- 当前分支:`dev`
- 已推送到:`gitea/dev`
- 最近已推送提交:`977eb60 feat(files): add v2 task and metadata workflows`
- 当前未提交文件:
- `docs/superpowers/plans/2026-04-09-frontend-redesign-generation-spec.md`
- 当前未跟踪但不要默认处理:
- `.claude/`
## 已写好的前端重设计说明书
说明书位置:
- `docs/superpowers/plans/2026-04-09-frontend-redesign-generation-spec.md`
这份文档是下一步前端重构的主输入。核心目标是解决文件页放不下新增能力的问题:
- 桌面端改为“目录 Rail + 主文件工作区 + 可折叠 Inspector”
- 移动端改为“顶部路径栏 + 文件列表 + 搜索/任务/操作底部 sheet”
- 不改后端接口语义
- 不改上传、缓存、SSE、搜索和任务 helper 的业务语义
- 不做 landing page
- 不使用紫色或紫蓝渐变
- 不加离散渐变光球或 bokeh 背景
- 不做卡片套卡片
- 卡片和按钮圆角收敛到 8px 内
## 下一步优先级
### P0先做前端文件页重构
入口:
- `front/src/pages/Files.tsx`
- `front/src/mobile-pages/MobileFiles.tsx`
建议顺序:
1. 先拆组件,不改视觉。
2. 抽状态 hook目录、搜索、后台任务、弹层。
3. 桌面端替换为目录 Rail + 主列表 + Inspector。
4. 移动端补搜索 sheet、任务 sheet、分组 action sheet。
5. 最后统一圆角、间距、长文本截断和可访问性。
必须保留:
- 当前目录加载与缓存
- SSE 文件事件刷新当前目录
- 搜索结果不污染目录缓存
- 上传文件、上传文件夹、新建文件夹
- 列表/网格切换
- 文件夹双击进入
- 下载、分享、重命名、移动、复制、删除
- 回收站入口
- 创建媒体信息提取任务
- 最近后台任务查看与取消
验证命令:
```powershell
cd front
npm run lint
npm run test
```
不要在仓库根目录运行 `npm` 命令。
### P1阶段 6 后台任务继续真实化
当前状态:
- `/api/v2/tasks/**` 后端骨架已落地
- worker 会领取 `QUEUED` 任务并切换状态
- `MEDIA_META` 已有最小真实 handler会写入基础媒体 metadata 和图片宽高
- `ARCHIVE` / `EXTRACT` 仍是 no-op handler
后续未完成:
- 真实压缩任务
- 真实解压任务
- 任务重试策略
- 服务重启后的 `RUNNING` 任务恢复策略
- 更完整的任务进度字段
- 前端任务面板自动轮询或 SSE 化
- 移动端任务入口
### P1分享二期继续收口
当前状态:
- v2 分享后端骨架已落地
- 支持密码、过期时间、导入开关、下载次数相关字段、我的分享、删除
- `allowDownload` 已落库并返回
后续未完成:
- 独立 v2 下载路由消费 `allowDownload`
- 前端分享二期设置界面
- 公开分享页的密码输入与过期/次数提示体验
### P2上传会话二期继续推进
当前状态:
- v2 upload session 创建、查询、取消、complete、part metadata 和过期清理骨架已落地
- 当前只记录会话和 part metadata不做真实对象存储 multipart
后续未完成:
-`FileContentStorage` 抽象层补 multipart 能力语义
- S3 multipart 的 create/upload-part/complete/abort
- 过期清理从普通 `deleteBlob` 升级为可 abort 未完成 multipart
- 前端上传队列切到 v2 session
### P2存储策略继续推进
当前状态:
- `StoragePolicy` 和能力声明骨架已落地
- 管理台只读展示已落地
- 物理实体可追踪 `storagePolicyId`
后续未完成:
- 管理台新增/编辑/停用策略
- 多策略迁移任务
- 按策略能力决定上传路径
- 真正启用 multipart 能力
## 当前本地运行状态
最近一次本地查看时:
- 前端:`http://127.0.0.1:3000`
- 后端 Swagger`http://127.0.0.1:8080/swagger-ui.html`
- 后端使用本地内存 H2 启动,重启后数据会清空
如果后续会话接手时进程已经不存在,使用现有脚本:
```powershell
.\scripts\start-backend-dev.ps1
.\scripts\start-frontend-dev.ps1
```
## 已知注意事项
- `.claude/` 是未跟踪目录,不要默认提交。
- `front/node_modules` 已通过 `cd front && npm install` 补齐过缺失依赖,但不要提交 `node_modules`
- 前端类型检查命令就是 `npm run lint`,没有单独的 `typecheck` 脚本。
- 后端没有独立 lint 命令,常规验证用 `cd backend && mvn test`
- 如果只做前端布局重构,一般不需要跑后端测试。
- 如果改了 API helper、DTO 对齐或后端语义,再跑 `cd backend && mvn test`