Skip to content

feat(webui): 快捷操作 nohup 进程管理 + SSH 读取修复 + UI 优化#12

Merged
massif-01 merged 1 commit intothomas-hiddenpeak:mainfrom
massif-01:main
Feb 10, 2026
Merged

feat(webui): 快捷操作 nohup 进程管理 + SSH 读取修复 + UI 优化#12
massif-01 merged 1 commit intothomas-hiddenpeak:mainfrom
massif-01:main

Conversation

@massif-01
Copy link
Collaborator

Summary

  • 快捷操作进程管理: 支持 nohup 后台进程的状态检测(运行中/已停止指示灯)、停止进程、查看完整日志;PID 检测兼容 vLLM 等多进程服务(fallback PID-1);防止短时间连续触发不同规则;保存指令时自动剥离多余 nohup 包装
  • SSH 后端修复: 修复 ts_ssh_client.c 读取循环提前退出导致日志截断的 bug,恢复正确的 stdout/stderr drain 逻辑,增加超时保护防止无限循环
  • API 容错: api.js 增加 JSON 响应自动修复,处理 WebSocket 数据污染导致的解析失败
  • UI/CSS 优化: 模态框关闭按钮统一右上角定位;表单输入框样式统一;按钮尺寸全站统一;清理全部调试日志

Changed Files

文件 改动
ts_action_manager.c safeName 生成支持纯中文名称 fallback
ts_ssh_client.c SSH channel 读取循环修复 + 超时保护
style.css 模态框关闭按钮定位、表单/按钮样式统一
index.html Loading 文案微调
api.js JSON 响应容错(WebSocket 污染修复)
app.js 快捷操作全套进程管理功能 + 调试日志清理

Test Plan

  • 从快捷卡片触发 nohup 模型启动,验证状态灯变绿
  • 点击停止按钮终止进程,验证状态灯恢复灰色、就绪状态清除
  • 点击日志按钮查看完整日志输出
  • 纯中文名称指令的 PID/日志文件路径正确
  • 包含 nohup 包装的命令在保存时自动剥离
  • SSH 执行长输出命令(如 cat 大日志文件)不截断

快捷操作(Quick Actions):
- 支持 nohup 后台进程的状态检测、停止、日志查看
- 进程状态指示灯(运行中/已停止)
- 服务模式就绪状态显示与自动清除
- 停止进程后自动清除后端状态变量
- PID 检测支持 fallback(PID-1)兼容 vLLM 等多进程服务
- 防止短时间内连续触发不同规则导致后端串行失败
- safeName 生成支持纯中文名称(fallback 到 cmd.id)
- 保存指令时自动剥离多余的 nohup 包装

SSH 后端修复:
- 修复 ts_ssh_client.c 读取循环提前退出导致日志截断
- 恢复内层 do-while 循环正确 drain stdout/stderr
- 使用 libssh2_channel_eof() 作为外层循环退出条件
- 非 EAGAIN 负值错误码立即返回 ESP_FAIL
- 添加 wait_rounds 超时保护防止无限循环

API 层:
- api.js 增加 JSON 响应容错(WebSocket 数据污染时自动修复)

UI/CSS:
- 模态框关闭按钮统一定位到右上角
- 表单输入框样式统一(padding、font-size)
- 按钮尺寸全站统一(.btn-sm)
- 清理全部调试日志
@massif-01 massif-01 merged commit 887964b into thomas-hiddenpeak:main Feb 10, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments