docs: 更新README+架构文档 反映v0.6.0文件管理器/WS推送/WebUI重构

- README: 新增文件管理器特性/Web面板路由/架构更新
- 框架架构文档: 新增第十章 v0.6.0 WebUI重构+文件管理器+WS推送+MD3主题

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
qinglong
2026-06-11 18:28:50 +08:00
parent fd715eac2b
commit eeca8e37e1
2 changed files with 76 additions and 17 deletions
+57 -1
View File
@@ -13,7 +13,7 @@ SenSu框架采用了**服务化、插件化、事件驱动**的设计理念:
### 1.2 框架启动流程
```
main.py → CatFramework.initialize() → 依次初始化12个核心服务
main.py → SenSuFramework.initialize() → 依次初始化15+个核心服务
```
**启动顺序**
@@ -425,3 +425,59 @@ PluginError (基础)
### 9.5 PluginService 增强
- 配置验证:加载时检查 `name``version` 必需字段
- 状态追踪:`plugin_status` 字典跟踪每个插件的 `PluginStatus`
## 十、v0.6.0 新增:WebUI 重构 + 文件管理器
### 10.1 Web 面板路由 (services/web_panel/)
v0.6.0 将 Web 面板重构为模块化路由架构:
```
services/web_panel/
├── manager.py # WebPanelManager — 路由注册 + 静态挂载
├── routes/
│ ├── auth.py # 认证 API (login/logout/status)
│ ├── status.py # 框架/系统状态 + WS 实时推送
│ ├── plugins.py # 插件管理 API
│ ├── commands.py # 命令执行 API
│ ├── logs.py # 日志 WS 广播
│ ├── projects.py # 项目引擎 API (run/stop/logs/stdin)
│ ├── proxy.py # 反向代理 API
│ ├── plugin_web.py # 插件 Web 页面动态路由
│ └── files.py # 文件管理器 API (11 个端点) ← NEW
└── utils/
├── auth.py # panel_auth 装饰器
└── system_info.py # 跨平台系统信息采集
```
### 10.2 文件管理器 (v0.6.0)
- **后端**: `services/web_panel/routes/files.py` — 11 个 REST 端点
- 列表/新建/删除/重命名/上传/下载/读写/文件信息
- 全文件系统访问,`os.path.normpath` 防路径穿越
- 跨平台: Windows 盘符枚举 + Linux `/`
- 符号链接: `stat()` 跟踪 → `lstat()` fallback 处理损坏
- **前端**: `pages/files.html` + `pages/files.js`
- 面包屑导航 (每层级可点击) + 可编辑路径跳转
- 双层面包屑 (逻辑路径 + 物理路径,符号链接目录)
- 右键菜单 (下载/重命名/编辑/删除)
- 文本编辑器 (全屏覆盖层)
- 文件上传 (多文件, ≤50MB)
- `..` 行返回上级
- **插件接口**: Picker API (`/api/files/picker`)
- 插件通过 `window.open` + `postMessage` 唤出选择器
- 权限: `filemanager.picker` / `filemanager.access` / `filemanager.write`
### 10.3 WebSocket 实时推送
- `/api/system/ws` — 每 2s 推送系统 + 框架数据 (替代 HTTP 轮询)
- `/api/logs/ws` — 日志广播,前端批量渲染 + 500 行上限防卡死
- 仪表盘: DualLineChart 双线图 (下载实线/上传虚线),Y 轴零点偏移
### 10.4 MD3 主题系统
- CSS 变量完整 MD3 color tokens (Dark + Light 双主题)
- `data-theme` 属性切换,localStorage 持久化
- 按钮组合模式: `btn` + `btn-tonal`/`btn-outlined`/`btn-filled` + `btn-sm`
- SVG 全局 `fill: currentColor` 自适应主题色
- 动画: 波纹/卡片悬浮/页面淡入/状态脉冲/骨架屏