Skip to content

v0.48.0

Choose a tag to compare

@PhenX PhenX released this 06 Oct 20:34
adae822

This release makes every project tab follow the page's filters, says how many partial runs a filter hides, traces requests and their SQL with OpenTelemetry, speeds up the project pages and ingestion, and sends live step events in batches only while someone has the run open.

Full diff: v0.47.0…v0.48.0

✨ Highlights

  • 🎛️ One set of filters per page — Every page's filters sit in one filters block, and every tab of the reorganized project page follows them.
  • 🙈 Hidden partial runs, counted — The runs list shows how many partial runs its filter hides.
  • 🔭 OpenTelemetry tracing — The server traces requests and their SQL statements with OpenTelemetry.
  • 📡 Live steps only when watched — The reporter streams live steps only while someone has the run open, in batches of 20.
  • ⚡ Faster project pages — The Runs, Flaky and Tests tabs load faster, and the main pages are measured on every pull request.
  • 📥 Lighter ingestion — Each batch reads its run, project and default branch once, and default-branch lookups are shared.

Features

Filters & the project page

  • ui: put every page's filters in one filters block (cacf943)
  • app: reorganize the project page and make every tab follow the page's filters (459272d, 27c4b1b)
  • app: show how many partial runs the runs list hides, and notify when a filter hides them (bb5f025, 2ad9039)

Observability & help

  • app: trace requests and their SQL statements with OpenTelemetry (677a753)
  • help: render help hints as Markdown with structured formatting (d2f08c6)

Performance Improvements

Project pages

  • app: speed up the Runs, Flaky and Tests tabs of a project (87af5ca)
  • app: speed up the project pages and measure the main pages on every pull request (de4d35d)
  • app: fetch the tab counters without the analysis only their lists show (89b4bb6)
  • app: page the Tests tab before aggregating and filter its lab runs per project (16b71ec)
  • app: read a catalog page's executions through the test case index (9b698de)
  • app: list a project's lab runs once on the catalog's join (cfe6322)
  • app: find each flaky attempt's predecessor with one lookup per attempt (be18880)
  • app: keep the flaky list's flake profiles until a run of the project ends (babb872)
  • app: show the runs table 50 runs to a page (081821b)
  • ui: show the runs table 25 runs to a page (bef3a78)
  • ui: build the runs list's hidden cards, menus and tooltips only when used (1b77e2c)

Rendering & caching

  • app: share capability states and the project list across one render (bf3f254)
  • app: cache found capability evidence and index the rare rows its probes seek (6dc1389)
  • app: load the subscription bell and the AI-steps check in the browser (044acf9)
  • app: build one date formatter per locale, zone and format (466a5bf)
  • app: hash with Node's crypto module on the server (f3f7438)

Ingestion

  • app: cut per-batch ingest work and repeated default-branch lookups (75907af)
  • app: read a batch's run, project and default branch once while persisting it (07d80e3)
  • app: share default-branch lookups and keep failed ones for ten minutes (a5799a7)
  • app: store each run's origin in a column the eligibility rule reads (c264e05, 0ae85b2)

Live streaming

  • reporter: stream live steps only while someone watches the run, in batches of 20: step events are sent only while someone has the run open, and queued live events go in batches of 20 by default (c1ce1bb, ac8a006, cc7222f)
  • app: tell the reporter whether anyone has a run open live (f20b2c1)

Bug Fixes

  • docs: move proposals to ADR (80bd3c3)