Files
ele-HeiXiu/TODO.md
YoungestSongMo e4c9ae8fc6 feat: 三栏比例缩放 + SeedanceContent视频上传 + 本地存储基建 (0.0.22)
三栏布局
- ResizeObserver 等比例分配替代固定默认值恢复
- 修复拖拽+窗口调整竞态卡死(needsRecalcRef 延迟补算)
- containerRef.current 动态读取 DOM 替代闭包 el

Seedance2Content
- 从占位文本重构为内容编排控件(文本+图片/视频/音频上传)
- 根据 spec.image_files/video_files/audio_files 动态渲染上传区域
- 值 JSON 序列化 → 提交时转 ContentItem[](text/image_url/video_url/audio_url)

图片上传兼容视频文件
- buildAccept 根据 file_filter 区分 image/video 前缀
- createMediaBeforeUpload 动态放行 video/* MIME
- 公共模块 media-upload-utils.ts

本地存储基建
- sql.js (WASM SQLite) + safeStorage 加密持久化
- 8个IPC文件操作通道 + resolveSafe 路径穿越防护
- <userData>/heixiu-data/ 沙箱 + JWT用户隔离
- 7表DDL + 游标分页 + LRU媒体淘汰

其他
- 修复 errorMessageRef 渲染期写入警告
- 媒体预览回退直接URL(<img>无CORS限制)+ output_type类型补充
- CSP wasm-unsafe-eval + https: CDN媒体源
2026-06-18 19:22:28 +08:00

102 lines
4.6 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.
# TODO — 船长·HeiXiu 待办与优化清单
> 最后更新2026-06-18
---
## 🟡 功能待完善(优先级中)
### 设置页面
- [ ] 设置数据通过 IPC 同步到主进程(当前仅渲染进程 localStorage
- [ ] 存储路径有效性校验(检查路径是否存在)
- [ ] "恢复默认设置"按钮
### 路由与页面
- [x] 账户信息页面(`/account``AccountInfo.tsx`AuthAPI.getUserInfo() 驱动
- [x] 充值页面(`/recharge``RechargePage.tsx`,创建订单 → 支付状态跟踪
- [x] 订单明细页面(`/orders``OrdersPage.tsx`,状态筛选 + 分页 + 继续支付 + 轮询
- [ ] 合规素材库页面(`/compliance-assets`
- [ ] 项目管理页面(`/projects`,企业版)
- [ ] 会员页面(`/vip`
- [ ] 消费记录页面
- [x] 本地数据管理(加载历史/保存到磁盘/清理缓存) — `DataManageSetting` + sql.js 存储
### 媒体与文件
- [ ] 媒体文件本地下载+缓存(主进程 HTTP 无 CORS 限制,替代渲染进程 axios
- [ ] CDN 签名过期检测(主进程发 HEAD 请求读 `SignatureExpired` 响应体)
- [ ] 列表页"下一页"懒加载集成TaskHistory / OrdersPage 调用 `fetchAndSync*`
- [ ] 参数回填 UI选择模型时显示历史参数下拉
- [ ] 右键"在文件夹中查看"功能(媒体预览右键菜单)
### 导航栏
- [ ] 导航配置中的 `action: 'external'` 统一管理(白名单校验)
- [ ] 未登录点击需登录项 → 登录成功后自动跳转到目标页
### 公告
- [x] 公告数据获取与展示AnnouncementDrawer + fetchAnnouncements API
- [ ] 公告已读/未读状态
- [ ] 公告红点/角标提醒(有新公告时导航栏图标变化)
- [ ] 公告缓存(减少重复请求)
### 任务
- [x] 任务状态轮询(批量轮询 + Context 桥接 + 自适应间隔)
- [ ] 任务列表导出 CSV 功能完善
- [ ] 任务重试/重新提交
---
## 🟢 工程优化(优先级低)
### 构建与开发
- [ ] CI/CD 流水线GitHub Actions / 自建)
- [ ] 代码签名自动化Windows Authenticode / macOS notarization
- [ ] E2E 测试用例编写Playwright
- [ ] 单元测试覆盖Vitest
- [ ] Bundle 体积分析优化rollup-plugin-visualizer 已有,定期检查)
### 代码质量
- [ ] 移除未使用的 `shared/` 类型和常量
- [ ] 统一 IPC 通道注册/注销模式(避免重复监听)
- [ ] React 组件 lazy loadingReact.lazy + Suspense
- [ ] 错误边界组件ErrorBoundary
- [ ] 审计其余 useEffect 缺少清理函数的位置StrictMode 双重挂载可能导致重复请求,参考 AppProvider 的 aborted 模式)
### 文档
- [ ] API 接口文档Swagger / 手动维护)
- [ ] 组件文档Storybook
- [ ] 用户操作手册
---
## ⚠️ 已知技术债务
| 问题 | 说明 | 影响 |
|-----------------|---------------------------------------|----------------|
| localStorage 依赖 | 所有持久化数据依赖 localStorage | 清理浏览器数据会丢失所有配置 |
| IPC 监听器 | useUpdater 已改为单例,其他 IPC hook 可能也有类似问题 | 长期运行可能内存泄漏 |
| `test.py` | 仓库根目录残留测试文件 | 无实际作用,应清理 |
| `null` 文件 | 仓库根目录名为 null 的文件 | 构建产物或误操作残留 |
---
## 📋 下次开发计划
1. **任务列表导出 CSV**`task.ts` 已定义 `exportTaskCSV` API前端未对接下载按钮
2. **文件上传端点确认**`/api/v1/upload` 待后端确认,当前 useFileUpload 已完成前端集成)
3. **合规素材库页面**(功能待完善 — 按 QT 原版设计,以 Modal/Drawer 叠加而非路由跳转实现)
4. **各页面 nav 导航补齐**(后续页面优先使用叠加模式,遵循 QT 多窗口模型 → 见 WORKLOG 2026-06-07
5. **leftWidth / rightWidth / taskPage 加 localStorage 持久化**UX 优化:刷新页面后保持用户偏好;已通过路由去路由化解决组件卸载问题,但
localStorage 持久层仍未实现)
6. **轮播图关闭按钮 localStorage 持久化**关闭按钮已实现待做localStorage 记录关闭时间戳,超过 N 天再显示)
7. **短信发送接入人机验证**(后期优化,需后端配合:`sendSms` 接口增加 `captcha_token` 参数 + 前端滑块/图形验证组件。当前仅靠
60s 冷却按钮 + 后端限流,桌面端 ASAR 可解包 + DevTools 网络面板 + 代理抓包均能直接暴露 API纯前端限制对脚本攻击无效