三个实测毛边:run 自动启动不等 healthcheck / clean 泄漏空网络 / browser 步骤的 playwright 可选依赖提示断层
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 != running 时 ensureEnvironmentReady 会自动调一次 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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