Pteropilot · 更新日志 · MIT

更新日志

从 v0.1.0 到 v0.2.27:43 个工具、300+ 项测试,持续迭代。

完整记录见 GitHub CHANGELOG;这里只列对使用者有影响的变更。

v0.2.33 2026-11-15

  • pteropilot --status [标识]:不开 MCP 客户端直接看服务器状态。不给标识时列出全部(并发拉取)——状态、健康度、CPU、内存;单台失败显示 ⚠ 且不盖住其余服务器;给标识时额外读一次日志推断在线玩家数(拿不到就显示 -,不编数字)。--json 输出结构化结果。退出码:全部健康才 0,否则 1——可直接当 cron 健康检查。
  • 修复 test_cooldown_expiry_notifies_again 偶发失败:冷却正好 60 分钟,而测试把状态时间设成「正好 3600 秒前」,卡在边界上,一次浮点误差或几毫秒调度延迟就能让 elapsed < 3600 翻转。改成 7200 秒,测的还是「过期会再推」这件事本身。

v0.2.32 2026-11-15

  • pteropilot-alerts --cpu / --memory :资源阈值告警。此前只看「服务器还在不在线」——一台 running 但 CPU 打满、内存快爆的服务器不会叫。CPU 用绝对值百分比;内存用使用率(memory_bytes / memory_limit),面板不限额的服务器自动跳过该项,而不是拿 0 当分母算出假百分比。等于阈值即告警(运维习惯是「到 85 就叫」)。状态正常但资源超限时告警里的状态记为 high_load——否则标题会写成「状态异常(running)」,读起来自相矛盾。默认 0 = 关闭。

v0.2.31 2026-11-15

  • CLI --in / --at:让 --broadcast / --power 等到点再执行。--in 5m / --in 300 / --in 2h / --in 1d(省略单位当秒);--at 03:00 取下一个该时刻,已过则顺延到明天。等待上限 24 小时(更长的请交给 cron / systemd,别让进程干等)。等待期间 Ctrl+C 取消,退出码 4,一个字都不会发。--in 与 --at 同时给算用法错误(不猜用户想哪个)。

v0.2.30 2026-11-15

  • CLI pteropilot --power --servers a,b:批量电源信号后退出,与 batch_power 工具共用同一份结构化逻辑。--servers 必填——电源是写操作,不替用户猜范围。stop / restart / kill 与 "*"(全部服务器)都必须 --confirm;作用于全部时连 start 也要确认,防一次手滑把全站启动。支持 --json。

v0.2.29 2026-11-15

  • broadcast_command 广播指令(第 45 个工具):给多台服务器同时发同一条控制台指令——维护前统一通知、统一刷白名单、统一改游戏规则。面板只有单台 /command 端点,这里逐台并发调用。不传 server_ids 时只发给 running 的服务器(停机的发了也收不到),传 ["*"] 才含停机的。高危指令二次确认:stop / kill / op / ban / whitelist off / difficulty peaceful 必须 confirm=True——一条 op 误发会同时作用于所有服。只读模式整体拒绝;单台失败单独标注、不阻断其余。
  • CLI pteropilot --broadcast "指令":不启动 MCP server,直接广播一次后退出——给 cron / 计划任务用(维护前定时通知不必先起客户端)。支持 --servers a,b 选服、--confirm 确认高危指令、--json 结构化输出;退出码 0 全部发出 / 1 有失败 / 2 用法错误 / 3 被拦截。

v0.2.28 2026-11-15

  • player_stats 玩家在线历史统计(第 44 个工具):每次 list_players 时顺带记录一次采样,长期积累后按天给出峰值 / 均值 / 采样数——面板本身不提供历史数据,「这个服一般几个人在线」以前只能靠记。采样写入 ~/.pteropilot/playerlog/.jsonl,玩家集合没变时不重复记录,文件超 20000 行自动裁剪只留最近的。list_players 在记录成功后追加一行提示,让用户知道有历史在积累。

