Skip to content

v0.60.0

Choose a tag to compare

@PhenX PhenX released this 25 Oct 08:36
49af367

This release adds an in-app assistant that answers questions about the instance from its MCP tools, walks users through common tasks and proposes changes; it also selects the tests that ran a change's exact lines, pauses tests at editor breakpoints and records from them, and lists Piwi's tests in VS Code's Testing view.

Full diff: v0.59.0…v0.60.0

✨ Highlights

  • 🤖 An in-app assistant — A panel that answers questions about the instance by reading the MCP tools, shows its answers as blocks, suggests guides anchored on every block of the dashboard, walks users through common tasks and proposes changes; the demo answers from its seed.
  • 🔍 Line-level impact — Select the tests that ran a change's lines, over MCP and with piwi run impact, keeping the tests line-level impact cannot rule out.
  • ⏸️ Pause at breakpoints — The reporter pauses at breakpoints through Playwright's debugger, the timeline draws each stop as a paused band, and paused time stays out of step statistics; from the editor, record from a test paused at a breakpoint or page.pause().
  • 🧪 Piwi in VS Code's Testing view — Piwi's tests appear in the Testing view with their latest results, and the editors mark the changes to a page or route no test reaches before the pull request does.
  • 🔑 MCP sign-in for the editor's agent — The editor's agent signs in to Piwi's MCP server for a token of its own.
  • 🖥️ Local runs to the desktop app — The reporter's desktopApp: 'prefer' option sends local runs to the desktop app.
  • 🔌 One connect wizard — The setup page is rebuilt around one connect wizard.
  • 📊 Run progress at a glance — A running run's progress shows on the browser tab, a run's counts are written on its bar, and the count bar alone filters its tests by outcome.

Features

In-app assistant

  • ai: add an in-app assistant that answers, guides and proposes changes (f1ee982)
  • ai: answer questions about the instance with an assistant that reads the MCP tools (7c6681c)
  • ai: define the assistant's answer blocks and replies (fa923ab)
  • ai: open the assistant in a panel whose answers show, guide and ask (8303743)
  • ai: walk users through common tasks and let the assistant propose changes (21fe4ff)
  • ai: suggest guides where they help, answer the demo's questions from its seed (b7fc772)
  • ui: give every block of the dashboard a tested guide anchor (c894427)

MCP

  • app: write MCP tool descriptions in Markdown and open each tool on the MCP page (a496c8d, f703414)
  • ide: let the editor's agent sign in to Piwi's MCP server for a token of its own (527db76)

Impact

  • app: select the tests that ran a change's lines, over MCP and piwi run impact (c1ca2bd, 5f4bb6b)
  • ide: mark the changes of a page or route no test reaches, before the pull request does (6400d58)

Pauses & breakpoints

  • reporter: pause at breakpoints through Playwright's debugger (acdc1ad, b3a712f)
  • app: draw each stop as a paused band and keep paused time out of step statistics (66c307b)
  • ide: record from a test paused at a breakpoint or page.pause(), in its own page (f37ff96)
  • demo: seed a test paused at editor breakpoints, with its screenshot scenes (1781443)

Piwi in your editor

  • ide: list Piwi's tests in VS Code's Testing view, with their latest results (1d03b9a)
  • ide: the Testing view, uncovered changes, recording from a pause, and an MCP sign-in (08e4fca)

Setup, runs & layout

  • reporter: send local runs to the desktop app with desktopApp: 'prefer' (3c96ef1, bda7cfc)
  • ui: rebuild the setup page around one connect wizard (9fbade9)
  • ui: show a running run's progress on the browser tab (a5fd1b9, 8473f31)
  • ui: filter a run's tests by outcome from the count bar alone (0b29d0c)
  • ui: write a run's counts on its bar and give every page one 16 px gutter (5a2348e)

Performance Improvements

  • ai: tell a declined assistant from the capability states, with no status request per page (66b9d67)

Bug Fixes

