TraceStudio-dev/docs/web1.1_filemanager/CHANGELOG_v0.2.0.md
2026-01-07 21:31:22 +08:00

137 lines
3.8 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.

# TraceStudio v0.2.0 更新日志
## 🎉 重大更新:多用户文件管理系统
### 新增功能
#### 📁 文件管理器
- **完整的文件系统**: 浏览、上传、下载、删除、重命名文件
- **目录导航**: 面包屑路径,支持快速返回父级
- **右键菜单**: 直观的文件操作
- **文件图标**: 根据文件类型显示不同图标
#### 👤 多用户支持
- **用户切换**: 点击 HeaderBar 右侧用户按钮即可切换
- **数据隔离**: 每个用户拥有独立的文件空间
- **自动创建**: 首次登录自动创建用户目录结构
#### 🎯 拖拽集成
- **CSV 拖拽**: 从文件浏览器拖拽 CSV 文件到画布
- **自动创建节点**: 自动生成 CSVLoader 节点
- **自动填充路径**: 节点参数自动填入文件路径
#### 🗂️ 目录结构
```
cloud/
├── shared/ # 共享资源(所有用户可见)
├── temp/ # 临时文件
└── users/ # 用户私有空间
└── {username}/
├── workflows/ # 工作流
├── data/ # 数据文件
└── results/ # 结果
```
### 技术实现
#### 后端 (Python/FastAPI)
- **新增模块**: `server/file_manager.py`
- **API 路由**: `/api/files/*` (list, upload, action, download)
- **路径安全**: 防止目录遍历攻击
- **自动初始化**: 启动时创建基础目录结构
#### 前端 (React/TypeScript)
- **新组件**: `FileExplorer.tsx` (文件浏览器)
- **Store 扩展**: 添加 `currentUser`, `currentPath` 状态
- **UI 集成**: 左侧面板新增"文件"标签
- **用户切换器**: HeaderBar 右侧新增用户按钮
### 修复的 Bug
#### ✅ 无限循环渲染问题
- **问题**: `useEffect` 中同步调用 `setState` 导致级联渲染
- **解决**:
- 移除 UniversalNode 中的空 useEffect
- Workspace 使用 ref 跟踪更新来源
- 避免所有同步 setState 调用
#### ✅ 空值安全问题
- **问题**: 访问 `preview.data.length` 未使用可选链
- **解决**: 所有预览数据访问添加 `?.``Array.isArray` 检查
### API 变更
#### 新增接口
```typescript
// 文件管理 API
listFiles(path, username) // 列出目录
uploadFile(file, path, username) // 上传文件
fileAction(action) // 文件操作
getDownloadUrl(path) // 获取下载链接
getFileInfo(path) // 获取文件信息
```
#### Store 新增
```typescript
// 用户状态
currentUser: string // 当前用户名
setCurrentUser(user) // 切换用户
// 文件浏览器
showFileExplorer: boolean // 显示/隐藏
currentPath: string // 当前路径
setCurrentPath(path) // 设置路径
```
### 使用指南
#### 快速开始
1. **启动服务**
```bash
# 后端
python -m uvicorn server.main:app --reload
# 前端
cd web && npm run dev
```
2. **切换用户**
- 点击 HeaderBar 右上角用户按钮
- 选择预设用户或自定义用户名
3. **上传文件**
- 点击左侧"📁 文件"标签
- 点击"📤 上传"选择文件
4. **拖拽创建节点**
- 拖动 CSV 文件到画布
- 自动生成 CSVLoader 节点
### 性能优化
- **React 渲染优化**: 使用 ref 避免循环依赖
- **异步加载**: 文件列表异步获取,不阻塞 UI
- **懒加载**: 只在需要时加载文件列表
### 下一步计划
- [ ] 工作流文件(.utrace的保存/加载
- [ ] 拖拽支持更多文件类型JSON、图片
- [ ] 文件搜索功能
- [ ] 文件夹批量操作
- [ ] 文件预览CSV、图片
- [ ] 用户权限管理(生产环境)
### 文档
- 📖 [文件管理器使用指南](./docs/FILE_MANAGER_GUIDE.md)
- 📖 [功能更新文档](./docs/FEATURE_UPDATE_v0.2.0.md)
---
**版本**: v0.2.0
**发布日期**: 2026-01-07
**重大变更**: 是
**向后兼容**: 是