v0.2.27 2026-11-12

  • pteropilot --doctor 环境自检:检查 Python 版本、面板配置、地址规范化(带 /api 会提示已剥掉)、密钥前缀角色(ptla_ 用错会指出)、面板连通(401/403/404 分别给出含义与修法)、告警渠道;输出不含密钥,可整段贴给他人排查。配套 --no-network 只查配置不联网
  • list_mounts 挂载点查看工具(第 43 个):列出服务器的额外存储挂载——名称、source → target 路径、只读/可写、是否用户可自行挂载。排查「我上传的文件怎么看不到」(挂载没配或只读)。只读。
  • 告警推送失败不再伪装成「查询失败」:webhook/邮件发送失败时单独归入 send_failed / send_errors,输出醒目警告并让进程退出码 3(此前混在查询错误里、退出码仍 0——服务器真挂了、告警又没发出去时,用户会以为有监控实际没人收到,属最危险的静默失败);一条都没发出时也不推进冷却状态,下次扫描会重试(Fixed)
  • pteropilot-alerts --reset:清空冷却/连续确认状态(调完灵敏度想立刻验证、或服务器已修好但还卡在冷却期时用);只动状态文件、不碰按服务器配置,支持 --dry-run 与 --json
  • 发布脚本(scripts/release.py、scripts/sync_release_notes.py)的 GitHub API 调用加入指数退避重试:网络抖动(RemoteDisconnected / 超时 / 连接错误)自动重试 3 次,HTTP 4xx/5xx 仍立即失败——曾因一次连接中断导致打 tag 半途失败(Changed)

v0.2.26 2026-11-11

  • pteropilot --version 在工具数明显偏少(<30)时额外提示「可能装到了旧版本(PyPI 发布可能滞后)」,避免用户以为功能缺失(Changed)
  • README 安装章节:补国内 PyPI 镜像(清华源)命令与 --version 自检方法;把国内常不可用的 git+GitHub 安装方式换成 GitHub Release 下载 .whl,并明确说明本项目不提供代理方案(Changed)
  • 面板地址自动规范化:PANEL_URL 填成 https://panel.example.com/api(面板文档常见写法)时,原来会拼出 /api/api/client → 404,看着像密钥错;现在自动剥掉 /api、/api/client、/api/application 后缀与尾斜杠,真实子路径(如 /pterodactyl)保持不变。(Fixed)

v0.2.25 2026-11-10

  • list_server_users 子用户权限查看工具(第 42 个):列出能管理该服务器的子用户——邮箱/用户名 + 被授予的权限项数与权限大类,回答「谁能动我的服」。只读。

v0.2.24 2026-11-09

  • analyze_player_activity 玩家活跃分析工具(第 41 个):分析最近控制台日志里的加入/退出事件——活跃玩家排行(进/退次数)、高峰时段、日志末尾仍在线的人。只读,回答「谁最常来」「什么时候人多」;top 1-20 默认 10,并明确标注统计窗口受日志长度限制。
  • scripts/release.py 整棵树一致性检查:本地 HEAD tree 必须等于远端 main tree,任何漏推文件都会在打 tag 前被拦下。

