r
73278667e0
feat(files): 跨服务器文件直传与打包投递
...
A→B SFTP 中继与一键 tar 打包 curl 拉取;含审计修复与 18 项单测。
2026-06-21 12:48:50 +08:00
r
629d8b3e26
fix(btpanel): login-url 返回类型含 bool 导致全站 500
...
路由注解 dict[str,str] 与 bootstrapped 布尔字段冲突,FastAPI 响应校验失败。
2026-06-21 12:17:29 +08:00
r
37720c4705
feat(btpanel): 一键登录自动获取 API 与倒计时提示
...
未配置机器点击登录时后端 immediate bootstrap;前端顶部 snackbar 显示约 20 秒倒计时。
2026-06-21 12:09:34 +08:00
r
6720ca3474
feat(servers): 主列表宝塔登录 + 健康检查写心跳
...
主服务器列表操作列一键登录宝塔;SSH 健康检查写入 Redis 心跳并刷新在线状态。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-21 11:05:43 +08:00
r
2e797f86b7
feat(btpanel): 服务器列表增加在线状态列
...
批量读 Redis 心跳返回 status,前端与主服务器列表样式一致。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-21 10:54:04 +08:00
r
5ea5c3a411
fix(btpanel): 一键登录 URL 去掉安全入口路径
...
tmp_token 登录在 :port/login,非 :port/{admin}/login,后者 nginx 404。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-21 10:46:22 +08:00
r
3195787461
fix(btpanel): 非 root SSH bootstrap 自动 sudo 提权
...
ubuntu 等用户免密 sudo 下宝塔已装但脚本未提权导致 ssh_command_failed;附 ssh_timeout 运维清单。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-21 10:40:46 +08:00
r
97c47a120f
fix(btpanel): 面板登录 URL 使用宝塔 pyenv 执行 tools.py
...
系统 python3 缺 psutil 导致 SSH 回退失败;相对 tmp_token 自动拼安全入口。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-21 10:16:33 +08:00
r
51b6d0cdff
fix(btpanel): API 签名改为 md5(time+token)
...
与面板 common.py 一致;原双重 md5 导致密钥校验失败。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-21 10:05:39 +08:00
r
b768da3ab8
fix(btpanel): bootstrap 误判 exit_code=0 为失败
...
Python 中 0 or 1 为 1,导致 SSH 成功仍报 ssh_command_failed。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-21 09:52:22 +08:00
r
45ca57bf3f
fix(ssh): 连接前从 preset_id 解析 SSH 密码
...
修复宝塔批量引导因仅关联密码预设、行内 password 为空而全部 ssh_command_failed。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-21 09:47:22 +08:00
r
461ac81221
fix(btpanel): 接受相对路径 tmp_token 登录链接
...
宝塔 tools.py 常返回 /login?tmp_token=...,现与 base_url 拼接为完整 URL。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-21 09:26:57 +08:00
r
82426b1941
feat(btpanel): 独立宝塔模块与 SSH 自动获取 API
...
新增侧栏「宝塔面板」菜单、代理 API 与连接配置页;通过 SSH 读写子机
api.json 自动写入凭据,5 分钟后台重试,含审计修复、检测缓存与并发锁。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-21 09:13:14 +08:00
r
d8ec4f1af4
fix: 登录白名单校验改用 LOGIN_ALLOWED_IPS 单一数据源
...
多 worker 下订阅刷新后 UI 已更新但登录仍被拒;另修复刷新失败时前端误清空节点列表。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-21 08:12:52 +08:00
r
9c9a51263c
chore: 本地快照 — 终端 UI、服务器 site_url、后台任务与 Agent 导航
...
汇总未提交工作区:Servers 列表 site_url 链接、终端页与选机器 UI、SSH 连通性与 Telegram 通知、agent/offline/unset_path 后台调度与 gate_ai_review 门控;更新 AGENTS 与 agent-exploration 规则(仅本机 commit);同步 web/app 构建产物与相关文档。
2026-06-18 06:01:50 +08:00
Nexus Agent
1a79c0fbfb
feat(watch): Baota-style server detail drawer
...
Expose load/process counts, per-core CPU, memory MB breakdown, and
separate CPU/MEM top-5 processes from SSH probes in the detail drawer.
2026-06-14 06:23:45 +08:00
Nexus Agent
86a45612c8
fix(ops): writable Layer3 state dir for cron user
...
Fall back to ~/.nexus/layer3-health when deploy/var is root-owned.
2026-06-14 04:23:20 +08:00
Nexus Agent
05b0fde197
fix(ops): Layer3 health_monitor state dir and Telegram heredocs
...
Move fail counters under deploy/var/layer3-health, use docker_cmd with
sudo fallback, and refactor alert messages to avoid quote parse errors.
Also fix watch Sparkline rgba gradients, hide empty probe pagination,
and ship pending slot pause/menu UI polish.
2026-06-14 04:20:55 +08:00
Nexus Agent
b5419cd2c0
feat(watch): SSH-first probe, drop IO metrics, Baota ring UI
...
Align live monitoring with Baota: always SSH psutil for CPU/mem/load,
remove network/disk IO rates, and show metrics as circular rings in slots.
2026-06-14 03:19:43 +08:00
Nexus Agent
5c508ed14c
fix(watch): eager probe on resume so metrics appear immediately
...
After pausing clears Redis snapshots, resuming or adding pins now triggers
an immediate probe before list_slots returns, with frontend refresh fallback.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-14 02:53:02 +08:00
Nexus Agent
ba7c790f38
feat(watch): show probe history in Beijing time and retire remote browser
...
Monitoring history charts and tables now format UTC timestamps as Asia/Shanghai.
Remove Playwright worker, global browser panel, and related API routes; open site URLs in a new tab instead. Fix chain test Redis pipeline mock.
2026-06-13 16:32:02 +08:00
Nexus Agent
adee25deb6
fix(watch): repair SSH probe script broken by embedded quote in os_release parse
...
Use chr(34) inside the bash-wrapped python -c probe so monitor slots work again after hardware detail rollout.
2026-06-13 16:10:32 +08:00
Nexus Agent
4acbf04322
feat(watch): show detailed CPU, memory, and disk specs on monitor slots
...
Expose used vs total capacity, CPU model, swap, OS uptime, and 1/5/15 load from SSH probes and agent heartbeats.
2026-06-13 14:12:09 +08:00
Nexus Agent
40cba6a567
fix(settings): detect Telegram group chat IDs via my_chat_member
...
Extend getUpdates parsing for group joins and update settings UI hints so Chat ID detection works for supergroups, not only private DMs.
2026-06-13 02:04:59 +08:00
Nexus Agent
821cf12ade
fix(terminal,alerts): quick-cmd enter on send and offline Telegram channel
...
Append CR when executing quick commands (fixes trim stripping saved \r) and
allow optional dedicated Telegram bot for server offline alerts only.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-13 01:45:55 +08:00
Nexus Agent
e833b923c8
feat(browser): 远程浏览器 Worker 桥接与顶栏固定悬浮窗
...
接入 Playwright Worker、会话 WebSocket 与全局浏览器面板(固定于 App Bar 下);
含验证码 stealth、设置项默认音与 URL 安全校验;附带 worker 部署与设计文档。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-12 06:49:20 +08:00
Nexus Agent
647ebcb673
feat(watch): 监测槽分钟时长档、指标进度条与负载显示
...
默认 30 分钟,支持 30分/1时/2时/8时/24时;槽卡展示 CPU/内存/硬盘进度条与 1 分钟负载;API 改用 ttl_minutes。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-12 04:34:52 +08:00
Nexus Agent
bdbfef7110
fix(audit): 目标列显示服务器名称而非 #id
...
审计列表对 server 类型批量解析 target_name,前端展示为「服务器 {name}」。
2026-06-12 04:16:46 +08:00
Nexus Agent
8092000880
fix(watch): psutil SSH 安装 apt 走 sudo
...
Nexus CI/CD / test (push) Waiting to run
Nexus CI/CD / e2e (push) Blocked by required conditions
Nexus CI/CD / deploy (push) Blocked by required conditions
Nexus Pre-commit Checks / quick-check (push) Waiting to run
非 root 用户 apt-get 未加 sudo 导致 Permission denied;补充 run_root 与中文错误提示。
2026-06-12 04:09:10 +08:00
Nexus Agent
75efd506f5
feat(watch): 监测槽 SSH 一键安装 psutil
...
探针报 psutil missing 时显示安装按钮;POST install-psutil 经 SSH pip/apt 安装并审计。
2026-06-12 04:04:48 +08:00
Nexus Agent
32a1885f0d
feat(watch): 监测槽开关、8h/24h、到期暂停与探针修复
...
支持随时暂停/恢复实时监测并保留槽位;TTL 到期自动暂停不占删槽;修复到期竞态导致空槽与唯一约束冲突;探针 parse_error 与中文错误;移除失败 snackbar。
2026-06-12 03:47:56 +08:00
Nexus Agent
7bb85aac41
feat(servers): 新服务器 Agent 安装/升级引导提示
...
修正仅有 API Key 误判为已装 Agent;列表与展开详情提示安装/升级并提供一键操作。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-12 03:16:12 +08:00
Nexus Agent
b46922fe92
feat(watch): 4 槽实时监测 — 5s 探针、WS、历史页与告警联动
...
宝塔式自选子机监测:Pin CRUD、全指标 SSH/Redis 探针、探针落库、
/ws/watch 推送、监测历史与进程抽屉;Agent 可选附带 net/disk IO。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-12 02:56:37 +08:00
Nexus Agent
f6e8b29640
fix(ui): 服务器/终端/推送搜索历史互不共享
...
终端独立 terminal_search 上下文(10条),与 servers_search、push_search 隔离。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-12 02:03:45 +08:00
Nexus Agent
e0133b9098
feat(push,terminal): 推送搜索历史5条与终端中间搜索
...
推送页独立 combobox 历史(MySQL push_search,上限5);终端空态搜索回中间卡片,右侧栏仅列表。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-12 01:58:33 +08:00
Nexus Agent
17abd62261
feat(servers): 新服务器接入自动 sudo 配置与路径探测
...
创建/导入/IP 添加成功后后台 onboard 任务;前端注册进度条与 toast。
2026-06-12 00:19:31 +08:00
Nexus Agent
29b053b3c0
fix(sync): 未设路径推送回退 /www/wwwroot,UI 判定不变
...
空或占位 /www/wwwroot 仍算「未设路径」;rsync 推送/预览/验证改用 resolve_push_target_path,并新增批量 detect-path 脚本。
2026-06-11 23:42:58 +08:00
Nexus Agent
84b388fae2
fix(sync): rsync 推送非 root 自动 sudo 提权
...
文件推送与文件管理对齐:非 root 默认 auto_sudo 时使用 sudo -n rsync;
新增批量 sudoers 补丁脚本以补全 rsync 白名单。
2026-06-11 23:20:45 +08:00
Nexus Agent
8356425814
feat: 全局浮动浏览器、记录持久化与角落快捷入口
...
浮动面板可最小化至右下角、左下角随时展开;标签与浏览记录写入 MySQL,切换菜单保持活动。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-11 20:10:57 +08:00
Nexus Agent
4e117c04ea
feat(files): 上传后自动 chown www:www 与文件 chmod
...
复用推送的 RSYNC_PUSH 配置,上传成功即 SSH 修正属主/权限;失败时仍保留文件并返回 warning。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-11 18:23:31 +08:00
Nexus Agent
79105dcec8
fix(files): 改权限后列表不更新及 chown 连带失败
...
ETag 纳入权限指纹避免 304 旧数据;chmod/chown 分步执行;仅变更属主/属组时才提交 chown。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-11 18:12:57 +08:00
Nexus Agent
af912662de
fix: combobox 清空 null 导致服务器列表加载失败
...
v-combobox 清空时 search 为 null 使 trim() 抛错;422 响应剥离不可序列化的 ctx 避免 500。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-11 17:52:49 +08:00
Nexus Agent
130cc840c7
feat: 服务器搜索历史持久化到 MySQL
...
按管理员将 Servers 页搜索记录存入 admin_ui_preferences,换设备登录仍可恢复;首次自动迁移 localStorage。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-11 17:46:52 +08:00
Nexus Agent
704764bd7e
fix: 订阅白名单多 worker 同步并统一上传上限 500MB
...
保存 IP 白名单时同步刷新并 Redis 广播 login_* 设置;推送/文件上传与 Nginx 模板对齐为 500MB,避免生产 50m/100m 导致大文件失败。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-11 17:39:26 +08:00
Nexus Agent
dc4593f8b5
Remove browser RDP (guacd/Guacamole) feature entirely.
...
Product decision: drop 3389 remote desktop page, API, guacd sidecar, and related tests after unresolved target-side black screen issues.
2026-06-10 23:23:09 +08:00
Nexus Agent
aeca2fd7cb
fix(rdp): guacd→WebSocket 按完整指令转发,修复黑屏
...
Nexus CI/CD / test (push) Waiting to run
Nexus CI/CD / e2e (push) Blocked by required conditions
Nexus CI/CD / deploy (push) Blocked by required conditions
Nexus Pre-commit Checks / quick-check (push) Waiting to run
TCP 块转发会截断 img/blob 指令导致 guacamole-common-js 无法渲染;connect 不再经 URL 传密码。
2026-06-10 21:37:10 +08:00
Nexus Agent
960598f504
fix(rdp): 服务端 guacd 握手替代透明 TCP 桥接
...
guacamole-common-js 不会向 guacd 发送 select/connect;改为 Nexus 用 rdp_hosts 凭据完成握手后再桥接 WebSocket,消除 protocol violation。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-10 21:33:01 +08:00
Nexus Agent
f127f07ab2
feat(rdp): 3389 页独立管理 RDP 主机
...
rdp_hosts 表与专用 API,在 3389远程页添加/连接,不再依赖子机列表。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-10 20:58:46 +08:00
Nexus Agent
dabfc128b3
feat: 浏览器 RDP、推送提示音与子机指标等多项功能
...
- 3389远程页 + guacd 侧车 WebSocket 桥(无 RDP 会话审计)
- 文件推送完成独立提示音,至少一台成功即播放
- 子机列表展开 CPU/内存/磁盘 sparkline 与指标采样落库
- 终端全量服务器列表、连接中状态;告警 Telegram 公网 IP
- SSH 密钥凭据 UI 简化;子机搜索未设路径筛选
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-10 01:37:32 +08:00
Nexus Agent
7209f53af9
feat: 子机离线 Telegram 告警与仪表盘统计/趋势增强
...
离线边沿检测推送一次 Telegram(设置开关 notify_alert_offline);对齐仪表盘与服务器页统计卡、舰队趋势交互与告警叠加。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-09 17:16:48 +08:00