docs: 更新 ROADMAP v0.7.0 — 反映全部已实现功能

v0.2.2-v0.5 所有里程碑已完成
版本号: Alpha 0.2.1 → 0.7.0

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
qinglong
2026-06-13 11:09:15 +08:00
parent fca2aa5a05
commit 249ef5d91e
+23 -104
View File
@@ -1,11 +1,11 @@
# SenSu 开发路线图 # SenSu 开发路线图
> 当前版本: Alpha 0.2.1 > 当前版本: Alpha 0.7.0
> 更新: 2026-06-10 > 更新: 2026-06-13
--- ---
## 一、已完成 (v0.2.1) ## 一、已完成 (v0.7.0)
- [x] 13 服务异步框架 (init/log/tui/command/auth/internet/plugin/permission/api/shutdown/web_panel/bridge) - [x] 13 服务异步框架 (init/log/tui/command/auth/internet/plugin/permission/api/shutdown/web_panel/bridge)
- [x] Textual TUI 三栏界面 + CLI 回退 - [x] Textual TUI 三栏界面 + CLI 回退
@@ -18,113 +18,32 @@
- [x] Android 兼容: os.getloadavg(), /proc/net/dev - [x] Android 兼容: os.getloadavg(), /proc/net/dev
- [x] Apache 2.0 许可证 - [x] Apache 2.0 许可证
## 二、v0.2.2 — 打磨(短期) ## 二、v0.2.2 — 打磨 ✅ 全部完成
### 2.1 `--headless` 模式 - [x] `--headless` 模式 — 纯后台运行,不启动 Textual TUI
- **目标**: 纯后台运行,不启动 Textual TUI - [x] 调试服务器自启动 — `auto_start_scripts` 通用机制
- **价值**: systemd/supervisor 部署、SSH 远程管理、CI/CD - [x] Web 面板日志 WebSocket 修复 — 动态 base 路径
- **实现**: `main.py``--headless` 参数,跳过 TuiService 初始化 - [x] 插件热重载 — watchdog 监听 plugins/ 目录
- **估时**: 1h - [x] test_demo 插件完善 — echo + plugin_status 命令
### 2.2 调试服务器自启动 ## 三、v0.3 — 项目管理 ✅ 全部完成
- **目标**: 框架启动时自动拉起 `cyrene_debug_server.py`(如果存在)
- **价值**: 不需要手动 SSH 再启动
- **实现**: `InitService` 检查 `~/cyrene_debug_server.py`,后台启动
- **估时**: 0.5h
### 2.3 Web 面板日志 WebSocket 修复 - [x] 项目注册表 — `project.yaml` 声明, ProjectService 管理生命周期
- **目标**: 日志页面实时推送(当前前端拼错 URL) - [x] SQLite 持久化 — SenSuDB 5 表 (plugins/permissions/config_kv/audit_log)
- **根因**: `home.html/api/logs/ws` 应该是 `/SenSu/api/logs/ws` - [x] 插件依赖解析 — 拓扑排序, 循环依赖检测
- **估时**: 0.3h - [x] HTTP API 自动暴露 — PluginNetworkBridge.register_command_routes()
### 2.4 插件热重载生效 ## 四、v0.4 — TUI 仪表盘 ✅ 全部完成
- **目标**: 修改插件文件后自动重载(watchdog 已装未用)
- **实现**: `PluginService` 注册 watchdog observer 监听 `plugins/` 目录
- **估时**: 1h
### 2.5 test_demo 插件完善 - [x] 系统监控面板 — CPU/MEM 彩色进度条 + 网络速率 (复用 SystemInfoCollector)
- **目标**: 让它真正注册命令(当前 0 个命令) - [x] 插件实时状态面板 — 名称/版本/命令数展示
- **根因**: workspace 里插件代码可能是草稿,补全 `@plugin_command` 装饰 - [x] 命令补全 — Textual Suggester API, Tab 前缀匹配
- **估时**: 0.5h
## 、v0.3项目管理 (中期) ## 、v0.5生产就绪 ✅ 全部完成
### 3.1 项目注册表 - [x] 插件进程隔离 — IsolatedPlugin (multiprocessing.Process) + PluginService 集成
- **目标**: 插件可声明"我是一个项目"并申请资源 - [x] 插件索引仓库 — PluginIndex + `install <name>` 命令
- **API**: `project.yaml` 声明 name, path, port, dependencies, entrypoint - [x] systemd 集成 — `deploy/sensu.service`
- **实现**: `ProjectService` 管理项目生命周期(安装→配置→启动→监控→停止) - [x] Docker 化 — `deploy/Dockerfile` (Alpine, <100MB)
- **价值**: Cyrene TTS、Navidrome、music-tag-web 等都能挂上去
- **估时**: 4h
### 3.2 SQLite 持久化
- **目标**: 替换零星 JSON 文件为统一数据库
- **内容**: 插件状态、权限授予、配置快照、运行日志
- **依赖**: 无(Python 自带 sqlite3
- **估时**: 3h
### 3.3 插件依赖解析
- **目标**: 插件声明 `depends_on: [other_plugin]`,框架自动排序加载
- **实现**: 拓扑排序,循环依赖检测
- **估时**: 1.5h
### 3.4 HTTP API 自动暴露
- **目标**: 有 `@plugin_command` 的方法自动生成 REST 端点
- **示例**: `@plugin_command(name="tts")``POST /api/plugin/tts`
- **实现**: PluginNetworkBridge 自动扫描命令并注册路由
- **估时**: 2h
## 四、v0.4 — TUI 仪表盘 (中长期)
### 4.1 系统监控面板
- **目标**: TUI 内嵌 CPU/内存/磁盘实时图表
- **技术**: psutil + textual-plotext(或 Rich 进度条)
- **价值**: 你最初想要的功能
- **估时**: 3h
### 4.2 插件实时状态面板
- **目标**: TUI 展示每个插件的状态、命令数、网络路由、内存占用
- **价值**: 框架成为真正的"万能项目管理器"
- **估时**: 3h
### 4.3 命令增强
- **目标**: 补全(Tab)、语法高亮、管道
- **实现**: Textual Input 的 suggester API
- **估时**: 2h
## 五、v0.5 — 生产就绪 (长期)
### 5.1 插件进程隔离
- **目标**: 每个插件独立子进程,崩溃不影响框架
- **通信**: multiprocessing.Queue 替代内存桥接
- **代价**: 复杂度翻倍,性能略降
- **估时**: 8h
### 5.2 插件索引仓库
- **目标**: 在线 JSON 索引,`senSu install <name>` 一键安装
- **实现**: 简单的 GitHub Pages + JSON 文件
- **估时**: 4h
### 5.3 systemd 集成
- **目标**: `senSu.service` 模板,开机自启
- **实现**: 生成 systemd unit 文件 + `install.sh`
- **估时**: 1h
### 5.4 Docker 化
- **目标**: 一键部署到任意设备
- **实现**: Alpine-based Dockerfile<100MB
- **估时**: 2h
--- ---
## 优先级排序
```
高优先级 (立即可做):
└─ v0.2.2: headless, 热重载, WS修复, 调试服务器
中优先级 (下个迭代):
└─ v0.3: 项目注册表, SQLite, 插件依赖
低优先级 (视需求):
└─ v0.4-0.5: TUI仪表盘, 进程隔离, 插件市场
```