8dbd319bba097c7484c75f96b9fb112ef811b2a8
- failStepRun was calling closeBrowserHandle immediately, removing the handle before maybePreserveSession could read it in the finally block - delegate browser lifecycle to maybePreserveSession for both pass and fail paths so saveSession=true is honoured regardless of run outcome
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%