• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

php-bug-catcher / bug-catcher / 37183500889
94%
main: 94%

Build:
Build:
LAST BUILD BRANCH: v2.4.0
DEFAULT BRANCH: main
Ran 04 Oct 2026 06:42AM UTC
Jobs 1
Files 142
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

04 Oct 2026 06:06AM UTC coverage: 94.087% (+0.9%) from 93.231%
37183500889

push

github

tito10047
feat(perf): the performance dashboard, as a page of its own

Four changes that only make sense together, because each one moved the ground
under the next.

**Everything on these panels is translatable.** The templates said `|trans`
with no domain, which reads `messages`, while the bundle's catalogue is
`BugCatcher` - a page that renders perfectly and stays English for ever. They
now declare `trans_default_domain`, and the words the chart renderer paints
into the SVG (titles, descriptions, legend labels) go through
`AbstractPerfChartBuilder::t()`, because no template ever sees those.
`PerfTranslationTest` is what catches the silent case.

**Every chart says what it means.** A `.bc-hint` info dot on hover and on
keyboard focus - `title` would do neither the focus nor the theming.

**`PerfDatabase`.** The query count and query time that
`php-bug-catcher/perf-collector-bundle` ships reached `perf_bucket_extra` and
stopped there: `PerfReportBuilder` dropped `WindowAggregate::$extra` on the
floor, and no DTO had a field for it. They are now carried through untouched
and drawn as a panel - queries per request, what they cost, and the routes
that run the most. It is the one panel an installation can have no data for
with the collector running perfectly, so it says which of the two it is.
Fixes a keying bug while in there: across projects the extras were grouped
only by route, so every application's `/login` was handed the sum of all of
them.

**The charts are a page.** `/performance` and `/performance/{project}`, not
rows on the dashboard: the dashboard answers "is anything on fire" from across
the room, and four charts of one project is a question somebody asks after
clicking that project. Two ways in - the nav button and the project's name.
A perf panel left in `dashboard_components` stops the build rather than
quietly keeping on drawing itself at home.

**And the dashboard row knows about latency.** `Project::$perfEnabled`, off by
default, swaps `status_li... (continued)

283 of 285 new or added lines in 24 files covered. (99.3%)

3071 of 3264 relevant lines covered (94.09%)

20.51 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
93.33
src/Controller/PerformanceController.php
1
99.07
-0.93% src/Service/Perf/Report/PerfReportBuilder.php
Jobs
ID Job ID Ran Files Coverage
1 37183500889.1 04 Oct 2026 06:42AM UTC 142
94.09
GitHub Action Run
Source Files on build 37183500889
  • Tree
  • List 142
  • Changed 11
  • Source Changed 0
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • a98b6125 on github
  • Prev Build on main (#37129980027)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc