This website requires JavaScript.
af16549524
chore: 清理误提交的 base_config.yaml.bak
qinglong
2026-06-13 17:46:33 +08:00
5e06c17b52
fix: WebSocket 鉴权 — Cookie 优先 (支持 HttpOnly)
qinglong
2026-06-13 17:45:58 +08:00
557135c376
security: 配置文件模板化 — base_config.yaml 不再入库
qinglong
2026-06-13 15:20:14 +08:00
a2361cf452
fix: Sentinel WebUI — 合并为单页面(仪表盘+节点管理Tab)
qinglong
2026-06-13 15:17:17 +08:00
634496d975
security: Sentinel 路由鉴权 + API Key CSRF + SSRF 防护
qinglong
2026-06-13 15:13:56 +08:00
5e74b0aad7
feat: 🛡️ Sentinel 集群监控插件 + API Key 系统 + 框架设置页
qinglong
2026-06-13 15:05:38 +08:00
66ad51002c
feat: WebUI 框架设置页面 + API Key 管理 UI
qinglong
2026-06-13 14:28:59 +08:00
b92b1cc4fc
security: API Key 权限范围 + 过期时间 + 用量追踪
qinglong
2026-06-13 14:27:07 +08:00
9f6eb29820
feat: API Key 系统 — CRUD + panel_auth 集成 + 持久化
qinglong
2026-06-13 14:25:55 +08:00
e88d472c63
docs: API 认证与数据访问全流程文档
qinglong
2026-06-13 14:14:34 +08:00
2da52e80d0
security: P3+ — 面板密码哈希 + 上传类型白名单 + CSRF Token
qinglong
2026-06-13 14:07:38 +08:00
d835b66ca9
chore: gitignore data/ 目录 (运行时数据,不应入库)
qinglong
2026-06-13 13:57:12 +08:00
ff02b2e16d
security: P3 — 插件隔离默认开启 + SenSuDB 注册 + 审计日志
qinglong
2026-06-13 13:56:58 +08:00
c1d2767f52
fix: web 命令端点 execute_command → process_command (方法名错误)
qinglong
2026-06-13 13:54:37 +08:00
fcac02d920
security: P2 生产深度加固 — 路径/鉴权/脱敏/校验/持久化/过期
qinglong
2026-06-13 13:50:51 +08:00
2f9063d6d4
fix: 登录频率限制 bug — lock_until=0 导致计数被清零
qinglong
2026-06-13 13:46:29 +08:00
a75b9d0975
security: 前端 WebSocket 连接传递 panel_token 认证
qinglong
2026-06-13 13:38:38 +08:00
f7b4908322
security: 公网生产环境加固 — P0/P1 全部修复
qinglong
2026-06-13 13:37:14 +08:00
2dc3c16787
fix: 系统监控改用 asyncio task 驱动,抗 Android 后台挂起
qinglong
2026-06-13 12:50:06 +08:00
10d1a1fcb1
fix: 标题栏 背景改 + 行高加到2 增强可见性
qinglong
2026-06-13 12:18:50 +08:00
feca81842b
fix: 回到 grid 布局 + 顶部留空行 — 5行: 空/标题/状态栏/主区/输入
qinglong
2026-06-13 12:17:30 +08:00
ae8586bc4a
fix: 用 Static 标题栏替代 Textual Header,确保始终显示
qinglong
2026-06-13 12:00:36 +08:00
18f9fcfcd3
fix: Header dock top 防止被 monitor-area 遮挡
qinglong
2026-06-13 11:56:58 +08:00
f7117825ae
fix: 日志区改用 dock 布局自动占满剩余空间
qinglong
2026-06-13 11:54:27 +08:00
7caf35281b
fix: 移除输入区外部边框
qinglong
2026-06-13 11:52:00 +08:00
74fd337a4c
fix: 输入框高度 5→3 + 主显示区 min-height 防塌缩
qinglong
2026-06-13 11:49:57 +08:00
d88438be3b
style: Header 与状态栏之间加一行间距 (padding-top: 1)
qinglong
2026-06-13 11:46:23 +08:00
9517afabd9
fix: 输入框置底 — 移除冲突的 height 属性,用 align center bottom
qinglong
2026-06-13 11:46:11 +08:00
cbc2dd6b82
fix: TUI 布局调整 — 标题恢复 + 增加输入/状态栏高度
qinglong
2026-06-13 11:42:08 +08:00
6382c8019d
refactor: TUI 布局重构 — 经典三行:状态栏 + 主显示区 + 固定底部输入
qinglong
2026-06-13 11:34:45 +08:00
7518f4fd17
fix: textual.suggestion 兼容老版 Textual + 升级最低版本约束
qinglong
2026-06-13 11:15:09 +08:00
249ef5d91e
docs: 更新 ROADMAP v0.7.0 — 反映全部已实现功能
qinglong
2026-06-13 11:09:15 +08:00
fca2aa5a05
feat(v0.5.2): 插件索引仓库 + install 命令
qinglong
2026-06-13 11:08:47 +08:00
7ce495de2a
feat(v0.5.1): 插件进程隔离 — 集成到 PluginService
qinglong
2026-06-13 11:07:30 +08:00
37d1110f2b
feat(v0.4.3): TUI 命令 Tab 补全
qinglong
2026-06-13 11:06:31 +08:00
2d0a37ba19
feat(v0.4): TUI 系统监控面板 + 插件状态面板
qinglong
2026-06-13 11:05:56 +08:00
f402af58d0
feat(v0.3.4): 插件命令 HTTP API 自动暴露
qinglong
2026-06-13 11:02:45 +08:00
d5388057d9
feat(v0.2.2): 插件热重载 — watchdog 监听 plugins/ 自动重载
qinglong
2026-06-13 11:01:00 +08:00
dcef1173f2
feat(v0.2.2): 调试服务器自启动 — InitService.start_auto_scripts()
qinglong
2026-06-13 10:58:01 +08:00
9de094ea54
fix: 移除遗留fmfuncs目录创建 + 清理init_service无用导入 + 文件管理器SVG图标 + 示例插件MD3改造
qinglong
2026-06-12 19:00:19 +08:00
9b997d8bda
fix: 文件选择器改为页内iframe弹窗 + 乱码编码修复 + API路径修复
qinglong
2026-06-11 21:51:42 +08:00
d275c78aed
docs: 插件开发指南新增 pickPath() 便捷调用说明
qinglong
2026-06-11 21:13:25 +08:00
dc0bb79a7e
feat: 全局文件选择器 + 项目管理路径选择按钮
qinglong
2026-06-11 21:11:50 +08:00
99c3e3e853
feat: hash路由 + 插件页面内联加载 + 侧边栏插件面板展开项
qinglong
2026-06-11 20:56:39 +08:00
eeca8e37e1
docs: 更新README+架构文档 反映v0.6.0文件管理器/WS推送/WebUI重构
qinglong
2026-06-11 18:28:50 +08:00
fd715eac2b
feat: 文件管理器 + Windows兼容 + SVG主题适配 (v0.6.0)
qinglong
2026-06-11 18:23:32 +08:00
4a989bf50f
feat: WS实时推送、网速双线图、按钮MD3修复、页面加载器修复 (v0.6.0)
qinglong
2026-06-11 16:23:31 +08:00
fd0a97fec5
Fix login redirect: add /SenSu/index.html route, restart picks up new app.js - /SenSu/index.html now serves login page (was 404 after cookie expiry) - Fresh restart with latest page loader + inline script execution - All routes verified: 200 OK
qinglong
2026-06-11 14:47:37 +08:00
c07cea4ff7
Fix page loader: execute inline scripts, JS module loading optional - innerHTML strips script tags, now extract and eval them - External .js module: 404 = skip gracefully (no error) - Progress bar: completes regardless of JS module - Proxy/projects pages now render with CSS + inline JS executes
qinglong
2026-06-11 14:43:24 +08:00
dd8a31e29a
Fix: proxy API prefix, version from config, remove auth from framework/system endpoints - Proxy routes now use /SenSu/api/proxy (was missing prefix) - Projects routes use dynamic prefix - Version reads from config/framework/base_config.yaml - Framework/System APIs no longer require auth (public info) - Proxy init separated from route setup (avoids frozen router error) - Version updated to v0.6.0
qinglong
2026-06-11 14:37:28 +08:00
6918ee6514
Fix headless mode: use sleep loop instead of CLI mode (prevent EOF exit) - Headless now keeps server alive with asyncio.sleep(1) loop - CLI mode only for non-headless fallback - Enables running SenSu as daemon/service
qinglong
2026-06-11 13:02:56 +08:00
885929f3ff
Fix proxy/projects pages: error handling when API unavailable - proxy: .catch() shows 'service not ready' instead of stuck loading - projects: shows 'engine not ready' on API error - Both: show 'no items' placeholder instead of blank
qinglong
2026-06-11 12:47:39 +08:00
a1dd401efc
Fix theme toggle: move init to app.js, remove duplicate script - Theme initialized BEFORE page render (no flash) - toggleTheme() now in app.js global scope - Proxy page rewritten with btn-filled MD3 class
qinglong
2026-06-11 12:46:33 +08:00
c4e2783120
WebUI: MD3 projects/proxy pages, sidebar links, CSS animations - Add projects + proxy nav items to sidebar - Rewrite projects.html with MD3 cards + tabs + mgmt-cards - Rewrite proxy.html with MD3 form + mgmt-cards - CSS: button ripple, card elevation, page fade, tab slide, input glow, nav dot, status pulse, log entry fade, shimmer, scrollbar, badge bounce, card hover mouse-glow (428 lines)
qinglong
2026-06-11 12:12:03 +08:00
b37cbf076c
WebUI: MD3 2026 redesign + light/dark theme toggle - Rewrite CSS with full MD3 color tokens + elevation + shape system - Add light theme with data-theme="light" - Theme toggle button in top bar (persists to localStorage) - 268 lines CSS, covers login/shell/dashboard/plugins/projects/proxy
AskaEth
2026-06-11 11:53:32 +08:00
7436f699fb
Update docs: README + project structure for v0.6
AskaEth
2026-06-11 10:48:58 +08:00
7dc87d9f3a
Fix WebSocket log URL: extract base path instead of page path
AskaEth
2026-06-10 21:29:43 +08:00
4906b4dc2a
Fix short-term issues: refactor main.py, test paths, sysmon optional psutil
AskaEth
2026-06-10 21:18:59 +08:00
3993cc41a9
Fix main.py imports (line-targeted, no try-block corruption) - Phases 1-3 all integrated - 28/28 tests passing - 7/7 modules import OK
AskaEth
2026-06-10 20:56:01 +08:00
e52f7f3566
Phase 3: PluginWebMixin SDK + web plugin control panels - New: sdk/plugin_web.py (PluginWebMixin: web pages, API routes, SSE) - New: services/web_panel/routes/plugin_web.py (3 endpoints) - New: plugins/example_plugin/dashboard.html (counter + SSE demo) - Updated: example_plugin uses PluginWebMixin - Tests: 28/28 passing
AskaEth
2026-06-10 20:54:11 +08:00
c680fea8e0
Phase 2: ProxyService reverse proxy (HTTP+WebSocket forwarding) - New: services/proxy_service.py (path->URL mapping) - New: services/web_panel/routes/proxy.py (3 REST endpoints) - New: static/web_panel/pages/proxy.html (WebUI) - Tests: 28/28 passing
AskaEth
2026-06-10 20:47:17 +08:00
8dbf628dd6
Phase 1: ProjectEngine + PyEnvManager + project management WebUI - New: services/project_engine.py (async subprocess manager) - New: services/pyenv_manager.py (Python version + venv + git clone) - New: services/web_panel/routes/projects.py (5 REST endpoints) - New: static/web_panel/pages/projects.html (WebUI) - Tests: 28/28 passing, API verified (GET /api/projects) - Docs: Phase1_Progress.md (local)
AskaEth
2026-06-10 20:41:24 +08:00
7e762b68fe
Fix URL line wrapping: put URL on own line with leading space for terminal clickability
AskaEth
2026-06-10 19:54:51 +08:00
7e682190ab
Fix: URL spacing for terminal clickability, DEBUG level from config
AskaEth
2026-06-10 19:51:07 +08:00
57009c7f43
Update version to v0.5.0 (config + TUI), clean DreamSu->SenSu in main.py
AskaEth
2026-06-10 19:46:09 +08:00
b5d688700d
Update docs: README + project structure for v0.5
AskaEth
2026-06-10 19:43:18 +08:00
f5800cc6c3
Debug: fix headless mode, plugin compat, psutil optional, module imports - headless: TUI skip now works correctly - example_plugin: keyword args compat (plugin_name=, config=, bridge=) - sysmon: psutil made optional (graceful degrade) - tui_service: SysMonWidget optional - All 22 modules import clean, 23 tests pass, integration verified
AskaEth
2026-06-10 19:26:41 +08:00
4b26b6f086
v0.4+v0.5: TUI dashboard, tab completion, systemd, Docker, process isolation - New: services/sysmon_widget.py (CPU/MEM/DISK/NET real-time) - Enhanced: tui_service.py (4-section layout, plugin status panel) - Enhanced: command_service.py + tui (Tab completion) - New: deploy/sensu.service (systemd) - New: deploy/Dockerfile (Alpine, 4200+4240) - New: services/process_isolated.py (multiprocess plugin isolation) - Tests: 23/23 passing
AskaEth
2026-06-10 19:08:16 +08:00
d48ef65b35
v0.3: SQLite persistence + ProjectService + dependency resolution - New: services/sensu_db.py (SQLite, 5 tables) - New: services/project_service.py (project registry, port allocation, dep resolution) - Integrated into main.py (step 11.6) - Tests: 23/23 passing (15 original + 8 new)
AskaEth
2026-06-10 18:59:25 +08:00
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
AskaEth
2026-06-10 18:50:10 +08:00
3270a84c4e
Rename core -> sdk (plugin SDK, self-documenting)
AskaEth
2026-06-10 18:19:05 +08:00
2bc00f8207
Rename fmfuncs -> core (cleaner, semantic)
AskaEth
2026-06-10 18:17:21 +08:00
5e23778d90
Update docs: architecture + plugin guide for v0.2.1 enhancements
AskaEth
2026-06-10 13:09:52 +08:00
1cbe52174d
Add plugin enhancements: PluginStatus, PluginError, subscribe_plugin, config validation - New: fmfuncs/plugin_status.py (9 states) - New: fmfuncs/plugin_error.py (6 exception classes) - Enhanced: bridges/plugin_bridge.py (subscribe_plugin) - Enhanced: bridges/plugin_network_bridge.py (setup_data_transfer, send_data) - Enhanced: services/plugin_service.py (config validation + status tracking) - Tests: 15/15 passing (10 original + 5 new)
AskaEth
2026-06-10 13:02:33 +08:00
79f7fb86fe
Add TOC to plugin dev guide (28 entries) + Android compat fixes
AskaEth
2026-06-10 12:51:18 +08:00
ef23957bc8
Fix license in README: MIT -> Apache 2.0
AskaEth
2026-06-10 12:30:19 +08:00
1e2e2f7a27
Add Apache 2.0 License
AskaEth
2026-06-10 12:29:31 +08:00
e6875f0b4b
Initial commit: SenSu Alpha 0.2.0
AskaEth
2026-06-10 12:27:14 +08:00
5a9d96dc1b
Initial commit
AskaEth
2026-06-10 12:23:04 +08:00