c73e569958
- --headless flag (skip TUI for SSH/systemd) - InitService auto-starts cyrene_debug_server.py - Fixed log WS URL (home.html/api/logs/ws -> api/logs/ws) - PluginService watchdog hot-reload (plugins/ dir) - example_plugin: 2 commands (echo, plugin_status) - Tests: 15/15 passing
4.4 KiB
4.4 KiB
SenSu 开发路线图
当前版本: Alpha 0.2.1
更新: 2026-06-10
一、已完成 (v0.2.1)
- 13 服务异步框架 (init/log/tui/command/auth/internet/plugin/permission/api/shutdown/web_panel/bridge)
- Textual TUI 三栏界面 + CLI 回退
- 插件热加载 + 权限管理
- Web 管理面板 (aiohttp :4200)
- 消息桥接 (CoreBridge + PluginBridge + NetworkBridge)
- 插件 SDK (
sdk/): PluginStatus, PluginError, plugin_command 装饰器 - 15 个回归测试
- 安全加固: PBKDF2-SHA256, 环境变量密码, 认证降级已移除
- Android 兼容: os.getloadavg(), /proc/net/dev
- Apache 2.0 许可证
二、v0.2.2 — 打磨(短期)
2.1 --headless 模式
- 目标: 纯后台运行,不启动 Textual TUI
- 价值: systemd/supervisor 部署、SSH 远程管理、CI/CD
- 实现:
main.py加--headless参数,跳过 TuiService 初始化 - 估时: 1h
2.2 调试服务器自启动
- 目标: 框架启动时自动拉起
cyrene_debug_server.py(如果存在) - 价值: 不需要手动 SSH 再启动
- 实现:
InitService检查~/cyrene_debug_server.py,后台启动 - 估时: 0.5h
2.3 Web 面板日志 WebSocket 修复
- 目标: 日志页面实时推送(当前前端拼错 URL)
- 根因:
home.html/api/logs/ws应该是/SenSu/api/logs/ws - 估时: 0.3h
2.4 插件热重载生效
- 目标: 修改插件文件后自动重载(watchdog 已装未用)
- 实现:
PluginService注册 watchdog observer 监听plugins/目录 - 估时: 1h
2.5 test_demo 插件完善
- 目标: 让它真正注册命令(当前 0 个命令)
- 根因: workspace 里插件代码可能是草稿,补全
@plugin_command装饰 - 估时: 0.5h
三、v0.3 — 项目管理 (中期)
3.1 项目注册表
- 目标: 插件可声明"我是一个项目"并申请资源
- API:
project.yaml声明 name, path, port, dependencies, entrypoint - 实现:
ProjectService管理项目生命周期(安装→配置→启动→监控→停止) - 价值: 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仪表盘, 进程隔离, 插件市场