Commit Graph
10 Commits
Author SHA1 Message Date
RRRosmontis 58c6debd95 fix(update): 支持通过 MAA_ONLINE_UPDATE_PROXY 经代理更新
主机到 GitHub 的直连会被重置(connection reset by peer),原有 direct()
强制剥离代理导致 maa self update 每次必败。现在可用 MAA_ONLINE_UPDATE_PROXY
指定代理(如 http://127.0.0.1:8118),未设置时保持旧行为。
2026-10-18 20:46:10 +08:00
RRRosmontis 99d4d9f06f fix(daily-run): 预检每轮补点资源检查屏的 START 按钮
10/01 预检存档揭示了坏首启的真面目:游戏停在资源检查提示屏(轮换
Tips 图文)等待底部 START 按钮,没人点就无限期干等,体积 250-560KB
与登录/标题屏区间重叠。现在每轮点按都先点 (640,680) 的 START,
再按画面类别点对应位置;该坐标在其余已知画面上均无交互物。
2026-10-01 23:15:58 +08:00
RRRosmontis 05c9497bc0 feat(daily-run): 预检存档截图便于诊断坏首启画面
坏首启的画面至今只能靠体积推测;预检现在每 30 秒把采样帧存到
artifacts/preflight/(每轮运行开始时清空),坏首启次日可直接查看
游戏到底停在什么画面上,再设计针对性点按。
2026-09-26 11:58:28 +08:00
RRRosmontis b152584230 fix(daily-run): 预检增加稳定性确认,StartUp 失败立即中止本轮
2026-09-25 实战暴露两个问题:
- 预检把单帧 679KB 的过渡画面判为就绪交给 MAA,StartUp 仍识别失败
  (要求 in-game 级别画面连续两帧稳定才交接)
- StartUp 失败后其余任务必然全部失败(9/23-9/25 三天均如此),但旧逻辑
  会让 MAA 把剩余 5 个任务逐个跑完报错,白烧约 7 分钟额度
  (检测 StartUp Error 立即 SIGINT 中止本轮进入重试)
2026-09-25 11:48:31 +08:00
RRRosmontis 434869573f feat: 日常任务启动前增加画面预检
每天的首次云会话可能停在不可识别画面约 10 分钟(游戏做每日首登资源处理),MAA 在
每个任务上识别失败并烧掉当次尝试的额度(2026-09-23/09-24 连续两天实测,各损失整天
或近半天进度)。包装脚本现在在 /start 后、运行 MAA 前先观察画面:按截图体积分类
(黑屏 <20KB / 登录 200-350KB / 标题 ~480KB / 公告与主界面 >=650KB),对标题屏与
登录屏自动点按推进,出现可识别画面才交给 MAA;超时(默认 13 分钟)则放弃本轮、
释放会话并重试。分类阈值标定于真实截图样本,可调。
2026-09-24 09:45:59 +08:00
RRRosmontis c7f3f4496a fix(memlog): 按映射类型拆分 RSS,并记录 cgroup 内存构成
原分类把 [heap] 当成非匿名区域,导致会话中主 arena(brk 堆)的增长被漏报:
实测 9/21 会话 RSS 涨到 2474 MB 而"匿名区域"仅 193 MB,误判为已无增长。

- 把 [heap]、[anon...]、无名映射统一计入匿名 RSS,并单独记录 heap_rss_mb
- 新增 cg_anon_mb / cg_file_mb / cg_kernel_mb / cg_shmem_mb(memory.stat)
- 新增 top_named:按 RSS 排序的前三个文件映射,便于识别异常消费者
2026-09-21 08:12:49 +08:00
RRRosmontis 636ecbd974 feat: 增加内存观测日志
- bin/maa-online-memlog: 每分钟采集一次服务 cgroup 匿名内存、swap 占用、进程 RSS、
  以及大于 32 MB 的匿名映射数量(glibc arena 膨胀指纹),追加写入 logs/memlog.csv,
  超过 5 MB 自动滚动并保留一代;同时输出一行到 journald
- systemd/maa-online-memlog.service, maa-online-memlog.timer: 每分钟触发采集,
  Nice=10 避免影响流媒体负载
- bin/maa-online-install-systemd: 安装并启用观测定时器,安装提示补充内存日志路径
- README.md, user_config/README.md: 补充内存观测说明、字段表与查看命令
- .gitignore: 忽略运行期产生的 logs/
2026-09-20 13:07:19 +08:00
RRRosmontis 7806524279 feat: 增加每日内存回收与 malloc arena 限制
流媒体会话会在 glibc malloc arena 中留下大量不归还操作系统的冷匿名内存,实测单个
服务可累积到 2.5 GB 并占满整个 swap 文件(33 个 64/128 MB 匿名段,空闲时不增长,
随会话单调抬升)。本次从根因与兜底两侧处理:

- systemd/maa-online-server.service: 设置 MALLOC_ARENA_MAX=2,把线程 arena 数量
  从 8xCPU 压到 2,抑制 arena 膨胀
- systemd/maa-daily.service: 单元结束时经 ExecStopPost 重启 API 服务,回收当次会话残留
- systemd/maa-online-recycle.service, maa-online-recycle.timer: 新增每日 03:59(游戏
  每日刷新前)独立回收定时器,错开更新与日常任务窗口,Persistent=false 避免补跑撞车
- bin/maa-online-can-recycle: 回收守卫,检测日常任务(systemd 单元或手工运行)是否
  进行中,是则跳过回收,避免重启打断任务
- bin/maa-online-install-systemd: 安装并启用新增的回收单元
- README.md, user_config/README.md: 补充内存回收机制与定时器说明
2026-09-19 23:58:54 +08:00
RRRosmontis 0264053b08 feat: 增加 systemd 定时执行与断点续跑
- backend/server.py: 信令 WebSocket 被远端关闭或视频流停滞超过阈值时自动拆除会话,
  由 finally 释放网易云端实例,避免会话空挂、后续 /start 一直拿到 503
- bin/maa-online-daily-run: 新增日常任务包装脚本,等待 API 就绪、启动云游戏、
  停滞看门狗(连续 ScreencapFailed 或 Disconnected)、失败即释放云会话并最多重试 3 次
- bin/maa-resume-tasks.py: 新增断点续跑规划器,重试时只运行未出现 Completed 的任务,
  全部完成则直接判定成功,不再开启新会话;StartUp 永不跳过
- systemd/: 新增 server/daily/update 服务与定时器模板,每天 04:00 起随机 0-2 小时执行
- bin/maa-online-install-systemd: 渲染 __ROOT__ 并安装、启用上述单元
- README.md, user_config/README.md: 补充自动定时执行、断点续跑与已知限制说明
- .gitignore: 忽略生成的 config/tasks/daily-resume.toml
2026-09-19 16:45:48 +08:00
RRRosmontis de064272ec feat: publish sanitized Linux cloud-game MAA adapter 2026-09-16 11:11:35 +08:00