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

Unleash / unleash / 25797540861
87%
master: 91%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 13 May 2026 12:04PM UTC
Jobs 1
Files 1178
Run time 2min
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

13 May 2026 11:55AM UTC coverage: 87.109% (-0.006%) from 87.115%
25797540861

push

github

web-flow
chore: upgrade to react 19 (#11920)

Upgrades the frontend from React 18 → 19, with the dependency-chain
bumps and type-fix-ups required to land cleanly.

### Dependency bumps
- `react` / `react-dom`: `18.3.1` → `^19.0.0`
- `@types/react` / `@types/react-dom`: `18.3.x` → `^19.0.0`
- `chart.js`: `3.9.1` → `^4.1.1` (peer-driven by `react-chartjs-2` v5)
- `chartjs-plugin-annotation`: `2.2.1` → `3.1.0`
- `react-chartjs-2`: `4.3.1` → `5.3.1`
- `react-markdown`: `^8.0.4` → `^10.1.0`
- Removed `react-test-renderer` and `@types/react-test-renderer`
(deprecated path; tests use Testing Library directly)

### Codemods & mechanical changes
- Ran the React 19 TypeScript codemod (~140 files): `FC` no longer
carries implicit `children`, so component prop types now declare
`children` explicitly where needed; `ReactNode` / type-only imports
tightened.
- `RefObject<HTMLDivElement>` → `RefObject<HTMLDivElement | null>`
across the codebase. Same semantics — React 19 unified
`RefObject`/`MutableRefObject`, so nullability now lives in the type
parameter rather than being baked into `RefObject` itself.

### Targeted fixes
- **`Badge.tsx`**: replaced `ReactElement<any>` with
`ReactElement<SvgIconProps>` (matches what the component actually
reads/clones).
- **`AutocompleteVirtual.tsx`**: introduced a named `VirtualizedRowProps
= ComponentPropsWithRef<'li'> & { 'data-index'?: number }` for the
`cloneElement` cast; explicit `CSSProperties` annotation on the inline
style object.
- **`CodeRenderer.tsx`**: react-markdown v9 removed the `inline` prop on
`code`. Rewrote to detect block fences via the presence of a
`language-*` className, matching the pattern in the official README.
(All our SDK snippets specify a language, so the heuristic should be
sufficient.)
- **`Markdown.tsx` (common wrapper)**: react-markdown v10 now asserts on
`className` being passed to `<Markdown>`. Two call sites
(`BannerDialog`, `LatestProjectEvents`) wrap our `Markdown` component in
MUI's `styled()`, whi... (continued)

1843 of 2038 branches covered (90.43%)

15069 of 17299 relevant lines covered (87.11%)

877.22 hits per line

Coverage Regressions

Lines Coverage ∆ File
2
85.45
-0.91% src/lib/features/playground/feature-evaluator/constraint.ts
1
86.05
-0.78% src/lib/services/api-token-service.ts
Jobs
ID Job ID Ran Files Coverage
1 25797540861.1 13 May 2026 12:04PM UTC 1178
87.11
GitHub Action Run
Source Files on build 25797540861
  • Tree
  • List 1178
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #25797540861
  • 798380b7 on github
  • Prev Build on main (#25796893466)
  • Next Build on main (#25817649217)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc