Files
SenSu/ROADMAP.md
T
AskaEth c73e569958 v0.2.2: headless mode, debug server auto-start, WS fix, watchdog hot-reload, example plugin
- --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
2026-06-10 18:50:10 +08:00

4.4 KiB
Raw Blame History

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仪表盘, 进程隔离, 插件市场