jeffkit / jeffkit/argusai

三个实测毛边:run 自动启动不等 healthcheck / clean 泄漏空网络 / browser 步骤的 playwright 可选依赖提示断层

Open
#11 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
2
Forks
0
Avg merge
2m
Merged PRs (30d)
1

Description

在 plaita-console 接入 argusai 0.14.3 做全系统 E2E(11 suite 117 用例)的实测中踩到三个毛边,均有可用 workaround,汇总如下。

1. argus-run 的环境自动启动不等 healthcheck 通过就开始跑用例

现象session.state != runningensureEnvironmentReady 会自动调一次 setup,但 setup 之后用例立刻开跑;backend 容器还在启动窗口时,首批 request 步骤以 fetch failed(16ms 内)失败。另外 setup 中任何一个 service 启动失败(如镜像缺失)时 allHealthy=false 不会 transition 到 running,下一轮 run 会触发 orphan 清理把已健康的容器整个重建,测试撞上端口空窗。

复现:多服务(redis + 需数秒启动的 backend)+ services[] 编排,setup 后立即 argus-run

workaround:runner 脚本在 setup 与 run 之间显式 curl healthcheck 轮询(我们等 18080/18081 双端口各 60s)。

建议ensureEnvironmentReady 在跑用例前等待全部已配置 healthcheck 的服务达到 healthy(或至少 startPeriod 过去)。

2. argus-clean 泄漏空的 argusai-* 网络

现象:反复 run/clean 后,docker network ls 里残留无容器挂载的 argusai-<project>-network,长期使用耗尽 Docker 地址池(recursive 仓也记录过同一现象)。

workaround:gate 脚本跑前扫描 argusai-* 网络,Containers 数为 0 的直接 docker network rm

建议argus-clean 的清理范围覆盖自己创建的网络(或 preflight 的 orphan 清理顺带回收空网络)。

3. browser 步骤的 playwright 依赖提示断层

现象:playwright 是 argusai-core 的 optional peer dependency,不随 npm i -g argusai-mcp 安装。首次跑 browser 用例报 "Playwright is required... npm install playwright";装完模块后第二次跑又报 "Executable doesn't exist ... npx playwright install"——用户要连踩两个错才能跑通。

建议:browser 步骤初始化时一次性检测「模块 + 浏览器二进制」并给出完整的一条式安装指引(npm i -g playwright && npx playwright install chromium)。


环境:argusai-mcp 0.14.3(npm 全局)+ mcp2cli 3.0.3 + Docker 27.4。相关 workaround 都已落在 plaita 的 plaita-console/scripts/e2e-{run,gate}.sh,随时可以反提 PR。

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the ensureEnvironmentReady path used by argus-run, the cleanup path used by argus-clean, and browser-step initialization. Reproduce the multi-service startup, repeated run/clean, and missing Playwright scenarios described in the issue. Done means configured healthchecks are respected, empty argusai-* networks are removed, and browser failures provide one complete module-and-browser installation instruction.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, playwright, typescript
Domain
devops, testing, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.