Skip to content

v0.21.0

Choose a tag to compare

@PhenX PhenX released this 30 Jul 10:26
86a6470

⚠ BREAKING CHANGES

  • deps: @piwitests/instrumentation is now published as @piwitests/instrumentation-nitro. Update the dependency and any export { default } from '@piwitests/instrumentation' plugin re-export.

Features

  • add Setup page with capability detection and checklist (5a46e3e)
  • app: a permanent Setup page with a capability checklist (22b451d)
  • app: add OpenCode MCP auto installer in the Desktop app (f1e1304, 5a053eb)
  • app: add server-aware setup_piwi MCP prompt (10b2d32)
  • app: no-AI-credits prompt copy flow + MCP tool for the function catalog (aeeb242)
  • app: object params for test functions, editable catalog entries (1835b93)
  • app: surface the setup_piwi prompt on the MCP server page (3d27eda)
  • app: warn when the linked folder holds none of the tests being run (ebff14e, 7bc5d2c)
  • deps: rename @piwitests/instrumentation to @piwitests/instrumentation-nitro (101f8b3)
  • extension: add npm run extension:dev for rebuild-on-save (7b03b3b)
  • extension: add npm run extension:zip to package a store-ready build (f9606ce)
  • extension: add Piwi Picker browser extension (standalone MVP) (b0f6236, 7d72290)
  • extension: add the Firefox add-on ID to the manifest (2ba30fe)
  • extension: assertion suggester (C2) (8a63376)
  • extension: copy context for agent (E1, standalone portion) (a0db8b3)
  • extension: digit shortcuts for every popup action, icon beside the label (979ad7e)
  • extension: lay the popup out as a two-column icon grid (20c70be)
  • extension: link from the "Test functions" panel to the catalog in Piwi (55c0b79)
  • extension: locator console (A6) and multi-pick pattern derivation (A7) (012da71)
  • extension: locator lint overlay (A9) (56b3db7)
  • extension: map URL patterns to projects, with an active-project popup override (510266e)
  • extension: named pick session with fixture/Markdown/JSON export (C3/C7) (da43eba)
  • extension: record actions across pages, matched live against your own test functions (5618641, 6c40b6d)
  • extension: register test functions from pasted code (AI), and test them against the live page (9c0f3bd)
  • extension: run one tool at a time, show which, cancel with Esc (7652e48)
  • extension: standalone power tools (P2) (63b5a06)
  • reporter: add piwi init command and MCP prompts (ac0d24d)
  • reporter: add piwi init command and agent skills (0735adc)
  • ui: anchor scoped locators on app-specific data-* attributes (4517b8d)
  • ui: make picked locators legible in the picker and the dashboard (66f46bd, 6e630f4)
  • ui: redesign the run and execution summary headers as single adaptive cards (4ba71a2)
  • ui: scope role-less elements to a parent by their text (2d5b9a7)
  • ui: single out a repeated container with filter({ hasText }) (7f6bb60)

Bug Fixes

  • app: confirm a catalog delete, validate demo writes, and report a rename collision as 409 (63bbcb5)
  • app: find Claude Desktop's config inside the Store build's package container (08c5806, c343e0d)
  • app: hold a catalog entry's receiver and import name to being identifiers (2d9ad5a)
  • app: include the rest of the copy-prompt/MCP change set (a754fe5)
  • app: restrict Setup to administrators (77fffda)
  • app: say why a capability-gated block is empty, not just that it is (85e2f45)
  • app: sync TAG_TO_ROLE's table-role entries into the dashboard's copy (506a027)
  • ci: close a check-then-wait race in the extension's serviceworker fixture (8568aa0)
  • ci: copy picker-dom into the image and stop masking native install failures (85726dd, c36ae26)
  • ci: give the extension e2e suite's service-worker wait more headroom (50fcd87, 2585033)
  • ci: launch the extension e2e context with channel: 'chromium' (648ed29, 45d2062)
  • ci: open a warmup page while waiting for the extension's service worker (2aea569, 8d9d1a8)
  • ci: portable Chromium path + full browser install for extension E2E (8caa13e)
  • ci: use a portable Chromium executable path in the picker-dom integration config (c8f7ab9)
  • extension: collapse the popup status line when it has nothing to say (161bc69)
  • extension: keep both values from two indistinguishable fields, and drop Enter's echo click (a9e0a8f)
  • extension: keep the function catalog up to date instead of fetching once (59ffd04)
  • extension: remove stray NUL bytes from function-match.ts's glob matcher (6fe7dcf)
  • extension: report the pick shortcut the browser actually bound (de5e286)
  • extension: serialize capture writes, surface a failed one, and unwind a failed start (8f775aa)
  • extension: stop leaking a keydown listener, revoke a disconnected instance, bound every request (9dfb09d)
  • extension: stop the recorder cleanly, and ask for its permission in the click (442c889)
  • extension: stop the recorder HUD appearing only sometimes, and outline the page (86ad2d1)
  • extension: tear down the picking overlay once a pick is committed (943d725)
  • extension: three correctness bugs in the recorder's codegen path (dd31704)
  • reporter: invoke the CLI via npx @piwitests/reporter to avoid the piwi collision (fe27718, 82c13ee)
  • restore the lockfile's root name field to "platform" (6e47bb7, 9a8f544)
  • stabilize recording of indistinguishable form fields and improve capture reliability (367273e)
  • ui: pick a data-* anchor by what it means, and stop re-reading the DOM for it (3810070)
  • ui: rank ambiguous locators below ones that resolve to a single element (09a5d58)
  • ui: rank every countable candidate by ambiguity, and stop trusting widget counters (f574900)