WelcomeRelease notes
Release notes
Every version of Testver, newest first. Each release lists what’s new, what’s improved, what’s fixed, security changes, and upgrade notes — the changes you may need to act on after updating.
To update, run npm install -g @testver/testver@latest, then restart testver serve (see Install Testver). Check your version with testver --version.
1.2.5 — November 3, 2026
Section titled “1.2.5 — November 3, 2026”This release makes AI Assistant mobile sessions more dependable: the assistant knows when a session is already running, a crashed app is reopened in the same session, and the session bar stays connected. Device pickers now list only devices that are on, and iOS simulators can be started and closed from Testver.
- iOS simulators: Start and Close in Settings → Connectors → Local Devices (on a Mac), like Android emulators. A running simulator shows Ready. See iOS simulators.
Improved
Section titled “Improved”- Device pickers list only devices that are on — running emulators and simulators, and connected phones — in the AI Assistant, AI Record, Runner, Suites, Cycles and Schedules. Start a stopped one in Local Devices first; when nothing is on, the picker tells you how.
- The AI Assistant knows when a mobile session is running. It starts by reading the current screen instead of launching the app again. When no device or app is picked, it asks you to pick one.
- App crashes during an AI Assistant session: the app is reopened in the same session, in seconds rather than minutes. On Android, a crashed app is brought back to the front.
- The mobile session bar showed Start session after the assistant recovered from an app crash or started a session itself. It now follows the session and stays connected while the app is reopened.
- The real-device Setup guide link for iOS in Local Devices was a 404.
Upgrade notes
Section titled “Upgrade notes”- MCP Servers are hidden unless
TESTVER_MCP_ENABLED=true. Up to 1.2.4 they showed whenever the variable wasn’t set. If you use MCP servers, addTESTVER_MCP_ENABLED=trueto the environmenttestver servestarts with; your saved MCP servers are kept. - Stopped emulators and simulators no longer appear in device pickers — start them in Local Devices. Saved runs, suites and schedules that name one still start it when they run.
1.2.4 — November 3, 2026
Section titled “1.2.4 — November 3, 2026”This release reworks cloud execution on BrowserStack, LambdaTest and Sauce Labs for web and mobile, keeps the server’s output in day log files, and adds Android emulator control to Local Devices. It also brings a large round of security and reliability fixes: roles are enforced on every action, Testver’s own files are never served, HTML reports open in a sandbox, and the server keeps running when a request fails.
- Server log files —
testver servekeeps its output in day log files,.testver/logs/testver-<date>.log. The last 30 days are kept and the folder stays out of Git. The terminal shows only the start-up banner, which has a new Logs row. pm2 and systemd still get the output; setTESTVER_LOG_CONSOLE=1to keep it in the terminal too. See Install Testver. - Local Devices (Settings → Connectors):
- Android emulators are listed and can be started and closed from Testver.
- Launch mode (Keep data / Fresh) applies to every run.
- A missing Appium driver shows the command that installs it.
- Devices that can’t be used are greyed out, with the reason.
- iOS signing fields are available for real devices.
- iOS simulator apps can be uploaded as a zipped
.app, and.aabfiles work from the session bar. - Video tutorials — the About page has a Video tutorials button next to Documentation, and links to Testver on YouTube, LinkedIn and X. See Video tutorials.
Improved
Section titled “Improved”- Cloud providers (BrowserStack, LambdaTest, Sauce Labs; web and mobile):
- Pass / fail on the vendor dashboards matches the run’s result.
- CI suites run on their saved target.
- Stop ends only this run’s vendor sessions.
- Runs that share a vendor config file take turns instead of overwriting each other.
- Sauce Labs Playwright, Cypress and Python runs keep your command’s options.
- Build-name placeholders such as
testver-{date}work, and Sauce Labs us-east-4 is supported. - Mobile cloud runs use the picked device, OS and app for Java, C# and Ruby, keep sessions alive within the vendor’s idle limits, and close them when Testver stops.
- Reading the page or screen, taking screenshots and looking up tests no longer ask for permission in Manual mode.
- The live browser view’s tab shows the page’s current title.
- Auto-Heal re-runs a Playwright test by its line, also with the project’s own fixtures.
- The server keeps running when a request fails. It answers with an error instead of stopping, and a malformed request gets a clear 400 answer.
- Saved data survives a crash. Run history, settings, suites, reports, chat history and other saved data are written safely. A file that can’t be read is kept as
<file>.unreadable-<time>instead of being overwritten. - Self-closing JUnit failures (
<failure .../>,<error .../>, for example from Robot’s--xunit) now count as failed, not passed. - The AI’s file edits write text containing
$&,$$or$'exactly as given. - Stopping a Testver Grid run releases its machines and the local tunnel.
- After a popup or new tab, a live browser view only follows its own tab.
- AI Assistant mobile tools follow the tab’s current device session.
- AI Record no longer adds a “Click the … dropdown” step around a native select.
- API mode: mock sequences work, and extra tool arguments are ignored.
- A CI status-push token that can’t be read on this machine is now reported — when you save the mapping, and as PR status not posted on the run — instead of the status push stopping silently.
- Error messages name the right Settings places.
Security
Section titled “Security”- Roles are enforced on every action. A signed-in person’s role always comes from the users list, so a role change or a disabled account takes effect on the next action. Actions that change something need the Tester role; Viewers keep their own account, connections and read-only views.
- Testver’s own files are never served. The
.testverfolder (sign-in key, users, settings, logs, saved secrets) can’t be opened from the Explorer, Output, run artifacts, Test Data or env files, and the Git page lists.testverchanges without their contents. The AI’s file tools never read the secret files. - HTML previews run in a sandbox that can’t read your session — in the Explorer, Output, and output files opened in a new tab. Reports still work: a Playwright HTML report renders and navigates, but doesn’t remember its own settings.
- Opening an HTML file from Output in its own tab uses an address that opens only that file, for 12 hours, and never carries your session.
- Saved secrets are encrypted with the project’s own key file (
.testver/secret-store.key, kept out of Git): cloud provider access keys, CI status-push tokens and saved explore sign-ins. They move with the project and don’t depend on the home folder. Access keys are masked in run output, reports, the AI and the Settings preview. Acloud-config.jsonthat your team commits to Git keeps a shareable encoded form, so teammates can read it — keep such a repository private. - AI file tools stay inside the project, including search and replace patterns.
- “Always allow” is no longer offered for actions that always ask: sending email, deleting a file, scheduling a report and manual sign-in.
- Workflow AI steps can’t send email or delete files, since nobody is there to approve them. A
tool:step that names its tools uses only those, plus tools that only read. - Defect steps are sanitised, and Markdown links can’t use
javascript:ordata:. - Password reset links are never built from the request asking for them.
- The Testver Grid connection header is masked in the cloud env preview, and the test-plan runner log masks env values.
- Dependencies updated: body-parser, multer and fast-uri.
Upgrade notes
Section titled “Upgrade notes”- Viewers can no longer change anything — test cases, defects, plans, cycles, workflows, saved Runner commands, cycle hooks and mobile recordings included. Give anyone who edits the Tester role.
- After updating from 1.2.3, enter CI status-push tokens again (open the mapping, type the token, save) and sign in again for saved explore sessions. Cloud provider keys and MCP settings keep working.
- Moving a project to another machine: copy
.testver/secret-store.keywith it, or enter the cloud provider keys and CI tokens again. - A turned-off, deleted or keyless cloud provider now refuses the run instead of running it on your machine. A run that can’t be confirmed on the vendor says “not verified”.
- Runs in one project that write the same report files take turns. A run started while another is writing those files waits (“Waiting for another run in this project to finish”); Stop cancels a waiting run.
- The AI Assistant never runs the whole suite, even when asked — it points you to Test Explorer → Suites.
- Reports opened from Output in their own tab: open them again from Output after 12 hours.
- Test results: reports with self-closing
<failure/>tags now show those tests as failed, so verdicts can differ from earlier runs. - On a team server, set
TESTVER_PUBLIC_URLso links in emails always use the right address; without it, Testver uses the address an admin last opened it at. - The
serveterminal goes quiet after the banner — see Server log files above. - Simulator zips can’t be used on cloud devices.
1.2.3 — October 20, 2026
Section titled “1.2.3 — October 20, 2026”This release adds full run support for WebdriverIO, Robot Framework, Playwright, Selenium (Java, Kotlin, Python and C#), Gherkin runners, Cypress and Appium, with correct results, single-test runs and live progress for each. It also adds a Git page that warns you about teammates’ new commits before you pull, an AI Assistant that keeps going when the connection drops, and a round of security hardening.
-
Re-run Failed — the Run Complete card’s Re-run Failed button now runs only the failed tests again, on the same target. Their commands are combined the same way Test Explorer’s Run selected combines them, and the result goes into the Run Command field so you can read it and run it again. If a failed test isn’t listed in Test Explorer, it is left out and a message says how many.
-
WebdriverIO — a direct
wdiorun uses a temporary config placed next to yours. It adds Testver’s results reporter and leaves your config and reporters untouched. You get one row per browser, retried attempts, failedbefore/afterhooks, and Cucumber scenarios with their steps. Single tests run from Test Explorer for Mocha, Jasmine and Cucumber. Configs are found in any folder or sub-package. Thesuitesin your configs show up as Suite: name suggestions in the Runner. Cloud runs need nobrowserstack.yml. Appium is detected only when the project really uses it. -
Robot Framework — Robot is now detected as Robot, not Selenium. Suites are found in any folder. Results are read from wherever your command writes
output.xml(-d,-o, or the run folder). With--output NONE, results come from the console output. Results include keywords as steps, tags and captured screenshots. Live progress also counts tests that write to the console.pabotandpython -m robotwork, and--testnames with special characters run correctly. SeleniumLibrary suites run on LambdaTest, Sauce Labs, BrowserStack and Testver Grid without changes to your suites. AppiumLibrary suites run on local and cloud devices. -
Playwright — Playwright Test runs use a temporary config next to yours. It adds Testver’s reporter beside your own reporters, so your HTML report keeps working and never pops open.
npm test/npm runscripts that are a singleplaywright testwork the same way. Results show the real file and describe path, one row per project, flaky tests (passed on a retry),test.fail()andtest.stepnames. Test Explorer runs one test byfile:line. Titles with quotes, titles built from variables and same-named tests all run correctly. Projects in sub-folders also work. -
Selenium (Java, Python, C#) — Results are read from every Maven or Gradle module, and only from reports written by this run. That includes Surefire, Failsafe, TestNG and Cucumber-JVM. Retried tests show their retries. Tests skipped because a setup method failed say so. pytest, unittest and
dotnet test(NUnit, xUnit, MSTest) each get their own results file per run, so a solution with several test projects reports all of them. Running one test from Test Explorer selects exactly that test:- Maven
-Dtest, with-plin multi-module builds - Gradle
--tests - pytest node ids
- NUnit
NUnit.Where - xUnit and MSTest
FullyQualifiedName
TestNG
@Parametersare passed fromtestng.xml. Live progress covers Maven, Gradle,dotnet test, pytest and unittest. - Maven
-
Kotlin — Kotlin tests now appear in Test Explorer and run. This covers JUnit 4/5 and TestNG (including backtick names and nested classes) and every Kotest spec style. Single tests run through Maven or Gradle. Kotest results get the right test names.
-
Gherkin features run with the right tool — a
.featurefile now runs with whichever tool your project uses: behave, pytest-bdd, Reqnroll / SpecFlow, Cucumber-JVM, Cucumber (Ruby) or cucumber-js. Previously every feature ran with cucumber-js. This applies to Test Explorer, full feature runs, Run selected and the AI Assistant. Results land on the feature’s scenarios with each step’s status, and Scenario Outline rows appear inside their scenario. -
Cypress — runs use a temporary config next to yours that records Cypress’s own results for each spec. Your reporters (for example junit or mochawesome), plugins and event handlers keep working. Results show:
- each test’s real spec file and full describe path
- retried attempts
- each test’s own screenshots and the spec video
- tests skipped because a
before eachhook failed - specs that fail to load, as an error row
Live progress works even with quiet reporters such as junit. With
@cypress/grep, a single test runs alone. ES-module, TypeScript and sub-folder projects are supported, and so is BrowserStack, LambdaTest and Sauce Labs Cypress execution. -
Appium — mobile tests in Java, Kotlin, Python, C#, Ruby, Robot and WebdriverIO now run with their own runner. Before, some got
npm test. Local Devices runs target the picked device by its serial. Stop also ends the session on the device. Test Explorer offers the device picker for Java, Python, C# and Ruby Appium tests. A web test in the same repository still runs as a web test. On cloud device grids:- uploaded apps are reused for 25 days
- an app the vendor has deleted is uploaded again on the next run
- runs with no reported session are looked up in the vendor’s app-testing builds
-
New commits on the remote (Git) — Testver checks your branch’s remote in the background (every 15 minutes by default). It tells you when teammates pushed commits you don’t have, and predicts whether pulling will clash with your work. Depending on what it finds, the banner offers one of:
- Pull now
- Stash, pull & re-apply, when the commits touch files you are editing
- Pull & resolve, naming the files that will conflict
- Save my commits on a branch & match, when the remote was force-pushed (nothing is deleted)
- options to switch, re-publish or delete your local branch, when the remote branch was deleted
The same information shows in:
- the header (branch chip and “↓N new” chip)
- a sidebar badge
- Project Explorer file badges
- a Pull, then run / Run anyway question before test runs
- a notice in the AI Assistant when a file you’re discussing is newer on the remote
Admins can also send new-commit notices by email and Slack. All of this is configured in Settings → General → Remote updates.
-
Git guidance — a Next step banner always names the one thing to do now, usually with a button that does it. The Guide button explains every Git action, and hovering a button says what it does.
-
Clear conflict sides — the conflict resolver names each side for what it really is and marks your work. In a rebase, or when a stash is put back, your own changes are the “Theirs” side. A stash that comes back with conflicts is kept until you finish. Back out returns the files to the last commit and keeps the stash. When resolving leaves a rebase, cherry-pick or revert step with nothing to commit, a Skip this commit button appears.
-
Testver’s own
.testverfolder kept out of commits — the Git page hides changes to the project’s.testverfolder and never stages, discards or commits them by default. This stops your local settings and results from overwriting your team’s. You can switch on Include .testver changes for the current browser tab, after confirming a warning. -
AI Assistant keeps going when the connection drops:
- The page reconnects by itself and catches up on the reply, tool steps and permission cards sent while it was offline.
- Dropped connections to the AI provider are retried for up to 2 minutes, keeping the part of the reply that already arrived.
- If the AI stops after announcing a step, it is reminded once to carry on.
- When a task can’t carry on, a Continue button picks it up from what it already did.
- A “Reconnecting to Testver…” strip under the header shows when the page loses the server.
-
Seat paused — if your team renews with fewer seats than members and you aren’t given a seat, the Testver card shows Seat paused instead of “credits used up”. This appears in Settings → LLM, the credits ring and Testver → Connections. AI requests stay off until the team owner gives you a seat back.
Improved
Section titled “Improved”-
Test history per file — same-named tests in different files now keep separate histories in Test Explorer and Results.
-
Test Explorer scanning — the scanner now picks up more ways of writing tests:
- JavaScript/TypeScript: tests and describes written on one line, chained modifiers, fixture aliases, Playwright
testMatchfiles, and WebdriverIO and Cypresscontext/specifyforms - Java: more
@Testforms, nested and inherited tests - C#: attribute lists and nested classes
- Python:
Test*/*Testsclasses, unittest andpytestmark - Robot: all section formats, tags and skips
- Gherkin: Rule,
Example:and doc strings - Ruby: rewritten
- JavaScript/TypeScript: tests and describes written on one line, chained modifiers, fixture aliases, Playwright
-
Project detection — more project layouts are recognised: multi-module Maven and Gradle builds,
.slnxsolutions, nested projects, configs in sub-folders, and Python dependencies inrequirements-dev.txtorsetup.py. Folders that merely hold several separate projects are no longer treated as one project. -
AI Assistant runs more frameworks — when the AI Assistant runs tests, it can now run WebdriverIO, Robot, Kotlin, Java, C#, Ruby, behave and pytest-bdd tests, and it picks Jest/Vitest or Playwright per file.
-
Failure Analysis and Auto-Heal — failures are sorted into categories more accurately:
- stale or not-interactable elements count as element interaction, not a broken locator
- Cypress app errors count as bugs
- Appium device and session problems are recognised as such
- TestNG
expected … but found …is an assertion
Locators are read from more forms: Java
@FindBy(how = …), C#[FindsBy],By.classNameandBy.tagName. Long XPaths are kept whole. Auto-Heal also captures Selenium sessions run on Testver Grid. -
Cloud vendors — Local tunnel for BrowserStack Local, Sauce Connect and LambdaTest Tunnel can be switched on per provider in Connectors. Every session then requests the tunnel, and the Output panel reminds you to start it. Your project’s own
browserstack.yml,browserstack.jsonorlambdatest-config.jsonis kept and put back after a run. Run-time vendor files that contain your access key are removed when the run ends. On Sauce Labs, Playwright filters (files,-g,--project, single tests) now carry over. -
Testver Grid — Selenium and WebdriverIO runs get a Firefox machine when the browser target or the command asks for Firefox. The tunnel reaches the hosts named in your project’s base-URL settings, not just localhost. Cypress and mobile runs aimed at Testver Grid are refused with a clear message instead of quietly running on your machine.
-
Headless Selenium — the Output panel explains how the suite and cycle Headless option reaches Selenium tests.
-
Stop — Stop now also ends Gradle’s background test workers. Leftover chromedriver and geckodriver processes appear in Browser Sessions.
-
AI Assistant input — typing / after a space opens the skill list only when a skill matches, so paths like
see /usr/bintype through untouched. A bare # with no sources shows a note pointing to the Sources screen. -
Excel files — exports are much smaller (compressed) and have the same sheets, values and column widths. Imported cells keep their display formats (dates, times, percentages, currency). Password-protected workbooks get their own clear message.
-
Grid and Cloud wording — Testver → Connections now describes Testver Grid and Testver Cloud as prepaid add-ons to a paid plan.
- Settings → Run Commands → Test no longer reports every command as valid. It now checks that the command actually starts your test runner, and shows the output when it doesn’t.
- Settings → “Support more browsers” now keeps your current browser as the default for runs started from Testver.
- WebdriverIO — results were lost or garbled, cloud runs and single-test commands were broken, and some web projects were detected as Appium.
- Robot Framework — projects using SeleniumLibrary were detected as Selenium, results were lost when the command used
-d, some--testnames didn’t run, and false tests appeared in Test Explorer. - Playwright —
npm-script runs produced garbage rows, your HTML report was replaced, wrong files or suites were shown, same-named and quoted tests ran incorrectly, and live progress didn’t work on Windows. - Selenium — stale results from older runs were shown, .NET results were missing, Java and C# tests were missed in Test Explorer, and single-test commands selected more tests than intended. The NUnit test adapter could run out of memory on some single-test filters.
- Cypress — a passing test could show a same-named test’s screenshot from another spec. Live progress was lost with the junit reporter.
- Appium — Python, C#, Ruby and Java Appium projects were given
npm test. The cloud agent could dropautomationName. A web run in a repository that also has mobile tests was sent to a device. - Appium (Python 5+ / AppiumLibrary 3) — sessions created with these clients went to the suite’s own server address instead of the picked device or cloud.
- Git conflicts — the resolver labelled the sides wrongly during a rebase and when putting back a stash, which could lead you to discard your own work. Continue on an empty rebase step looked like it succeeded but didn’t move on.
- Stash with an ignored
.testverfolder — stashing could fail half-way when the project’s.testverfolder was git-ignored.
Security
Section titled “Security”- Behind a reverse proxy, requests that come through the proxy are no longer treated as local. The few endpoints meant only for Testver’s own helpers on the server stay closed to the outside. Audit Log entries record the visitor’s real address, and links use https when the proxy says so.
- File and folder access is now strictly limited to the project. Before, a sibling folder with a similar name, or a path on another drive (Windows), could slip past the check.
- User management — role changes now check the role value and the active flag, so an empty role or
isActive: 0can’t bypass the super-admin and self-protection rules. Disabling a user always signs them out. - Permission rules now apply regardless of how the URL is capitalised.
- Malformed requests — request bodies are checked for type and refused if they try to change built-in object properties (prototype pollution). Saving environment config can no longer be used for that either.
- Sauce Labs region values are validated, so a crafted region can’t redirect your saved key to another host.
- LLM test connection only sends the saved API key to the saved base URL (admins excepted).
- Output folders can only be mapped by Testers and above.
- Dependencies — server dependencies are updated. The spreadsheet library with known high-severity advisories has been replaced. The few remaining advisories are in a command-line-only path Testver doesn’t use.
Upgrade notes
Section titled “Upgrade notes”- First start after upgrading rescans each project once (the scan format changed), so it is a little slower that one time.
- During a run, a temporary config appears next to your own for WebdriverIO, Playwright and Cypress (
wdio.testver.*,playwright.testver.*,cypress.testver.*). It is deleted when the run ends and listed in the repository’s local Git exclude file, so your.gitignoreis not changed and nothing shows up to commit. - The
.testverfolder is now hidden on the Git page and left out of commits by default. If your team commits Testver’s settings on purpose, switch on Include .testver changes (for that browser tab) before staging them. - Remote updates are on by default. Testver fetches your branch’s remote every 15 minutes and asks before test runs when you are behind. Background checks only use saved credentials and never prompt. Admins can change or turn this off in Settings → General → Remote updates.
- Old Excel 97–2003
.xlsfiles are no longer read. Chat uploads and the Test Data preview ask you to save the file as.xlsx. In API mode,.xlsfiles are still sent as request files. - Output folders — Viewers now see Output folders read-only. Mapping, editing or removing a folder needs the Tester role or above.
- LLM test connection — in Settings → LLM, users who aren’t admins must enter the API key to test a base URL different from the saved one.
- Bad request data is refused with a 400 — requests with malformed or wrongly typed fields now get a 400 that names the field, instead of a 500. This only affects your own scripts that call Testver’s API with bad data.
- Testver’s built-in browser now uses Playwright 1.64 (AI Record, the recorder, Explore & Automate). Chromium still falls back to your installed Chrome or Edge. Firefox and WebKit need a one-time
npx playwright-core@1.64.1 install firefox webkit, and Testver shows that command when they’re missing. - Git hooks run with abbreviated long git options disallowed. A hook that uses an abbreviated long option will fail; spell the option out in full. This is rare.
- Cypress and mobile runs aimed at Testver Grid are now refused with an explanation. Run them locally, on Local Devices, or on a cloud vendor.
- Team servers behind a reverse proxy:
- Have the proxy send the
X-Forwarded-For/X-Real-IPandX-Forwarded-Protoheaders. - Set
TESTVER_PUBLIC_URLto your https address, so links in emails and notifications are correct. - The installation guide has the full proxy configuration.
- Have the proxy send the
1.2.2 — October 12, 2026
Section titled “1.2.2 — October 12, 2026”This release reworks CI/CD Pipelines (scoped CI tokens, clearer exit codes, safer runs), redesigns the downloadable run report, and makes Reporting mode more accurate and more secure. It also fixes about 25 smaller issues across the app.
-
Redesigned run report: Results → a run → Export → HTML Report now gives one self-contained file that works offline, so you can email it or attach it to a ticket. It has four tabs:
- Overview: totals, results by spec file, the baseline comparison and test durations, plus a “Needs attention” card for each failure.
- Tests: search, status filters and Expand all. Each test shows its Steps, its own console output and its embedded Screenshot.
- Failures: for each failure, the error, the code around it, root cause and fix.
- Run details: the full console output, with an “All output / Failures only” toggle.
-
Scoped, expiring CI tokens: when you create a CI token you now choose:
- which pipeline mappings it may trigger (all of them, or only the ones you tick);
- whether it may run ad-hoc
--suite/--cycle/--commandtargets (off by default); - when it expires (30 days, 90 days, 1 year or never).
The token list shows each token’s scope, expiry and creator, flags tokens that may run shell commands, and puts revoked tokens in their own collapsed section.
-
Dashboard downloads in PDF, Word and Excel: dashboards in Reporting mode, saved reports and public share pages all have a Download menu (HTML, PDF, Word, Excel). The files use the same layout as the on-screen dashboard. Long PDF tables carry on across pages with the header repeated and “Page n of N” at the bottom.
-
Share links with expiry and view counts: a shared report link can expire after 7, 30 or 90 days, or never. The report card shows “Shared · N views” and the expiry date.
-
Scheduled reports in PDF and Word: scheduled report emails can now attach PDF (the new default), Word, Excel or HTML. Each send refreshes the data first. If the refresh fails, the email still goes out with the saved values and is marked as stale. If a schedule starts failing, its owner gets one email about it.
-
Automation inventory in Reporting: Reporting mode can answer questions about your automation scripts themselves, including scripts that have never run. For example: how many scripts you have by folder or framework, which have never run, which are skipped, which aren’t linked to a test case, and who owns the failing ones. Reports → Templates has a new Automation Inventory preset.
-
Pipeline time limits: each pipeline mapping has a time limit (default 240 minutes). A run that goes over it is cancelled and ends in
error, so a hung run can’t block the queue.
Improved
Section titled “Improved”- Reporting accuracy:
- Reporting knows today’s date, so “this week”, “yesterday” or “the last 30 days” mean what you expect.
- Every result states the time window it covers.
- Auto-Heal and AI-fix verification re-runs, and runs that are still running or were cancelled, are left out of the stats.
- When it gives a pass rate, it says which of the two kinds it is.
- Reporting mode in the AI Assistant:
- You can upload files to report on, such as a JUnit XML or CSV exported from CI.
- You can attach a test with @ to report on its history.
- Saved reports the agent opens appear as interactive cards.
- A dashboard’s layout adapts to a narrow chat column.
- A card that fails to render no longer affects the rest of the chat.
- When you ask for a report in another mode, an Ask again in Reporting banner resends the question in Reporting mode.
- Pipeline mappings:
- Renaming a mapping no longer breaks CI files that use the old name. The old name keeps working until you click Forget old names.
- Each mapping card has an enable/disable switch.
- A card warns when the suite or cycle it runs has been deleted.
- Command targets can use environment and browser overrides.
- Wire into CI:
- A Branches field sets which branches the gate runs on.
- Testver asks before replacing an existing pipeline file.
- It warns when the server address won’t be reachable from CI (
localhostor plainhttp). - The ready-made command is a single line that works in any shell.
- It gives the extra setup steps for Jenkins and Azure Pipelines.
- CI runs:
- Runs that are waiting in the queue survive a server restart.
- A Cancel button on the CI Runs tab stops a queued or running run.
- Cancelling the CI job also cancels the Testver run.
- Pull-request status updates are posted when a run is queued and when it starts, and are retried. If one still fails, the run shows “PR status not posted” and why.
testver triggercommand line:- A flag given with no value is reported by name. This catches an empty
$(git …)instead of misreading the next flag. --jsonreturns the same shape for every outcome.- The server address can come from the
TESTVER_SERVERenvironment variable. - A new
--providerflag records which CI platform sent the trigger.
- A flag given with no value is reported by name. This catches an empty
- Audit Log for CI: creating and revoking CI tokens, and every trigger and cancel a token makes, is recorded in the Audit Log.
- Test links: “Open in Tests” links from Results and the Dashboard now find the right test in Test Explorer even when paths or names were recorded differently. If the test was renamed or removed, Test Explorer says so instead of opening a different test.
- Documentation: every page of the docs site has new screenshots and was checked against the current UI. The Pipelines, Reports and Results pages were expanded.
- Cancelling a run on Windows now stops the test processes too, not just the shell that started them. Cancelling a run while it is still starting up now works.
- The comparison baseline run is no longer forgotten when the server restarts.
- When a run was saved again (for example after a suite re-sync), it no longer jumps to the top as “latest” or counts twice in pass rates and flakiness.
- Run comparisons:
- A test that ran in several browsers is counted by its worst result.
- Durations are compared per run.
- “Newly failing” only compares with earlier runs, so a skip no longer hides a real new failure.
- Defect priorities are always shown as P1–P4.
- Script Mapping:
- Mapped status is the same in the table, the filters and the dashboard.
- Search covers the mapping fields.
- Check Sync Status keeps “Case Updated” / “Script Updated” warnings until you re-sync.
- Unmapped test scripts show the correct framework, including scripts that import their test runner from a shared fixtures file.
- Code Map’s method drawer shows the Unused tag and its Safe to delete? / Generate test actions again.
- Analytics:
- Trend bars draw at full height.
- The “Last 1 day” label reads correctly.
- Growth “Started” figures are correct.
- Execution Trend reads oldest to newest over the latest 14 days.
- Results and Runner:
- The Auto-Heal chip now appears in the run header.
- Live progress resets for each new run.
- Run in the Commands menu is blocked while a run is in progress.
- A run comparison is cleared when you go back.
- The Auto-Heal chip in Failure Analysis shows the live status (expired, partial, stale).
- Schedules: a weekday schedule (
1-5) is kept as you wrote it and labelled “Weekdays”. - Output page: the ZIP download and multi-select, which did not work, were removed. The detected framework label is kept.
- Copy buttons now work on a team server reached over plain
http. - Smaller fixes:
- A stray “0” no longer appears on test case details.
- Tooltip colours on execution dots are correct.
- The Console Output dialog uses dark surfaces in dark mode.
- The API Testing history backdrop displays correctly.
- Chips on the AI Assistant home screen wrap.
- The unused Coverage Heatmap was removed.
Security
Section titled “Security”- Document links from Reporting now work only for signed-in users. Generated HTML and SVG files open in a sandbox, so they can’t run scripts in Testver.
- Saving, sharing, scheduling, regenerating and deleting reports needs the Tester role or higher. Viewers can still open and download reports.
- “Regenerate with current data” and scheduled refreshes can only read data. They can’t edit files, run anything or send email, and they have a 5-minute limit.
- Emails sent from the AI Assistant:
- their content is escaped;
- links are limited to web and mail links;
- attachments must be files the assistant generated;
- there are size and recipient limits;
- each email is recorded in the Audit Log.
- Only admins can create or revoke CI tokens.
- Generated CI jobs pass the token on standard input, so it never appears in process lists or CI logs.
- The git-host token for pull-request status updates is stored encrypted. It is never sent to a different host: changing the provider or base URL clears it.
- CI trigger input is checked strictly:
- commit shas and branch names must be valid;
- environment and browser overrides must be names from Settings → Run Commands;
- the queue holds at most 100 waiting runs.
- Testver keeps its CI run history and queue files out of git.
Upgrade notes
Section titled “Upgrade notes”-
CI tokens: tokens created before 1.2.2 can still trigger every pipeline mapping, but they can no longer run ad-hoc
--suite,--cycleor--commandtargets. If a pipeline uses those flags, an admin needs to create a new token that allows ad-hoc targets and update the CI secret. -
Exit codes:
testver triggerand the generated CI jobs now exit with:0passed;1tests failed;2no verdict (refused, errored, cancelled, timed out or Testver unreachable). Before 1.2.2 these cases exited with1;130interrupted with Ctrl-C.
Update any scripts that check for specific codes.
-
Empty runs fail the gate: a CI run that finds no tests now ends in
errorand fails the gate. Errored runs also count against the pass rate. -
Commit sync removed: CI runs always use the test project as it currently is on the Testver server. Testver no longer checks out the triggering commit.
--shaand--branchare now only recorded on the run and used for pull-request status updates and the Trace tab. Deploy your build and pull the latest test changes onto the server before triggering a gate. -
Runner-mode pipeline templates removed: generated pipeline files always trigger the run on the Testver server.
-
Overrides must match Run Commands:
--envand--browservalues must be names from Settings → Run Commands. Any other value is refused, and the error lists the valid names. -
Pipeline time limit: pipeline runs are now cancelled after 240 minutes by default. Raise the limit on the mapping if your suite takes longer.
-
Document links need sign-in: links to documents generated in Reporting now open only for signed-in users, so document links shared before this version stop working. To share with people outside Testver, use a report’s Share link.
-
Report editing needs Tester: Viewers can no longer save, share, schedule or delete reports.
1.2.1 — October 6, 2026
Section titled “1.2.1 — October 6, 2026”Ask mode can now answer questions about your automation library, defects and test results. The AI Assistant can find and run tests by name. Code Map links tests to the code they use more accurately in every supported language.
- Ask knows your automation library: Ask now answers from five kinds of record, each cited in its own colour: exploration runs, defects, test cases, automated tests and documents. You can ask:
- which tests cover a feature, or which tests are flaky;
- what is failing right now;
- for a list of open critical defects, or for one defect’s details;
- what one test checks;
- for a test’s run history;
- which tests would be affected by changing a page object.
- Open links on Ask citations: each source in an Ask answer has an Open link to the defect, test case, automated test, Code Map method, run, document or requirement. Exploration reports open in a reader inside the chat.
- Ask feedback and knowledge panel: you can rate Ask answers with a thumbs up or thumbs down, and add an optional note. The “What I know from” panel shows how much Ask has to work with. It lists searches that found nothing and answers marked not helpful, so you know what knowledge to add.
- Find and run tests by name: in Web, Mobile and API modes the AI Assistant looks up your tests the way Test Explorer lists them, without searching your spec files. It knows each test’s steps, tags, methods, linked test case and run history. Ask it to “run the admin login test” and it uses the same command as Test Explorer’s Run button, including your Run Commands template. This works on Windows, macOS and Linux.
- Run history insights: answers about a test’s history say whether it is flaky, when it started failing, when it last passed, whether it is getting slower, and whether failures only happen in one browser or only locally or in the cloud. Dates include how long ago they were. A test that passed and then kept failing is reported as broken on that date, not as flaky.
Improved
Section titled “Improved”-
Code Map accuracy: tests are now linked to everything they use. This includes:
- methods whose parameters are split over several lines;
- page objects created inside fixtures;
- setup hooks and base test classes in Java and C#;
- pytest fixtures, including chained and
autousefixtures.
Counts like “tests that use the login page” are now complete and match across Ask, the AI Assistant and Code Map.
-
Tables in AI answers: tables in AI Assistant answers have a frame and a shaded header. Status cells such as Passed, Failed or Open show as coloured pills, and wide tables scroll sideways.
-
Masked test steps: passwords and similar values are masked as
••••••in Test Explorer and Results steps. The Source tab still shows the code as written. -
Cleaner chat history: a new session isn’t saved until you send its first message, so unused sessions no longer clutter History. Chat titles use only your question, without the notes about attached skills, sources or files.
- Test Explorer now uses your Settings → Run Commands single-test template. Before, it was silently ignored.
- When the AI Assistant ran a test on Windows, it could report “No tests found” for a command that worked in Test Explorer. This is fixed.
- Open in Trace Viewer in a Cucumber scenario’s run details now opens the trace.
- The AI credits ring now shows correctly for a team member whose share is 0.
Security
Section titled “Security”- Ask mode can only use its read-only knowledge tool, and the server enforces this every time a tool runs. Any tool that isn’t allowed in the current mode is refused.
- More kinds of secret are masked in AI answers: API keys, access tokens, JWTs, passwords in URLs, and credentials in recorded steps and test code. Text recorded from the app under test is treated as data, not as instructions.
- The AI Assistant can only read test result files inside your project.
Upgrade notes
Section titled “Upgrade notes”- After upgrading, reload any Testver browser tab that was already open, so the new Ask features (including Open links) load.
- Empty “New Chat” sessions saved by earlier versions are hidden from History.
1.2.0 — September 29, 2026
Section titled “1.2.0 — September 29, 2026”Testver 1.2.0 is the largest release so far. It adds Auto-Heal, which repairs broken locators after a run, and a CI/CD Pipelines screen that lets your CI gate builds on runs executed by Testver. It also brings Testver Grid and Testver Mail through one Testver connection, new AI Assistant modes and controls, contract and microservices testing in API mode, and two-factor sign-in.
AI Assistant
Section titled “AI Assistant”- Ask mode: ask questions about the application under test. Answers come only from what Testver has already recorded: exploration runs, your test cases, and your sources and requirements. Each claim carries a numbered citation, and recorded credentials are masked.
- Explore & Automate skill: a built-in skill that walks your web app, records what it finds, writes tests that follow the real click paths, and files matching test cases. It asks you to sign in when roles are needed and can save that sign-in for later runs. When several roles are explored, it builds an access matrix and flags pages a lower-privileged role can reach but a higher one cannot. It finishes with a structured report.
- Attach Sources: add up to 5 requirements, notes, JIRA items or documents to a chat from the paperclip menu or by typing
#. Long documents are summarised with an outline and searched on demand. In Ask mode the answer is limited to the attached sources. Test cases the AI creates are linked back to the source. - Manual / Auto permissions per chat: a picker next to the mode chip lets you approve each tool call yourself or let the AI proceed. Risky actions, such as deleting a file, sending an email or a sign-in hand-off, still ask in Auto.
- Grouped tool calls and “Changed N files” card: tool calls are grouped under a live status line. Each turn ends with a summary of the files it changed, a Review dialog showing the diffs, and an Open in Git link.
- New home screen: a capability list of the four modes. Click a row to switch to that mode.
- Plain test titles: tests the AI writes get titles without quotes or regex characters, so running a test by name works reliably.
Test automation & Runner
Section titled “Test automation & Runner”- Answer prompts from the Runner: when a command asks a question, such as an “Ok to proceed?” prompt, the Runner shows an input line. You can send an answer, press Enter to accept the default, or send end-of-input.
npxconfirmations are answered automatically. - Browsers & Environments read from your code: Settings → Run Configuration → Suggest detects the browsers and environments your framework actually supports. Supported sources include Playwright projects,
-Dproperties, pytest options, Cypress, WebdriverIO, .NET run settings, Robot variables and.env.<name>files. Saved entries that nothing in your code reads are flagged. A browser entry can now be either a CLI argument or an environment variable. - Run tests by browser and environment name: the AI Assistant can run tests against a named browser or environment. Framework scaffolding skills register them for you once the first smoke test passes.
- Framework scaffolding guide: a step-by-step guide with example prompts for building Playwright, Cypress, Selenium, WebdriverIO, Cucumber, pytest, REST Assured and Appium frameworks with the built-in skills.
- Run a single web test in the cloud from Test Explorer: the “Run on” picker in Test Explorer offers your enabled cloud providers and Testver Grid as well as Local.
- Mobile suites and cycles: suites and test plan cycles can run on a local or cloud device with a chosen app build.
- App build library: upload Android and iOS builds, give them names (for example Dev, QA or Prod) and pick them in the Runner and the AI Assistant.
- Hybrid app support: AI Record detects webviews in mobile apps. It records CSS locators for web content and native locators for everything else, shows a WEBVIEW chip, and generates context-aware tests.
- More mobile options: Appium + RSpec (Ruby) code generation and results parsing. Local iOS simulators, booted or shut down, are listed as devices.
Auto-Heal
Section titled “Auto-Heal”- Post-run locator repair: after a run finishes, Auto-Heal finds tests that failed because an element could not be found. It locates the broken locator in your code (tests, page objects, helpers, locator files and data files) and proposes a replacement backed by evidence from the page. It applies the change, re-runs every affected test, and keeps the change only if they all pass. Otherwise it puts the file back exactly as it was.
- Off / Suggest / Auto modes: Auto-Heal is set in Settings → General and is off by default. You can override it per suite and per CI pipeline. In Suggest mode, verified fixes are offered as Fix ready for you to apply.
- Auto-Heal tab in Results: a review queue of fixes ready to apply, a history of what was healed, undone or reverted, and the locators that keep breaking. Apply and Undo are available on each fix, and fixes retire after a review window you choose (7 days by default).
- Wide framework coverage: Playwright (JS/TS, Python, Java, .NET), Selenium (Java, Python, C#, Ruby, Kotlin), Selenide, WebdriverIO, Nightwatch, Robot Framework, Appium, Cypress, TestCafe, Puppeteer and Katalon. Locators built with templates or concatenation are healed by changing only their static text.
- Evidence from the run itself: Playwright traces and snapshots, the test’s own live browser or app session (local, your Selenium Grid through a relay, or cloud), and an optional headless browser probe. AI is used only when the free evidence is not enough, and it must choose from elements actually on the page.
- CI-aware: on a gated pipeline, a run whose failures are all healed can turn the build green (“auto-healed”), or you can choose report-only. Outcomes can be sent to your notification connectors.
Testver Grid & Cloud
Section titled “Testver Grid & Cloud”- Testver Connections: a new Testver entry pinned at the bottom of the sidebar. Connect your Testver account once to turn on AI credits, Testver Grid and Testver Mail, and see your plan credits and extra usage reserve as two separate bars.
- Run on Testver Grid (paid add-on): pick Testver Grid under “Run on” in the Runner, in Test Explorer, or for suites, schedules and CI pipelines. Tests run on Testver’s cloud browsers (Chromium, Firefox, WebKit) with no vendor account and no code changes. A local tunnel lets grid browsers reach an app on
localhost. One installation holds the connection at a time, with Take over to move it to another machine. - Live execution view for Grid runs: watch the run’s cloud browsers stream live in the Runner, the Test Explorer Output tab, running suites, Results and Test Plan cycles. Click a tile to enlarge it; your choice to hide the view is remembered.
- Testver Mail: on paid plans, reports and notifications can be sent through Testver’s mail service with your name on them and replies coming back to you. You don’t set up SMTP, and Testver Mail becomes the default sender when you connect.
- Testver Cloud workspaces (paid add-on): a new workspace opens straight into Testver’s first-time setup through a one-time setup link.
- Zero-touch BrowserStack runs for Java, Python and .NET: Selenium projects in these languages run on BrowserStack without editing your test code.
- “Fix with AI Assistant” for cloud setup: when a project needs a small one-time change before it can run on a cloud provider, the dialog hands an assembled task to the AI Assistant. The Assistant makes the change, runs a test on the provider, and checks the result.
- Cloud execution verdict: each cloud run is checked against the provider. A run that quietly fell back to a local browser is flagged in Results.
- CI/CD Pipelines screen with Dashboard, Pipelines, CI Tokens, CI Runs and Trace tabs. Your CI triggers a run on your Testver server, waits for it, and passes or fails the build on the result.
- Pipeline mappings: map a pipeline to a run command, a suite or a test plan cycle, with saved overrides. Runs from all pipelines go through one queue so they don’t collide.
- Ready-made CI files for GitHub Actions, GitLab CI, Jenkins, Azure Pipelines, Bitbucket Pipelines and CircleCI. You can wait for the result or trigger the run and move on.
- Commit status push-back to GitHub, GitLab, Azure DevOps and Bitbucket, including self-hosted servers.
testver triggerCLI: trigger a mapping, suite, cycle or command from any terminal or CI job.--waitwaits for the verdict and--jsongives machine-readable output.- Pipeline insights: pass-rate KPIs, trends, per-pipeline, branch and environment tables, and Trace a deploy, which looks up a commit SHA or branch and shows its runs. CI runs show a CI chip and a build link in Results.
API testing
Section titled “API testing”- Contract testing in API mode: check a live API against its OpenAPI spec (JSON or YAML), validate single responses, find breaking changes between two spec versions, and verify or generate Pact consumer contracts.
- Microservices testing: chained flows with value extraction and retry or polling, OAuth2 client credentials, mTLS, private certificates and proxies, waiting until services are ready, and correlation IDs. Also adds mock services, data-driven runs from CSV or JSON, WebSocket and SSE streams, Kafka and RabbitMQ events, gRPC calls, and basic load tests.
- More import formats: specs can be imported from a file or URL, along with Postman v2.1 collections and HAR files. File uploads are supported in requests.
- API Testing with AI guide: a new tutorial with a catalogue of prompts for every kind of API test.
Test management
Section titled “Test management”- Grounded test case generation: AI Test Gen uses what Testver has observed of your app for page names, navigation and control names. The requirement always decides what a test asserts, and mismatches are reported as spec drift. Each case shows where its steps came from and whether it can be automated, with a reason.
- Choose requirements first: an optional flow to extract requirements, pick which ones to generate for, review the drafts, and accept them. The accepted cases can be handed straight to the AI Assistant to automate.
- Generation depth: choose High-level (broad and fast) or Detailed (exhaustive), and deepen a single requirement later without duplicating the tests you already have.
- Defects: bulk assign, status, priority and delete in the list view. You can also drag cards between board columns, and Closed and Rejected columns can be collapsed. Assignees and reporters are emailed when a defect’s status, assignment, severity, priority or due date changes.
Security & accounts
Section titled “Security & accounts”- Two-factor sign-in with authenticator apps, including recovery codes and an option to trust a browser. Admins can require two-factor for nobody, for admins only, or for everyone. Admins can reset a user’s two-factor, and
testver users reset-2faprovides recovery from the server. - Sign-in sessions: sessions now end after a period of inactivity (24 hours by default) and after a maximum lifetime (7 days by default), both configurable. A warning appears 5 minutes before you are signed out, with a Stay signed in button.
- Forgot password: users can reset their password by email through the connected email connector. Users can also sign in with their email address as well as their username.
- Optional setup key: set
TESTVER_SETUP_TOKENto protect a fresh server’s first-time setup page.
Settings
Section titled “Settings”- Every Settings change is audited: the Audit Log records what changed, with before and after values, and secrets are hidden. The Audit Log adds First and Last page buttons and shows the real total count.
- API & Network Traces now also cover pytest-playwright. Traces your Java and .NET Playwright projects save are linked to their tests.
- Hide MCP: set
TESTVER_MCP_ENABLED=falseto remove MCP controls from Settings and the AI Assistant.
Improved
Section titled “Improved”AI Assistant
Section titled “AI Assistant”- Attaching a test with
@now works in API mode and gives the AI the right tools for that test. - Chat uploads accept only file types Testver can actually read. Unsupported files are refused with a clear reason instead of failing silently.
- The credits ring shows the extra usage reserve once your plan credits are used up.
- The LLM tab offers Testver AI as the cloud provider. Administrators can also connect local models running on their own machine. Model pickers list only models you have added.
Test automation & Runner
Section titled “Test automation & Runner”- Dashboard: new Pass rate by suite and Slowest tests widgets, plus expanded lists for flaky tests and top failures.
- Results: screenshots, videos and traces appear as preview cards. The trace card shows action, request and error counts. The screenshot viewer supports zoom and pan. Suite and cycle runs show each test’s own console output and cloud artifacts.
- Trace Viewer opens traces with the newest Playwright viewer available in your project, so “trace created by a newer version” no longer appears.
- Failure Analysis focuses on classifying failures and finding the root cause. It adds a one-click AI assessment, the full error and stack trace, and whether each affected test has since been fixed by a later run. Fix in AI Assistant hands the failure to the AI Assistant with all of this context.
- Code Map: “Unused” detection now follows what tests actually reach. Calls are resolved more accurately across inheritance, fixtures and chained calls. A new Run affected tests action has been added, and secrets in test data previews are masked.
- Git: new Publish for branches without an upstream. Switching to a remote branch creates a local tracking branch. Discard now works for staged new and renamed files. Commits are made in each user’s own name, and you are asked to confirm before amending a commit that has already been pushed. Conflict resolution handles more cases.
- Project Explorer previews images, PDFs and rendered Markdown.
- AI Record: recorded passwords are masked everywhere and kept in a git-ignored secrets file, then supplied to test runs automatically. Recordings survive page navigation and brief disconnects, and unsaved drafts can be recovered. Header buttons are clearer. Assert and Annotate modes pass keyboard input straight to the page.
- Mobile cloud: live preview and reuse of an already-open device session now work for Java, C# and Ruby Appium projects as well.
- Faster start-up:
testver servestarts faster and shows a progress line until Testver is ready.
Testver Grid & Cloud
Section titled “Testver Grid & Cloud”- Concurrent cloud suite runs are isolated from each other, so builds, artifacts and traces no longer get mixed up.
- Grid runs are checked against your browser pool before they start, and a plain message explains when the pool is busy.
Notifications
Section titled “Notifications”- Emails have a new design, and links point to your server’s public address.
- New notification events: Cycle Complete, CI Gate Verdict, Auto-Heal Outcome, Schedule Skipped and Defect Status Changed. Users are also emailed when their role changes, their account is enabled or disabled, or their sessions are revoked.
Settings & navigation
Section titled “Settings & navigation”- Non-admin users can open every Settings tab in a read-only view.
- The sidebar is reorganised. Runner and Schedules are tabs of the new Advanced screen. Config and Browser Sessions are tabs in Settings. Import / Export opens from the Test Cases screen. Old links redirect.
- Dates are shown in one readable format across the app, for example “Thu, July 23, 2026”.
- API mode supports Basic and API-key authentication. Requests inherit a collection’s default authentication, and OpenAPI security schemes map to environment variables on import. Read-only API tools no longer ask for approval.
- Test Explorer’s Source and Steps tabs no longer cut off tests with multi-line signatures or literal braces (JS/TS, Python, Java, C#). Python
async deftests are now discovered. - Test Explorer and other name searches now match the displayed test name, for example “Login With Valid Credentials”.
- Commands that wait for input no longer hang forever as “running”.
- API & Network Traces no longer add a trace flag to pytest or Maven commands whose paths merely contain “playwright”.
- Text is now extracted from PDF sources and uploads, which previously came through empty.
- Closing the browser tab during a long AI run no longer closes the AI’s browser mid-task or silently denies its permission prompts.
- Failure classification now treats Playwright “element(s) not found” and Cypress “never found it” errors as missing-element failures. Keyword matching no longer misfiles names that merely contain a keyword.
- AI Record:
- A second recording now captures clicks, not only navigations.
data-cyanddata-testattributes are emitted correctly.- A failed generation no longer leaves the screen stuck on “Generating…”.
- Draft autosave now works.
- A recording loaded from History is the one that gets generated.
- Mobile Stop and Pause now stop capturing.
- Annotate arrow-key navigation works again.
- Java Selenium + TestNG projects are no longer detected as Playwright.
- AI Record code generation now handles large projects.
- Fetched cloud artifacts on suite and cycle runs appear without reloading the page. LambdaTest videos play correctly.
- Live browser view tabs no longer get out of sync.
- Suite and cycle runs send one notification instead of one per test.
- The Profile screen no longer shows “Last login: Never” after first-time setup.
Security
Section titled “Security”- Screenshots, videos, traces and other run artifacts now require sign-in, and only files inside the served project can be opened.
- Closed a path that let crafted requests start runs without signing in. Internal scheduler, CI gate and Auto-Heal requests are now verified.
- Repeated failed sign-ins on an account are slowed down with increasing waits.
- Testver adds a
.testver/.gitignorethat keeps user and sign-in key files out of commits, and warns if they are already tracked. - Permissions are tightened: Settings changes need the admin role. Applying or undoing Auto-Heal fixes, Code Map AI actions, test data curation and revealing masked test data need the tester role, and reveals are audited.
- AI Record now confines merge targets to the project and ignores steps injected by the page under test.
Upgrade notes
Section titled “Upgrade notes”- Restart
testver serveafter upgrading and reload any open Testver browser tabs. - The old Healing screen and engine are removed. Auto-Heal replaces them and is off by default: turn it on in Settings → General, and start with Suggest.
- Fixing from Failure Analysis now happens in the AI Assistant, using Fix in AI Assistant.
- The Manage → CI/CD config generator is replaced by the CI/CD Pipelines screen, and old links redirect there.
- Several screens have moved in the sidebar: Runner and Schedules are under Advanced, Config and Browser Sessions are in Settings, and Import / Export is on Test Cases. API Testing and Analytics are no longer in the sidebar but still open from their URLs and search. Testver Connections and About are under Testver.
- On first start, model names that earlier versions pre-filled are removed from the LLM tab. Models you added yourself are kept, and so is any pre-filled model a provider is actually running.
- Sign-in sessions now expire after 24 hours of inactivity or 7 days at most. You can change both in Settings → General → Sign-in sessions.
- Chat uploads no longer accept images, PowerPoint or
.docfiles. Save.docas.docxand export slides to PDF. - Mobile cloud sessions now close after 10 minutes of inactivity or 3 hours in total, with a warning and a Keep session open option.
- If you use two-factor sign-in, back up
~/.testver/2fa.keyon the machine running Testver, or setTESTVER_2FA_KEYon your own host, and never change it. If the key is lost, users sign in with recovery codes. - Testver Grid has no browser picker. The browser comes from your framework’s configuration.
- The Local Browser Connector cannot be used for AI Record recordings, and Testver shows a message when you try.
- The built-in Test Framework Migration skill has been retired.
1.1.1 — July 18, 2026
Section titled “1.1.1 — July 18, 2026”This is a big release built around organising and running automation at scale. It adds reusable test suites, automation runs for test-plan cycles, a script lifecycle and ownership in the Test Explorer, and maps of your test data and environments. It also adds Testver AI as a built-in AI provider, makes the AI agents much stronger on web and mobile, and reorganises the navigation.
- Suites: Select tests in the Test Explorer and save them as a named suite that you can run again and again. Choose where a suite runs (locally or on a cloud grid), how many tests run at once, whether browsers are headless, extra command-line arguments and automatic retries for failed tests. You can also add setup and teardown commands that run before and after the suite, schedule it with a cron expression, re-run only the failed tests, and compare two runs to see which tests newly failed, newly passed, are still failing or were fixed. A suite run appears in Results as a single run, with live status for each test and full screenshots, video, traces and console output.
- Suite notifications: Send email or Slack notifications when a suite run finishes. You choose manual runs, scheduled runs or both. You also choose when to send: always, on failure, when the status changes, or when the pass rate drops below a threshold. Recipients can be set per suite, and you can send a test notification to check delivery first.
- Test Cycle automation runs: “Run all automation” in a test-plan cycle now has run settings: local or cloud, how many tests run at once (up to 8), retries (up to 3), headless mode, extra arguments, and setup and teardown commands with an option to stop if setup fails. The run shows live in Results as a single “Plan - Cycle” entry, and you can cancel one test or the whole batch.
- Browser and environment presets: Define the browsers and environments your project uses once, under Settings → Run Commands. At run time, pick one from a list in Suites and cycle runs, and Testver adds the right command-line argument or environment variable for you.
- Script status: Give each test a status: Draft, Active, In Review or Deprecated. You can change it on the row, filter by it, or set it on many tests at once. The status is shared with your team through the project. The Dashboard gains a Script Lifecycle card showing how your catalogue breaks down.
- Test ownership: The Test Explorer shows who owns each test and who last changed it, based on your Git history for that test’s own lines. You can filter and group by owner, and admins can run a full scan. A privacy switch hides names.
- Saved run commands: A Commands library in the Runner holds your saved and pinned commands, a “Run All” preset and recently run commands. Commands are shared with your team through the project, and the same picker appears in Schedules.
- Test Data map: Code Map has a new Test Data view. It lists where your test data lives (CSV, Excel, JSON, YAML, fixtures and inline data providers in Java, Python, JavaScript/TypeScript and C#) and which tests use it. It also flags duplicate data, random or dynamic data, hard-coded credentials and personal data, and data files no test uses.
- Environment configuration editor: Under Manage → Config, Testver finds your project’s environment and configuration files (.env, .properties, JSON environment files, Cypress config) and lets you edit their values. Changes are written back to the original file with comments and order kept.
- Testver AI: Connect your Testver account as an AI provider in one click from Settings → LLM. A credits ring in the AI panels shows how many credits you’ve used, with a quick link to top up. On a shared server, each user connects their own account.
- Super admin role: On new installations, the account created during setup is the super admin. Only the super admin can create and manage admin accounts. The super admin account can’t be deleted, demoted or disabled.
- Skills and MCP servers in chat: In the AI Assistant, type ”/” to apply Agent Skills to a request, and choose which MCP servers the AI may use. Skills and MCP servers are managed under Settings.
- @-mention a test: Mention a test in the AI Assistant to give the AI that test’s code, its recent status and its owner, so it focuses on maintaining just that test. Every test’s detail view also has an “Ask AI about this test” button.
- Playwright traces inside Testver: Failed Playwright tests now record a trace automatically. You can turn this off, or also keep traces for passed tests. Open a trace in Results with the built-in Trace Viewer.
- Always-on server setup:
testver deploy pm2generates a PM2 configuration so Testver keeps running on a team machine.
Improved
Section titled “Improved”- AI agents on the web: The AI reads pages more fully, including iframes and tables. It notices and follows new tabs opened by a click, waits for the page to settle after each action instead of pausing for a fixed time, and can upload files.
- AI agents on mobile: Mobile actions have grown from 8 to 15. The AI can now scroll to an element, wait for an element, handle system alerts, switch between native and webview contexts, tap at a screen position and change orientation.
- Safer AI edits: Before changing a shared file, the AI checks which tests depend on it and runs a sample of them afterwards. It refuses test runs that aren’t scoped to specific tests and warns when a run executed no tests.
- Generated code: AI Record can produce WebdriverIO tests, Playwright output uses role- and text-based locators, and generated mobile tests include proper waits.
- Longer AI tasks: The AI can take many more steps before stopping, so it can finish longer tasks. Default models for cloud AI providers have been updated.
- Browser Sessions: Browser Sessions shows browsers opened by test runs, including runs started by the AI. It also finds browsers that a finished run left open; you can close them yourself or have them closed automatically after a short wait (off by default). Sessions whose browser has already closed are no longer listed.
- MCP servers: Testver now supports the Streamable HTTP connection type and custom authentication headers. Servers can connect automatically on startup, tools show the server’s name, and stored secrets are encrypted.
- Navigation: The sidebar is reorganised. A new Manage hub holds Config, CI/CD and Browser Sessions. AI Assistant and AI Record sit under Agents, and Connectors, Skills and MCP Servers are under Settings. Old links redirect to the new locations.
- Results: Scheduled runs show the schedule’s name and a “Scheduled” badge, and cycle runs show a “Test Plan” badge. Run details have a button to copy the run command.
- Dashboard: The Dashboard has a Recent Executions table that breaks down passed, failed and skipped tests for each run.
- Passwords: Password fields have a show/hide toggle.
- Theme: The default theme is now light. A theme you have already chosen is kept.
- Screenshots, videos and traces from earlier runs are no longer overwritten or broken by later runs.
- TestNG and JUnit results are found even when the project writes its reports to a custom folder.
- Fixed scheduled runs not appearing correctly in Results.
- Fixed several Code Map and Test Data map display issues.
Upgrade notes
Section titled “Upgrade notes”- The
/recordand/scaffoldcommands have been removed from the interactive command line. Use AI Record in the dashboard instead. - “Run Selected” in the Test Explorer is temporarily hidden. To run a hand-picked set of tests, add them to a Suite.
- Test Data Map, CI/CD, Connectors and Agent Skills have moved (see Navigation above). Bookmarks to the old pages redirect automatically.
- On a shared server using Testver AI, each user must connect their own Testver account. Scheduled and system jobs use the super admin’s connection.
1.0.0 — June 16, 2026
Section titled “1.0.0 — June 16, 2026”Testver 1.0 is the first stable release. It adds a global search that reaches everything, and polishes the AI Assistant, AI Record and Results.
- Global search (Ctrl/Cmd + K): One search box that jumps to any screen and finds test cases, test plans, defects, sources, discovered tests, schedules, connectors and text inside your project files. Type an ID such as
TC-12,D-3,TP-2orSRC-5to go straight to that item, already open.
Improved
Section titled “Improved”- AI Assistant home: The home screen now includes a Mobile mode card, and only shows the modes that fit your workspace (Web, Mobile or both).
- AI Record: A valid starting URL is now required before recording, with clear inline validation. Local addresses such as
http://localhost:3000work. - Results: The test detail panel is easier to read in dark mode.
- Server start-up: A redesigned start-up banner shows the installed version, local and network addresses, and the project path.
- Searching file contents no longer fails when the query contains special characters such as
(,[or*.
0.2.4 — June 15, 2026
Section titled “0.2.4 — June 15, 2026”This release makes Testver steadier on long runs and broadens framework support. It also adds a full user guide.
- Robot Framework results: Results are read from Robot’s own output file, so keywords appear as steps, along with tags and setup/teardown.
- Cucumber Scenario Outlines: All the example rows of an outline are grouped into one row with a breakdown for each example, labelled with the real example values (including for JavaScript Cucumber).
- Complete user guide: Every screen now has a detailed, step-by-step guide.
Improved
Section titled “Improved”- Long runs: Runs lasting many hours no longer use ever more memory in the server or the browser. The live log keeps the most recent output, and the full log is still saved.
- Live connection: The live log stays connected through reverse proxies during long quiet stretches of a run.
- Schedules: A schedule no longer starts a second run while its previous run is still going. You’re told when a run was skipped for this reason.
- Live file changes: Adding or deleting folders in your project now updates the Explorer and Test Explorer straight away.
- Mobile-only workspaces: Web run controls and AI Fix are disabled, with a tooltip explaining why, and mobile-only settings are hidden in web workspaces.
- AI indicator: A new “thinking” indicator in the AI Assistant and AI Record shows when the AI is working.
- Quieter console: Diagnostic messages are now hidden by default. Set
TESTVER_DEBUG=1to see them.
- Run commands for Java projects now work: Cucumber on Maven/Gradle runs correctly, and single-file runs filter by class name.
- Running a single file in .NET projects now works (it filters by class name).
- Saved run-command overrides for a suite or file are now applied.
- Fixed result parsing for Cypress, Playwright and TestNG reports.
Upgrade notes
Section titled “Upgrade notes”- Testver is now distributed under the Testver End User License Agreement. It is free to use for your own internal testing, including commercial use.
- The Microsoft Teams connector is temporarily hidden.
- Agent Skills and Workflows are no longer shown in the sidebar.
0.2.1 – 0.2.3 — June 13, 2026
Section titled “0.2.1 – 0.2.3 — June 13, 2026”- Fixed a crash on macOS and Linux with large projects. Testver no longer watches dependency and build folders, and file-watching errors no longer stop the server.
- Generated output folders (screenshots, reports, videos, traces, Allure results and similar) are no longer watched. If the operating system’s open-file limit is still reached, live file-watching switches off with one clear message and the dashboard keeps working.
testver --versionand the health check now report the version you actually have installed.
0.2.0 — June 13, 2026 — first public release
Section titled “0.2.0 — June 13, 2026 — first public release”Testver is a self-hosted, AI-assisted workspace for test automation and test management. Install it with npm install -g @testver/testver, run testver serve in your test project, and open the dashboard in your browser. A short setup creates your admin account and asks whether the workspace is for Web testing, Mobile testing or both.
Test automation
Section titled “Test automation”- Dashboard: Test health at a glance, with pass/fail trends, recent runs, top failures, flaky tests and a breakdown by module.
- Test Explorer: Finds every test in your project automatically, with status, framework and tag filters, search, details for each test and one-click runs.
- Runner: Run a single test, a file or the whole project, and watch the output stream live. Testver builds the right command for each framework. You can also send runs to BrowserStack, LambdaTest or Sauce Labs.
- Results: Full run history with results for each test, screenshots, video, traces, console output and step-by-step pass/fail. You can also set baselines, compare runs and get AI failure analysis. Parameterised tests are grouped into a single “Variations” view.
- Output: Browse the files and artifacts your runs produce.
- Schedules: Recurring runs on a cron schedule, built with a visual cron builder.
- CI/CD: Generate ready-to-commit pipeline files for GitHub Actions, GitLab CI, Jenkins, CircleCI, Azure Pipelines and Bitbucket Pipelines.
- Frameworks: Playwright, Cypress, Selenium, WebdriverIO, Puppeteer, Cucumber, Robot Framework, pytest, Jest, Vitest, Mocha, JUnit/TestNG (Maven and Gradle) and NUnit/xUnit/MSTest (.NET), in TypeScript/JavaScript, Python, Java and C#.
Mobile testing
Section titled “Mobile testing”- Native Android and iOS testing with Appium, on cloud device farms or on phones connected to your own machine.
- AI Record for mobile: Tap through your app to generate a test in Java (TestNG), C# (NUnit), Python (pytest) or WebdriverIO (TypeScript).
- AI Assistant: A chat assistant that knows your project and works in Web, Mobile, API and Reporting modes. It can write and fix tests, drive a live browser or device, validate APIs, and build reports with charts and KPIs. Actions that change things ask for your permission first.
- AI Record: Click through your web app in a real browser, mark assertions and annotate steps in plain English, then generate a test in your framework’s style. Several recordings can run at once, and each person has their own private history.
- AI Test Generation: Turn requirements, documents and JIRA tickets into structured test cases, or reverse-engineer test cases from existing automation scripts.
- Bring your own AI: Use a cloud AI provider or local models. AI is optional: the Runner, test management and reporting all work without it.
Test management
Section titled “Test management”- Test Cases: Folders, tags and version history for your test cases.
- Test Plans and Cycles: Plan your testing, run it in cycles step by step, and run the mapped automation from a cycle.
- Script Mapping: Link manual test cases to automation scripts.
- Sources: Keep requirements, documents, notes and JIRA tickets in one place.
- Coverage and Analytics: Traceability matrices, detection of gaps and orphaned items, health scores and trends.
- Defects: A built-in bug tracker with a Kanban board.
- Import / Export: JSON and CSV, plus migration from TestRail, Zephyr, Xray, PractiTest and qTest.
Project and code tools
Section titled “Project and code tools”- Explorer: Browse and edit your project’s files inside Testver.
- Code Map: See how your automation code is structured, including inventory, quality, dependency graph and Gherkin step views, so you can spot shared helpers, unused code and duplication.
- API Testing: A built-in HTTP client with collections, environments, authentication, validations, scripts, request chains, history and import.
- Git: Stage, commit, pull, push, switch branches, view file history and resolve conflicts without leaving Testver.
- Workflows and Agent Skills: Multi-step automations built on a visual canvas or in YAML, plus reusable AI skills and MCP server connections.
- Reports: Saved dashboards, scheduled reports, templates and shared reports for stakeholders.
Integrations
Section titled “Integrations”- JIRA: Pull stories, push defects and link test cases.
- Notifications: Email (SMTP) and Slack.
- Cloud grids: BrowserStack, LambdaTest and Sauce Labs, for web and mobile.
- Local Browser Connector: Run browser automation on your own machine, which helps with SSO, VPN-only sites and personal browser profiles.
Team and security
Section titled “Team and security”- Roles: Admin, Tester and Viewer, plus user management, personal profiles and an audit log of important actions.
- Light and dark themes, a command palette (Ctrl + K) and a collapsible sidebar.