Skip to content

feat(ui): migrate mantine to StatusService v3alpha - #5538

Open
siavashs wants to merge 1 commit into
prometheus:mainfrom
siavashs:feat/maintine/status
Open

feat(ui): migrate mantine to StatusService v3alpha#5538
siavashs wants to merge 1 commit into
prometheus:mainfrom
siavashs:feat/maintine/status

Conversation

@siavashs

@siavashs siavashs commented Sep 3, 2026

Copy link
Copy Markdown
Contributor
  • replace the Mantine UI's hand-written API v2 status model
  • use generated Protobuf-ES bindings for status.v3alpha.StatusService
  • use Connect-Query with a route-prefix-aware Connect-Web transport
  • render the new start time and cluster state fields
  • add coverage for generation, transport routing, response validation, and page rendering
image image

@siavashs
siavashs requested a review from a team as a code owner September 3, 2026 13:58
@siavashs
siavashs requested a review from SoloJacobs September 3, 2026 13:58
@coderabbitai

coderabbitai Bot commented Sep 3, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: f788825e-5eb3-4867-b71b-1133ef56564b

📥 Commits

Reviewing files that changed from the base of the PR and between 34a3282 and 2adc222.

📒 Files selected for processing (1)
  • ui/mantine-ui/biome.json

Included review availability: Your plan provides up to 8 included reviews per hour; 6 remain after this review.


📝 Walkthrough

Walkthrough

The Mantine UI now generates TypeScript protobuf bindings, creates a Connect RPC transport, queries StatusService, validates status responses, and renders generated status fields through the application provider.

Changes

Mantine Connect integration

Layer / File(s) Summary
Protobuf generation and build wiring
.github/workflows/ui-ci.yml, ui/mantine-ui/Makefile, ui/mantine-ui/biome.json, ui/mantine-ui/buf.gen.yaml, ui/mantine-ui/package.json
The UI build generates TypeScript bindings from ../../proto/api, tracks proto changes, and excludes generated files from Biome processing.
Connect transport and status query
ui/mantine-ui/src/data/connect.ts, ui/mantine-ui/src/data/connect.test.ts, ui/mantine-ui/src/data/status.ts, ui/mantine-ui/src/data/status.test.ts
The data layer creates an HTTP GET Connect transport, queries StatusService, validates required status fields, and formats cluster states.
Provider and page integration
ui/mantine-ui/src/App.tsx, ui/mantine-ui/src/pages/Status.page.tsx, ui/mantine-ui/src/pages/Config.page.test.tsx, ui/mantine-ui/src/pages/Status.page.test.tsx, ui/mantine-ui/test-utils/render.tsx
The application provides the Connect transport. Status pages render generated response fields. Test utilities and page tests support mocked transports.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: ⚪ Minimal · up to 2adc2

Generated UI bindings are excluded from formatting and linting only; build and runtime availability remains intact. No current merge-blocking risk is identified.

Sequence Diagram(s)

sequenceDiagram
  participant App
  participant TransportProvider
  participant StatusPage
  participant StatusService
  participant API
  App->>TransportProvider: provide apiTransport
  StatusPage->>StatusService: request getStatus
  StatusService->>API: send HTTP GET Connect request
  API-->>StatusService: return status response
  StatusService-->>StatusPage: provide validated status
  StatusPage->>StatusPage: render start time and cluster state
Loading
🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 9 files. (1 skipped: 1 … Write docstrings for the functions missing them to satisfy the coverage threshold.
Description check ⚠️ Warning The description summarizes the implementation and test coverage, but it omits the required Pull Request Checklist and the release-notes block. Add the repository checklist with all applicable boxes selected, list related issues or state none, confirm documentation and sign-off status, and complete the release-notes block with NONE or an appropriate user-facing change entry.
✅ Passed checks (3 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly and concisely describes the main change: migrating the Mantine UI to StatusService v3alpha.
Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 9 files. (1 skipped: 1 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

- replace the Mantine UI's hand-written API v2 status model
- use generated Protobuf-ES bindings for status.v3alpha.StatusService
- use Connect-Query with a route-prefix-aware Connect-Web transport
- render the new start time and cluster state fields
- add coverage for generation, transport routing, response validation, and page rendering

Signed-off-by: Siavash Safi <siavash@cloudflare.com>
@siavashs
siavashs force-pushed the feat/maintine/status branch from 34a3282 to 2adc222 Compare September 3, 2026 14:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant