Skip to main content

Releases

Each release below lists only what behaves differently for existing users, and what to check. New features are described on their own pages. Older releases are removed after a few months.

Release 78 (Oct 2026)​

Release 78 changes how Testspace judges a result's Health and tracks failing tests. The rules are in Health and Failures.

Your CI Check​

Testspace no longer uses your CI build status to judge a result. Previously, for GitHub-connected projects, a smaller-than-usual run (a subset) or a result with a missing metric was judged only when CI reported success, and was Invalid otherwise. Now such a result is judged on what ran, and marked partial.

info

A Healthy subset, or a Healthy result with a metric not reported, now passes Testspace's CI check, where it failed before. If Testspace's check is required in your branch protection rules, a smaller run that passes can now satisfy them.

Health of Earlier Results​

  • Invalid now means only that nothing ran, or more than 5,000 failures. Subsets and missing metrics are judged instead.
  • Results published before the release keep their Health. A Space's Results list may show older subsets as Invalid and newer ones as Healthy or Unhealthy with partial. The last-5-results bars are consistent once the Space has 5 new results.
  • Insights periods that span the release mix both rules, so their charts may show a step: the Invalid Rate drops, and the Health Rate and recovery times shift.

Stale Metrics Are Removed​

At each Space's first result after the release, coverage and static-analysis metrics that Testspace created, that nobody edited, and that have had no data for at least 15 results and 30 days are deleted, with their history. Each deletion appears in Activity as "Removed Metric …, by Testspace".

caution

A README badge or link to a deleted metric stops working. If the metric is published again, Testspace recreates it without its old history.

Other metrics that stop reporting now show not reported for 5 results and are then hidden, instead of making every later result Invalid.

Coverage and Static Analysis​

  • New coverage metrics have no threshold, so they don't affect Health until someone sets one; the Code Coverage report offers it. Existing coverage metrics keep their threshold, and a renamed coverage Suite's new metrics keep the old one. Codecov and Coveralls still use the service's target.
  • Coverage badges are renamed by coverage family, if nobody edited them: coverage becomes line coverage, coverage(fx) method coverage, coverage(?:) branch coverage and coverage({}) block coverage. README badges and links keep working; their text changes.
  • The Web API's badge name changes with them (a Result's health.badges, and the metrics API). A script that finds a badge by name should match its metric_id instead.
  • Code Coverage and Static Analysis open as pages, not dialogs (Report Pages).
  • Activity says what a metric edit changed, such as its threshold.

Failure Tracking​

Each Space switches to the new rules at its next result. Failures keep their current state; failures already resolved stay resolved.

  • Untested and not applicable runs no longer count as passes, so they no longer resolve a failure.
  • A test missing from five results is no longer counted as fixed. It shows missing while its state holds, and is retired (tracking ends, not as a fix) after 5 Results in a row, not counting subsets, over at least 14 days.
  • In Manual testing, a pass resolves a failure at once, instead of after five passes.

Spaces With Manual and Automated Results​

In a Space with Manual testing that also gets published results:

  • An automated subset now reads partial. Each automated Result is measured by what it ran, against earlier automated Results, as in other Spaces; before, these Spaces never had subsets. A Healthy subset passes Testspace's CI check.
  • A Suite replaced in the same folder (renamed, or a file that now loads under its own name) retires its tracked tests at once, instead of after 5 Results and 14 days.
  • Exemptions no longer disappear after a carried run (a Manual session, or a subset push in an aggregating Space). An exemption already lost stays lost: exempt the case again in Triage.
  • The Result page's Aggregate | Session select is now Show: All | Ran in this result.

Duration in Aggregating Spaces​

In a Space that aggregates results (for example, Manual specs carried into automated results), Duration now shows only what ran in each result, not the time carried from earlier results, so it may drop (e.g. from 2 h 11 m to 39 m). The result header's Duration hover shows the split.