b4cfe050fad1d733ff2d4a24c77cfef130715649
- replace sequential for-loop in pickUpPendingRuns with Effect.forEach concurrency:10 - extract CONCURRENCY_LIMIT constant shared by both startup and pickup paths - clear all run caches (creds, snippets, env, timeouts, activeRuns) on setup failure - call failRun on setup error to leave the db run in a consistent failed state
liquio-qa-bot
A headless QA automation service for Liquio environments. Exposes an MCP (Model Context Protocol) server that lets AI agents define, run, and monitor multi-step browser test scenarios using Playwright.
Overview
The bot manages four core concepts:
| Concept | Description |
|---|---|
| Environment | A named set of URLs for a deployment target (e.g. liquio-diia-stg) |
| Key | A JSON descriptor in keys/ that points to an EDS key file + password |
| Session | Saved browser state (cookies + localStorage) produced by a login |
| Scenario | An ordered list of steps that run in sequence against a shared browser instance |
Architecture
See docs/architecture.md.
Key descriptors
MCP tools
See docs/mcp.md.
Scenario execution
See docs/scenario.md.
Development
See docs/development.md for setup, running, testing, linting, and Docker instructions.
Languages
TypeScript
92.7%
CSS
6.6%
Dockerfile
0.3%
JavaScript
0.3%