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

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

Build:
Build:
LAST BUILD BRANCH: v2.4.0
DEFAULT BRANCH: main
Repo Added 10 Sep 2024 01:22PM UTC
Files 153
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

LAST BUILD ON BRANCH v2.0.0
branch: v2.0.0
CHANGE BRANCH
x
Reset
  • v2.0.0
  • 0.1.4
  • 1.1.0
  • 1.1.1
  • 1.1.2
  • 1.1.3
  • 1.1.5
  • 1.1.6
  • 1.1.7
  • 1.1.8
  • 1.2.0
  • 1.2.1
  • 1.2.2
  • 1.2.3
  • 1.2.4
  • 1.3.0
  • 1.4.0
  • 1.5.0
  • 1.5.1
  • 1.5.2
  • 1.6.0
  • 1.7.0
  • 1.8.0
  • 1.8.1
  • 1.9.0
  • feat/mcp-server
  • fix/stacktrace-display
  • main
  • multi-login
  • selection
  • tailwind
  • v2.0.0-RC1
  • v2.0.0-RC2
  • v2.0.0-RC3
  • v2.0.0-RC4
  • v2.0.1
  • v2.0.2
  • v2.0.3
  • v2.1.0
  • v2.2.0
  • v2.3.0
  • v2.4.0

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

Relevant lines Covered
Build:
Build:
3264 RELEVANT LINES 3071 COVERED LINES
20.51 HITS PER LINE
Source Files on v2.0.0
  • Tree
  • List 142
  • Changed 11
  • Source Changed 0
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
37183500889 v2.0.0 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,... push 04 Oct 2026 06:42AM UTC tito10047 github
94.09
See All Builds (111)
  • Repo on GitHub
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