Skip to content

v0.40.0

Choose a tag to compare

@PhenX PhenX released this 27 Sep 12:34
4bb60e6

This release reads a test's step tree — naming the hook or fixture a failure happened in and folding setup and teardown on the timeline — judges how stable each locator is and flags the brittle ones in the dashboard and in Piwi Picker, now also on Firefox, and asks Jira for exactly the fields it requires; the dashboard, server, desktop app and extension move to FSL-1.1-MIT.

Full diff: v0.39.0…v0.40.0

⚠ Breaking changes

  • The dashboard, @piwitests/server, the Docker image, the desktop app and the browser extension are licensed under FSL-1.1-MIT instead of MIT. The reporter and the integrations stay MIT.

✨ Highlights

  • 🪝 Failures in hooks and fixtures — Piwi reads the step tree, names the hook or fixture a failure happened in, and folds hooks and fixtures into Setup and Teardown on the timeline.
  • 🧱 Brittle locators — Each locator chain gets a stability judgment; brittle ones are flagged on the Locators page and in Piwi Picker's Tested elements, with a checked replacement.
  • 📍 Where each locator runs — The reporter records the page each locator call ran on, and the dashboard shows the pages each locator was used on.
  • 🦊 Piwi Picker on Firefox — The extension supports Firefox, with an AMO submission and a listing in English and French.
  • 🧾 Jira that asks first — Creating an issue or moving it through a workflow asks for the fields Jira requires, stops replaying refused creates, and shows a failure's issue where it fails.
  • 🧭 Guided setup — Jira and notification channel setup run checks and link straight to the setting to fix.
  • 📚 Docs for machines — The docs build publishes llms.txt and llms-full.txt, and generates the MCP tools, analytics widgets, metrics and reporter options pages.
  • ⚖️ New license — The dashboard, server, Docker image, desktop app and extension move to FSL-1.1-MIT; the reporter and integrations stay MIT.

Features

Failures in hooks & the timeline

  • app: read the step tree and name the hook a failure happened in (6cf2c90)
  • ui: fold hooks and fixtures into setup and teardown on the timeline (c200555)
  • app: make hooks, traces and missing git info clear on the failure and cluster pages (61901bf)
  • app: say why a cluster has no diff and keep its commit range usable (5c17732)
  • ui: color code, a status edge and bold labels in the failure headers (33ed298)
  • ui: open the trace from every evidence tab and show whole screenshots (26ad0fc)
  • ui: syntax-highlight the evidence source and other plain code views (5742efb, 8cf25b3)

Locator stability

  • app: judge the stability of a locator chain (a163fd3)
  • ui: flag brittle locators on the Locators page (459dd20)
  • reporter: record the page each locator call ran on, and index it (f3d432e)
  • ui: show the pages each locator was used on (39f7604)

Piwi Picker

  • extension: flag brittle locators and show what tests do on the page you are on (76f24ed)
  • extension: count what tests do on this page, and list what they miss here (7603ddb)
  • extension: list brittle locators in Tested elements, with a checked replacement (f7104fe)
  • extension: support Firefox and its AMO submission (f56b595)
  • extension: pre-fill the Firefox listing in English and French (ccf8892, 2194103)

Jira & notification setup

  • app: ask for the fields Jira requires, stop replaying refused creates, and show a failure's issue where it fails (3c0d8de, 1734e97)
  • app: ask for the fields a workflow transition requires (e8ed394)
  • app: guide Jira and notification channel setup with checks and deep links (520526c, 32f99bb)

Docs & help

  • docs: publish llms.txt and llms-full.txt from the docs build (a09a787)
  • docs: generate the MCP tools, analytics widgets and metrics pages (e2d0874)
  • docs: generate the reporter options page from the options type (eac4201)
  • ui: link a help topic's recipe from its inline help (96113b0)

Bug Fixes

Failures, clues & clusters

  • app: stop false and repeated clues on real runs (dc0f53e)
  • app: keep names capitalized after a hook lead and read fixture leads (ba89716)
  • ui: say the test body never ran only after a setup failure (29b00e9)
  • app: keep the reporter's own annotations out of a test's marks (6185e7b)
  • app: build the git log and compare link only from plain revisions (2fbd5e2)
  • app: name a fix commit by its short sha in the cluster state and next step (2481e58)
  • ui: follow the app's color mode in the code highlight palette (09bae47)
  • ui: show a project in the sidebar switcher only on its own pages (9f4e879)

Jira

  • ui: show a failure's Jira issue on its execution page and execution rows (125ed8c)
  • ui: center the Jira issue chip in execution rows (e0e4cae)
  • app: keep the Jira site check's hint from repeating its error (5c8a8d5)
  • app: answer 409 instead of 500 when a secret cannot be encrypted (7bcfdce, db44503)

npx server on Windows

  • app: start the npx server on Windows and render its dashboard pages, loading its bundle by file URL (#658) (12b5253, 45b5389)
  • app: ship the server bundle's symlinked packages in the npm tarball (fbed9a1)

Reporter capture

  • reporter: keep the capture fixtures out of the test's steps and stacks (78345b1)
  • reporter: keep the last capture reads internal and box the dogfood's own file (a010b29)
  • reporter: type the attach mock in the locator pages test (0479e91)

Extension on Firefox

  • extension: make the manifest and source package pass Firefox AMO review (17bc588)
  • extension: reach session storage from content scripts in Firefox (ec0c6eb)
  • extension: name form controls by their label, not their text (cc1b701)

Docs & demo

  • docs: serve the Piwi favicon and page-specific snippets in piwitests.dev search results (a8b84f2, 85ed73c)
  • demo: show a crawlable loading screen until the demo first renders (fbc6f41)

Miscellaneous Chores

  • relicense the dashboard, server, desktop app and extension under FSL-1.1-MIT (649e869)