ars9 9e79cad237 feat(session): persistent browser context pool with lifecycle management
- SessionContextService: in-memory Map of live Playwright handles, reused
  per sessionName across exec_code/open_url calls; closed on module destroy
- SessionSchedulerService: @Interval closes idle sessions and deletes old
  closed ones using SESSION_IDLE_TIMEOUT_MINUTES / SESSION_DELETE_CLOSED_DAYS
- SessionService: onApplicationBootstrap closes all open sessions on restart;
  upsert marks status=open and sets lastUsedAt; adds markOpen/markClosed/
  touchLastUsed/findExpiredOpen/findOldClosed/findById helpers
- SessionEntity: status (open|closed) and lastUsedAt columns added
- AuthService: keeps browser alive after login, registers context in pool
- BrowserService: named sessions reuse persistent context; anonymous remain ephemeral
- AppConfig: all config fields declared with typed defaults; validate wired
  into ConfigModule so mis-configuration fails fast at startup
- ConfigService<AppConfig, true> used everywhere — no more untyped get() calls
2026-04-08 20:14:05 +03:00
2026-04-07 11:36:33 +03:00
2026-04-08 19:02:53 +03:00
2026-04-08 19:02:53 +03:00

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

See docs/key-descriptors.md.


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.

S
Description
No description provided
Readme
1 MiB
Languages
TypeScript 92.7%
CSS 6.6%
Dockerfile 0.3%
JavaScript 0.3%