Nexus Agent
c8b0663508
feat: 批量IP添加、脚本库历史、推送权限记录与脚本SSH执行修复
...
Nexus CI/CD / test (push) Waiting to run
Nexus CI/CD / deploy (push) Blocked by required conditions
Nexus Pre-commit Checks / quick-check (push) Waiting to run
批量添加替代CSV并支持去重;脚本库页内嵌执行历史;推送历史记录 rsync 权限策略;
脚本执行不再依赖 Agent 在线;服务器同步日志与相关单测补齐。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-08 03:15:40 +08:00
Nexus Agent
dfb0ea2d8f
fix(frontend): 脚本库与推送调度对齐设计文档
...
修复 ScriptsPage 执行契约(script_id/command、历史过滤、长任务/凭据)及 SchedulesPage 缺失能力(target_path、next_run、push/script、cron/once、sync_mode);后端补迁移与 schedule_runner 传参。
2026-06-08 02:39:18 +08:00
Nexus Agent
f12a0b6a36
fix(sync): rsync 推送后设置远程属主 www 与权限 755
...
推送默认 --chown=www:www --chmod=D755,F755,避免文件落盘为 root。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-08 02:23:43 +08:00
Nexus Agent
5ed3c28491
fix(sync): 推送异常时落库 failed,修复订正时区与卡住阈值
...
rsync 抛错时 sync_log 不再永久 running;reconcile 兼容 naive UTC。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-08 02:14:33 +08:00
Nexus Agent
2b016f91af
fix(push): 普通文件上传不限制后缀
...
upload-files 接受任意后缀含 .zip;拖拽/多选统一原样暂存,解压改走「ZIP 解压上传」按钮。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-08 01:19:20 +08:00
Nexus Agent
217c5d9935
feat(push): 源路径验证、普通文件上传与暂存文件管理
...
补齐 Round4 H5/H6:验证 Nexus 主机源路径、失败批量重试;新增 upload-files 与普通文件多选上传;上传后可浏览/预览/重命名/删除暂存目录内容。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-08 01:14:07 +08:00
Nexus Agent
e5a3f2524e
fix(auth): change_password 改密路径 audit_repo 定义顺序
...
部署前补齐门控审计与 Layer3 演练终验记录,消除 ruff F821。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-07 23:11:28 +08:00
Nexus Agent
9337f37da8
fix(files,deploy): 文件上传字段名与 Layer3 巡检脚本
...
后端同时接受 file/files 并支持多文件 SFTP 上传;修复 health_monitor.sh 引号语法使 Layer 3 cron 可运行。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-07 23:00:01 +08:00
Nexus Agent
7ea94a60ab
fix(auth,servers): 修复 refresh 自动登出与服务器状态未知
...
API 返回 status 字段供前端显示在线状态;token_version 为 NULL 时 refresh cookie 含 :None 导致续期 401。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-07 22:53:29 +08:00
Nexus Agent
05006cb5df
feat(auth): refresh token 先 Redis 后 MySQL 双写
...
登录 30 天会话 hash 持久化到 admin_refresh_tokens;启动从 MySQL 回填 Redis,
Redis 重启后会话仍可 refresh。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-07 21:56:56 +08:00
Nexus Agent
69087988b1
fix(auth): 反代后登录白名单读取真实客户端 IP
...
Docker/1Panel 反代时 request.client.host 为 172.18.0.1;可信内网跳读取 X-Real-IP/X-Forwarded-For。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-07 21:50:39 +08:00
Nexus Agent
a14fbb3df3
fix(ssh): 快速添加跳过主机密钥校验并中文化错误
...
凭据轮询在 SSH_STRICT 默认 true 时因 HostKeyNotVerifiable 在认证前失败;
探测始终 known_hosts=None,默认 strict 改为 false,错误信息统一中文。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-07 21:31:38 +08:00
Nexus Agent
ea2507dbc0
feat(telegram): 全部通知改为中文详细说明
...
统一告警/恢复/系统/Layer3/测试消息格式,含来源、影响与建议操作。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-07 21:01:47 +08:00
Nexus Agent
f9934bd4f1
feat(ops-patrol): Layer 3 巡检与 Telegram 配置打通
...
保存 Telegram 时同步至 .env,health_monitor 支持 MySQL 回退,
设置页展示巡检状态,部署时自动安装 cron。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-07 20:17:24 +08:00
Nexus Agent
540a7fce05
fix(settings): Telegram 检测/测试闭环与 8 项告警开关恢复
...
检测与测试前自动持久化 Token/Chat ID;getUpdates 清除 Webhook 并返回具体 API 错误;恢复 NOTIFY 分项开关与免密 reveal。
2026-06-07 19:45:07 +08:00
Nexus Agent
72d82d737b
fix(security): BL-07 WS 403 澄清与 code-review 跟进加固
...
外网无 token WebSocket 的 HTTP 403 为应用层拒绝而非反代故障;边端 agent
在中心 401 时停止心跳重试;install 锁定路由级 404 且归档失败 fail-closed。
同步安全规范与 BL-06 一致,门控 7/7 PASS。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-07 12:12:49 +08:00
Nexus Agent
eab35a35be
fix(security): BL-06 强制 Agent per-server key 并合并心跳单次查库
...
移除 Agent 认证与安装链路的 global API_KEY 回退,收口 risk-acceptance 接受项 2;巡检补修心跳重复 get_server 并加 assert_called_once 回归测试。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-07 11:17:41 +08:00
Nexus Agent
e5e2582743
fix(security): 外网攻击面加固 BL-01~05
...
收紧 PUBLIC 路径误匹配、强制 health/detail 与壁纸 sync 鉴权、默认关闭 OpenAPI;
安装锁定后 /api/install/* 统一 404;附探测脚本、测试与审计文档。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-07 01:45:10 +08:00
Nexus Agent
722917bfc9
fix(api): API 全量巡检 B1–B6 修复 server_ids 上限与 pending 审计
...
限制健康检查/推送/脚本执行的 server_ids 规模,补齐 pending 重试失败与删除审计,并附分批巡检报告。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 23:57:46 +08:00
Nexus Agent
e5d482264d
fix(install): 向导守护 UI 与升级后 cron 交互提示
...
Docker 完成页展示 Layer 3 cron 步骤与 host_deploy_root;TTY 下 nx update 可一键安装巡检/备份 crontab。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 23:20:23 +08:00
Nexus Agent
c9e08799f9
fix(install): 守护配置对齐宿主机 cron 与验收检查
...
Nexus CI/CD / test (push) Waiting to run
Nexus CI/CD / deploy (push) Blocked by required conditions
Nexus Pre-commit Checks / quick-check (push) Waiting to run
Docker 向导提示 nx cron/宿主机路径;裸机 cron 含 db_backup;验收脚本检查 cron 与 MySQL 备份能力。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 23:11:02 +08:00
Nexus Deploy
61b8d7d419
fix(deploy): health_monitor Docker 适配与巡检第三轮修补
...
Docker 生产用 docker restart;读 .env.prod 端口与容器 Telegram;已归档跳过全量热同步。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 22:25:27 +08:00
Nexus Deploy
58bdf820dc
fix(install): 安装锁定后将 install.html 归档为 .bak
...
防止已安装环境继续提供安装向导静态页;entrypoint 与升级脚本避免容器重建后恢复。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 21:30:15 +08:00
Nexus Deploy
107b089b16
fix(1panel): 安装锁持久化与升级后 1panel-network 校验
...
防止 nx update 重建容器后丢失安装锁、未接入 1panel-network 导致 MySQL/Redis 不可达。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 20:52:13 +08:00
Nexus Deploy
4ba45abf38
feat(servers): 凭据轮询登录与连接失败列表
...
- 密码/SSH密钥预设增加用户名;快速添加(IP)轮询全部预设尝试 SSH 登录
- 成功入 servers 列表;失败写入 pending_servers 并支持重试/删除
- 新增 credential_poller、try_ssh_login 与 add-by-ip/pending API
2026-06-06 20:08:48 +08:00
Nexus Deploy
5a56e5a8cb
fix(1panel): 安装向导脱敏、配置一致性与 nx update 门控回滚
...
- /state 白名单脱敏;init-db db_port 修复;connection-check 后清空 redis_pass
- install.html sessionStorage token 与无 token 友好提示
- nx update: 镜像 import 门控、健康失败自动回滚、PENDING=0 回写、卷双写
- Redis 容器改名密码迁移;备份失败默认 WARN;update.sh 管道 ROOT 回退
2026-06-06 17:40:30 +08:00
Nexus Deploy
850038a3ec
fix(install): 安装向导 Redis 密码不被 nx update/Compose 覆盖
...
Compose 不再注入 NEXUS_REDIS_URL;nx update 保留卷内带密码 URL;步骤 4 可从 install state 修复无密码 URL。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 11:34:26 +08:00
Nexus Deploy
49f88a2cd8
fix(install): Docker .env 持久化与 entrypoint 覆盖 Compose 占位符
...
向导 init-db 后立即同步 nexus-state 卷;entrypoint 跳过不完整 env 并在启动前 source /app/.env,避免缺 DATABASE_URL 与无密码 REDIS_URL 导致容器崩溃。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 11:08:22 +08:00
Nexus Deploy
b11360015d
fix(install): 1Panel Redis 无账号与步骤 4 URL 自愈
...
Nexus CI/CD / test (push) Waiting to run
Nexus CI/CD / deploy (push) Blocked by required conditions
Nexus Pre-commit Checks / quick-check (push) Waiting to run
确立 Redis 仅密码认证(:pass@/default),隐藏误导性用户名字段;
connection-check 自动修正错误 NEXUS_REDIS_URL,并更新运维文档与验收脚本。
2026-06-06 07:51:52 +08:00
Nexus Deploy
3b2856f388
fix(install): auto-resolve 1Panel Redis auth (:pass@ / default)
...
Stop prefilling root; probe multiple Redis URL formats on credential
check and persist the URL that works for init-db.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 07:15:57 +08:00
Nexus Deploy
807f4c2448
fix(install): correct Redis URL auth for 1Panel root user
...
Password must use redis://:pass@ or redis://root:pass@ host; wizard adds
redis_user field defaulting to root on 1Panel Docker installs.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 06:59:45 +08:00
Nexus Deploy
da061d35db
feat(install): require MySQL/Redis credential check at wizard step 3
...
Add test-credentials API and UI gate before init-db writes .env.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 06:47:22 +08:00
Nexus Deploy
d0544c9bd2
fix(1panel): grant nexus@% for Docker MySQL 1045 on install
...
Add fix-1panel-mysql-grant.sh and clearer install wizard errors when
1Panel MySQL only allows nexus@localhost.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 06:19:19 +08:00
Nexus Deploy
b25d0798f6
fix(1panel): sync MySQL/Redis container hosts on nx update
...
Upgrade was skipping 1panel-network detection; wizard now overrides stale host.docker.internal from volume/API defaults.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 05:47:43 +08:00
Nexus Deploy
6b1d23c7d7
fix(1panel): sync Redis URL to container name on 1panel-network
...
Update NEXUS_REDIS_URL when detecting 1Panel-redis-*; add Redis TCP precheck and connection errors matching MySQL.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 05:39:52 +08:00
Nexus Deploy
6951b8049f
fix(1panel): join 1panel-network and connect MySQL/Redis by container name
...
Per 1Panel App Store architecture, bridge apps must use Docker DNS on 1panel-network instead of host.docker.internal.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 05:35:04 +08:00
Nexus Deploy
da0424a268
fix(install): MySQL TCP probe and clearer host.docker.internal errors
...
Step 2 now detects whether host MySQL is listening; init-db fails fast with 1Panel setup guidance on error 2003.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 05:22:16 +08:00
Nexus Deploy
569263dddb
fix(install): remove redundant Redis/MySQL host hints in wizard step 3
...
Docker defaults already prefill host.docker.internal; drop duplicate 1Panel install reminders from the form.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 05:08:55 +08:00
Nexus Deploy
93400b7793
fix(install): split Redis install check (step 2) from connection test (step 4)
...
Step 2 only TCP-probes host Redis without blocking the wizard; step 4 runs /connection-check on MySQL and Redis from .env before creating the admin account.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 04:32:47 +08:00
Nexus Deploy
f37ebf8621
feat(docker): remove bundled MySQL from production Compose stack
...
Production installs now run only the Nexus container; MySQL and Redis are self-hosted on the machine or 1Panel, with install wizard defaults pointing at host.docker.internal.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 03:27:57 +08:00
Nexus Deploy
e42dc77127
feat(deploy): add redis compose uninstall; require Redis in install wizard
...
Step 2 blocks until Redis connects; uninstall-redis-compose.sh removes legacy
nexus-prod-redis container without touching host/1Panel Redis.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 02:51:52 +08:00
Nexus Deploy
6276ea08b7
feat(docker): remove bundled Redis; use external host install
...
Compose stack is MySQL+Nexus only; wizard Redis check is non-blocking
and defaults to host.docker.internal for self-managed Redis.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 02:48:00 +08:00
Nexus Deploy
5e7c5beb43
fix(install): probe redis via docker service host in env-check
...
Install wizard no longer hardcodes 127.0.0.1:6379; Docker installs get
mysql/redis prefills and a passing Redis check inside the nexus container.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-06 02:31:11 +08:00
Nexus Deploy
83ce11f55c
feat(install): per-host auto-generated secrets for Docker installs
...
Each fresh 1Panel/Docker install generates unique MYSQL and NEXUS keys
via scripts/generate_nexus_secrets.py; install wizard reuses compose env.
2026-06-06 00:25:57 +08:00
Nexus Deploy
b866e944ab
fix: Code Review P0/P1 batches 1-3 and single-operator risk acceptance
...
Apply sync/install/auth/schedule/retry/agent/settings fixes from full
code review; document accepted WS and Agent legacy risks for solo ops.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-04 15:57:49 +08:00
Nexus Deploy
a2ae74d582
release: BUG fixes batch 1-6, full bug scan docs, Ubuntu/Linux dev
...
- Backend: auth refresh reuse, schedule/retry/sync/agent/files fixes
- Frontend: push WS, files ETag browse, vite build assets
- Docs: audit/changelog, production deploy gate, bug scan registry B7-77
- Deploy: deploy-production.sh, prune assets, gate logs
2026-06-04 14:01:14 +08:00
Your Name
4b5602a719
feat(files): fix editor freeze, EOL gates, server form and session UX
...
- FilesPage storeToRefs + remotePath coercion; Monaco preload; list action buttons
- text_io for UTF-8/LF; install/sync EOL; check_shell_eol + check_text_eol gates
- ServerFormDialog, hash login redirect, AppAuth keep-session; design docs and audits
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-03 00:42:55 +08:00
Your Name
f078d0e03b
feat(push): localize sync/rsync error messages to Chinese in history and progress
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-02 15:18:01 +08:00
Your Name
524dabcf7f
refactor(editor): P0 — per-tab model, EOL preservation, conflict detection (409)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-02 14:46:49 +08:00
Your Name
78798e3630
feat(push): refactor B0-B6, /ws/sync channel, staging cleanup
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-02 08:14:09 +08:00