Assistant & MCP

  • ai: close the races and gaps the assistant's code review found (741ec41)
  • ai: let a server run the assistant on Claude Code, reaching its tools over IPv4 or IPv6 (eca46cf)
  • app: lighten a guide's overlay so the page around the stop stays readable (24d6387)
  • app: name the AI settings page "AI", as the docs and the dashboard call it (395ed55)
  • app: correct MCP tool descriptions against what the handlers return (f4f3fa8)
  • app: keep MCP tool summaries plain and the tool rows within the type scale (6130f57)

Pauses & the timeline

  • reporter: leave Playwright's own pauses alone and keep stops off the timeline (0c8b3c2)
  • reporter: leave the stop out of a test that ended under the bar (70d4e3d)
  • reporter: let a held call go at once when a stop ends unanswered (ed092a4)
  • app: read a paused step's own time in clues, hints, exports and the AI context (accbeaa)
  • ui: end a paused test's bar where it ended and keep the band labels readable (a31268a)
  • app: show marker details on hover and rework the markers panel (beb2e9f, 0edcab3)

Impact & failure analysis

  • app: keep the tests line-level impact cannot rule out (964a782)
  • reporter: make piwi select impact print arguments that run nothing when no test is impacted (84acb8f)
  • app: name the test's own HTTP call as the slow request when it is the failed step (3aa9b43, 63c7386)
  • app: budget the controls the failure pages open on, not what the fold cuts (53edb96, 4c9edd5)

Dashboard

  • ui: gate the setup page's API key and keep its status line current (72236b3)
  • ui: keep the run tab indicator right on cancelled and growing runs (033a378)
  • ui: keep the count bar a pill, its end segments rounded when selected (c529eac)
  • ui: measure every count bar segment and keep loose page content off the phone edge (9405436)
  • ui: give the run's test list more room and every page one gutter (5c3be1b)
  • ui: open a slower or faster test on its Performance evidence tab (a4cc283)
  • ui: open the tab a link names on the run, project and execution pages (89aa801)
  • ui: open the tab a link names when it points at the page already open (06af4a8)

Reporter & editors

  • reporter: read the connection from the config folder's .env (7adc665, 6d334d8)
  • reporter: ignore a desktop app that crashed, and keep init's choices (dd8ba1e)
  • ide: close the gaps a review found in the Testing view, a pause's recording and its runs (e78a204)
  • ide: address the independent review of the editor plugins' larger items (f9fe5e4)
  • ide: watch the JetBrains editor service's process, not the internal LSP listener (39afdcf, e516a15)
Piwi Picker recording and replay fixes — recording the control the person meant, and replaying it with every locator it recorded
  • extension: replay with every recorded locator, and record what real sites showed it missed (d6d38e4, 1095f43)
  • extension: replay on the recorded locator first, and say why a step is left to the person (8f80066)
  • extension: weigh a brittle recorded locator's vote less in a replay (9796b47)
  • extension: give the keys a replay sends with page events their key codes (43a6c9c)
  • extension: hand over replay input a browser dialog took, and let the recording bar move (38a59a2)
  • extension: record a click whose candidate also finds its container's parent (1f92f33)
  • extension: record an icon's own control, and only the person's own Back, Forward and reload (983325f)
  • extension: count a Back after a page load as the person's, and shorten card-long names (6596018)
Dependencies, CI and demo build — dependency updates, advisory fixes and build plumbing
  • deps: bump @libsql/client to 0.18 and set the SQLite pragmas on each pooled connection (3f18da5, 9890753)
  • deps: keep OpenTelemetry on one release line (SDK 2.12) (216004d)
  • deps: take the fixes for the npm and RustSec advisories that have one (6fd7064)
  • deps: take the open Dependabot updates and the advisory fixes they unblock (c0ec2bd)
  • deps: adapt to the npm minor-and-patch group, holding back three updates (70c3ee7)
  • ci: keep the full Chromium build out of the headless shell's cache (a0e5f42)
  • demo: serve the sql.js WASM of the installed sql.js (ece156c)