v0.2.23 2026-11-09

  • scripts/sync_release_notes.py:把 CHANGELOG 对应版本章节搬进 GitHub Release 描述(含安装指引与变更历史链接)——自动生成的 release notes 只有一行链接,用户看不出改了什么。
  • pteropilot --version(也支持 -V/-v):打印版本与当前工具数,不校验面板配置、不启动 server。用于确认装的是不是最新版(PyPI 可能滞后于 GitHub Release)。
  • 发布自动化 scripts/release.py:用 GitHub API 打 tag 触发 release.yml 自动构建并发布 Release(绕开被墙的 git push --tags);内置三道检查——远端 pyproject 版本必须与本地一致(防止 tag 打出旧版包)、工作区必须干净、tag 不可重复。
  • release.yml 只上传 wheel 与 sdist:原来用 dist/* 会把 uv build 生成的 .gitignore 当成附件传到 Release。(Fixed)
  • 修复 v0.2.22 Release 错版:远端 pyproject 版本曾停留在 0.2.7,导致 tag 指向的代码构建出旧版本包。(Fixed)

v0.2.22 2026-11-09

  • list_schedules 定时任务查看工具(第 40 个):列出服务器在面板里配置的计划任务——cron 表达式、是否启用、仅在线时执行、上次/下次运行时间、每任务步骤数。只读,回答「自动重启配好了吗」「这个服有哪些定时任务」。
  • pteropilot-alerts --test 通道自检:发一条测试消息验证 webhook/邮件配置是否正确(不读服务器、不写状态),失败时列出常见原因并以退出码 1 返回(便于脚本判断)。配置告警时先跑它,别等真崩服才发现没收到。
  • Windows 一键装告警计划任务:scripts/install_alerts_task.ps1——一条命令建计划任务(默认每 5 分钟),自动生成包装脚本(面板凭据写进去,后台运行不依赖环境变量;中文日志 UTF-8 正常)、日志落 ~/.pteropilot/alerts.log,支持 -Status / -Remove / -DryRun / -Exe 与邮件通道。解决 README 只有 cron 示例、Windows 服主不会配的问题。

v0.2.21 2026-11-08

  • 新增 get_server_activity 操作审计日志:查谁在什么时候重启了服务器、删了哪个文件、建了备份(面板事件流,系统/计划任务触发会标注)——第 39 个工具
  • 参数 limit 1-100(默认 20 条),只读不改任何设置

v0.2.20 2026-11-07

  • 文档口径补全(endpoint 矩阵 / 路线图),无新功能(与 v0.2.19 功能一致)

v0.2.19 2026-11-07

  • 新增 list_databases 数据库查看:面板里已分配的数据库主机/库名/用户名/来源限制(配 LuckPerms、CoreProtect 等 MySQL 插件时直接用)——第 38 个工具
  • 说明:数据库密码不在面板 API 返回范围内,工具会提示去面板网页端查看

v0.2.18 2026-11-07

  • 告警命令 pteropilot-alerts 增强:--dry-run 演练(只打印将通知谁,不发送)、--json 机器可读输出(便于 cron/监控脚本解析)
  • 面板不可达/密钥错误时不再抛一堆堆栈,改为输出可读错误原因

v0.2.17 2026-11-07

  • 新增 get_server_network 网络分配查看:服务器 IP/端口(主地址 ⭐ 标记、附加端口、备注,支持 ip_alias 域名)——第 37 个工具

v0.2.16 2026-11-06

  • 写操作批量工具 batch_power / batch_backup 支持「全部服务器」通配:作用于全部服务器时任何电源信号都强制二次确认(防误操作)

v0.2.15 2026-11-06

  • 批量读工具 batch_list_players / batch_get_console_log 支持「全部服务器」通配——查所有服的在线玩家/日志一句话搞定

v0.2.14 2026-11-05

  • batch_get_status 并发化:多台服务器状态并发拉取(保序、单台失败不阻断)

v0.2.13 2026-11-05

  • 新增 check_panel_connection 连接诊断:验证地址/密钥,401/403/404 给出可操作提示

v0.2.12 2026-11-05

  • 新增 search_server_logs 日志搜索:关键字搜索(不区分大小写、带行号、末尾 5000 行)

v0.2.11 2026-11-05

  • batch_backup_status 显示备份总大小 + 多台并发;get_server_status 网络流量人类可读

v0.2.10 2026-11-04

  • list_backups / list_files 大小人类可读(1048576 → 1.0 MB),备份显示创建日期

v0.2.9 2026-11-04

  • get_server_status 显示内存/磁盘上限;在线时长格式化为人类可读(1 天 1 小时 1 分 1 秒)

v0.2.8 2026-11-03

  • 新增 batch_list_players 批量在线玩家;get_server_status 增加在线玩家数(日志推断)

v0.2.7 2026-11-02

  • 新增 get_backup_download(备份下载链接)、get_server_startup(启动命令与变量)、batch_get_console_log(批量日志)
  • list_my_servers 支持 with_status 状态列与 status 过滤(如只看 running)
  • 批量工具并发化:广播/批量电源/批量备份,多台耗时从 N× 降到 ≈1×

v0.2.6 2026-11-02

  • 新增 broadcast_message(批量广播公告)、read_server_logs(日志排查)、player_history_stats(玩家活跃统计)、schedule_restart(公告 + 定时重启)

v0.2.5 2026-10-28

  • 真实面板实测工具 scripts/live_smoke.py(只读端到端探测,不触发写操作)
  • diagnose_crash 扩充:看门狗超时、原生崩溃信号;密钥脱敏加固

v0.2.4 2026-10-28

  • 新增 pteropilot-alerts 崩服告警命令:钉钉/企业微信 webhook + 邮件双通道、冷却去重、连续确认阈值、按服务器配置与路由
  • 新增 batch_backup_status / batch_backup 批量备份;双面板兼容(PANEL_APP_KEY + 密钥角色诊断)

v0.2.3 2026-10-26

  • 新增 diagnose_crash 崩溃诊断(内存不足 / JVM 崩溃 / 反复崩溃循环)与 batch_power 批量电源

v0.2.2 2026-10-24

  • 新增 list_players、check_server_health、batch_get_status;MCP 握手真实版本号;面板错误中文化

v0.2.1 2026-10-18

  • 新增 get_console_log 工具:读取服务器控制台最近日志,补全「发指令 → 看回馈」闭环。
  • stop 电源操作纳入二次确认(与 restart/kill 一致;start 免确认)。(Changed)
  • PANEL_READONLY 容错增强:1/true/yes/on(大小写、空格不敏感)均能开启只读模式。(Changed)
  • 修复 SECURITY.md 漏洞报告链接的相对路径 404。(Fixed)

v0.2.0 2026-09-30

  • Pelican 兼容性验证;新增 upload_file / download_file / create_folder / rename_file 四个文件工具;修复状态与分页问题

v0.1.0 2026-09-27

  • 首个版本:服务器列表/状态/电源/指令/文件/备份、只读模式、高危二次确认、中英双语 README