Repository navigation
Releases: jaivial/qaspec
Releases · jaivial/qaspec
Release list
qaspec 0.1.0
First release.
Added
qaspec run,check,init,state list|clearCLI (single Rust binary).*.qa.tsspec format: TypeScript syntax parsed (never executed) into suites and ordered steps,
withgoal,expect(...)(LLM judge), deterministicexpect.console,expect.errors,
expect.network,expect.url,expect.state,expect.visible,expect.storage.local, and
capture/capture.state/capture.url. Errors reportfile:line:col.- Ordered steps that share browser state, with
start,onFail(stop/continue/abort) andneeds. - Per-step signal windows: console errors, uncaught page errors and network requests are checked
only for what happened during the step. - One agent-browser session (one Chromium) per run, with one tab per project;
--keep-openreuses it
across runs. qaspec.toml: projects, per-environmentbase_url,health,depends_on,locale, identities with
secrets (file/env/value),loginspec or agent sign-in,valid_if, params with env overrides,
--set,QASPEC_ENV,QASPEC_PARAM_*.- Saved sign-in state per identity in
.qaspec/state/<env>/(mode 600, filtered by host), reused
untilvalid_iffails. - Agent loop over any OpenAI-compatible endpoint with tool calls;
fill_secrettypes secrets through
agent-browser's stdin batch mode and redacts them from logs and reports. - Verdicts
passed/failed/blocked/skippedwith exit codes 0/1/2/3, a JSON report
(report-1) and JUnit XML. - Several identities per project in one run: the planner groups suites by identity, and a switch saves
the current state, clears cookies, restores the other projects' identities and loads the new one. - A suite can move between projects step by step; each project keeps its own tab, so returning to a
project continues where its tab was. - Login suites are reported as
setupin the JSON report and are excluded from step totals. - Example
examples/shop(two dependent projects) and a runnable fixture app intests/fixtures/app. - Planning analysis and roadmap in
plan/.
Fixed during validation
- Large agent-browser outputs (hundreds of KB of network requests on real apps) no longer deadlock the
pipe: stdout and stderr are drained in threads. openon apps whoseloadevent never settles (agent-browser times out after about 25s) counts as
arrived when the tab is already on the target host.expect.visiblereads the page's visible text.snapshot -cdrops static text in agent-browser 0.27.- The judge gets the visible text plus a larger snapshot, so long chat answers are not truncated away.
- Older tool results in the agent transcript are compacted, so token use does not grow with every action.
Known limitations
- No replay cache yet: every
goalcalls the model. - Captures are shared across files in run order, but
needsbetween files is not implemented. - agent-browser 0.27
errors --clearis a no-op and logs are shared by tabs; qaspec works around it
with offsets, so the per-step windows assume one active tab at a time.
Install
npm i -g agent-browser && agent-browser install
cargo install --git https://github.com/jaivial/qaspec --tag v0.1.0Or download a prebuilt binary below.