Skip to content

Fixes open-metadata/openmetadata-collate#7547: Redesign welcome and upgrade screens for 2.0 - #35657

Merged
chirag-madlani merged 10 commits into
mainfrom
chirag-madlani/welcome-upgrade-screens-2.0
Oct 17, 2026
Merged

chirag-madlani merged 10 commits into
mainfrom
chirag-madlani/welcome-upgrade-screens-2.0

Conversation

@chirag-madlani

@chirag-madlani chirag-madlani commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

Describe your changes:

Fixes open-metadata/openmetadata-collate#7547

The first-login welcome screen and the post-deploy upgrade screen now follow the 2.0 designs, the "Center-Aligned" row). The welcome screen shows the new isometric illustration, "Welcome, {name}! 👋 / Your Context Platform is ready", the subtitle, Connect a data source → (add database service) and Take a product tour, over a brand-coloured bottom glow. The upgrade screen, which is shown when an app update makes the old page files fail to load, is a centred card with the new illustration, "A better {brandName} experience awaits! ✨", the refresh copy and a Refresh page button. Both screens have light and dark artwork and use theme tokens, so they follow the active theme and brand colour.

The old screens predate the 2.0 visual language and had no dark artwork.

Type of change:

  • Improvement

High-level design:

  • BrandClassBase gains getWelcomeScreenImg(theme), getUpgradeScreenImg(theme) and getPlatformName(). A downstream build swaps the artwork and the platform name by overriding the class (Collate does so in its companion PR, linked below); OSS returns the OpenMetadata artwork and "Context Platform".
  • ErrorFallback reads the theme from the root element's dark-mode class instead of useTheme(). The boundary wraps <App /> in AppRoot, outside ThemeProvider, so useTheme() there throws and the fallback renders a blank page.
  • The upgrade card is at least 636px wide (Figma) and grows to keep the title on one line from lg up, so the longer "OpenMetadata" brand name does not wrap; below lg it wraps instead of overflowing.
  • Illustrations are the Figma exports with the canvas, section and frame backgrounds Figma bakes into exports removed. They live in assets/img/ (they are illustrations; assets/svg/ is reserved for icons and tw-guard blocks new files there). welcome-screen.png, om-upgrade.svg and welcome-screen.style.less had no other users and are deleted.
  • Copy: new keys label.connect-a-data-source, label.context-platform, label.refresh-page, message.your-platform-is-ready, message.brand-updated-refresh-page; updated message.welcome-screen-message, message.take-quick-product-tour, message.look-like-upgraded-om; removed the now-unused message.hi-user-welcome-to. All 20 locales carry translations.
  • The first-login rule moves from MyDataPage into useFirstLoginWelcome (unchanged: once per user via loggedInUsers, only while isWelcomeVisible, never on the tour). WelcomeScreenGate applies it to the AI-mode home by wrapping the /my-data route element, not MyData itself, which the user menu also opens in a modal.
  • Connect a data source goes through useAddServiceAction (the Connections page's own hook): classic opens the database-services wizard (/databaseServices/add-service, as before), AI mode opens every category (/all/add-service), and the button is hidden from users who cannot create a service.
  • Leaving the AI-mode home dismisses the welcome screen: that route is kept alive, so the hook also closes it when the route turns hidden, and both actions close it before navigating.
  • The close button stays (top-right); downstream e2e helpers dismiss the welcome screen through welcome-screen-close-btn.

Tests:

Use cases covered

  • First login on the home route — classic and AI mode — shows the welcome screen; it can be closed; Connect a data source opens /databaseServices/add-service; Take a product tour opens /tour.
  • A chunk-load error shows the upgrade screen; Refresh page reloads; any other error still shows the 500 fallback.
  • Light and dark themes pick the matching illustration.

Unit tests

  • WelcomScreen.test.tsx (render, close, classic vs AI add-service category, hidden without create permission, both actions close first), WelcomeScreenGate.test.tsx (first-time user shown and remembered, closed → home, hidden kept-alive route → home on return, returning user, tour, switched off) and ErrorFallback.test.tsx (upgrade screen for ChunkLoadError and the Vite/Safari dynamic-import failures, Refresh page → navigate(0), the 500 fallback + Home → resetErrorBoundary, light/dark artwork). With MyDataPage and every personal-space suite: 195 suites, 1804 tests passed, 0 failed.
  • Coverage %: not measured.

Backend integration tests

  • Not applicable (no backend API changes). make java_affected: No Java tests are impacted by this change.

Ingestion integration tests

  • Not applicable (no ingestion changes).

Playwright (UI) tests

  • New playwright/e2e/Features/WelcomeScreen.spec.ts (classic: shown once, close → landing page, not shown again after reload, Connect → /databaseServices/add-service, tour → /tour; AI mode: shown on the home, Connect → /all/add-service, back to the kept-alive home without the welcome screen).
  • .github/playwright/impact-map.json: the welcome/upgrade sources map to WelcomeScreen.spec.ts and AppMode/AppModeAiPersonaLandsAtRoot.spec.ts (the AI landing route the gate wraps). The earlier entry pointed at Flow/Tour.spec.ts, which main deleted in Fixes #35541: Remove the Tour spec broken by the new landing page #35504.

Run locally against the OSS UI dev server on a local server (yarn lint:playwright 0 errors, no findings in the new spec):

  • WelcomeScreen.spec.ts --repeat-each=3 --retries=0: 12/12 passed (4 tests × 3).
  • AppMode/AppModeAiPersonaLandsAtRoot.spec.ts --retries=0: 1/1 passed.
  • Not run: the other 25 planner-selected specs (canary/smoke and the activity-feed specs mapped to components/MyData/**); the merge queue runs the full suite.

Checkstyle

  • make ui-checkstyle-changed: tw-guard "No new Antd or raw-SVG imports", token audit "No hardcoded-value errors", ESLint 0 errors (1 pre-existing react-hooks/exhaustive-deps warning in MyDataPage).
  • yarn build && yarn bundle:runtime: "Bundle runtime check passed: 150 route chunks load with no unexpected undefined exports." The first CI run of this check timed out navigating to /signin (30s) before checking any route.

Manual testing performed

  1. OSS UI dev server (yarn start) against a local server on :8585, signed in as admin.
  2. Cleared loggedInUsers and opened /my-data → welcome screen, light and dark. Classic mode, OSS and Collate: Connect a data source → /databaseServices/add-service, Take a product tour → /tour (clicked in the browser). AI mode is covered by WelcomeScreen.spec.ts (above).
  3. Blocked a lazy page module and navigated to it → upgrade screen, light and dark; the title stays on one line.
  4. Checked the computed glow gradient and the theme-specific image src in the browser.

UI screen recording:

Light Dark
Welcome
Upgrade

Captured at 1440×900 from the UI dev server against a local server, signed in as admin. Dark mode is normally AI-mode only (classic pins light), so the dark captures lift that pin in the browser for preview; the dev server also needs the production BRAND_NAME applied in the browser to show the right brand name.

Screen.Recording.2026-10-16.at.10.06.56.PM.mov

Checklist:

  • I have read the CONTRIBUTING document.
  • My PR title is Fixes <issue-number>: <short explanation>
  • My PR is linked to a GitHub issue via Fixes #<issue-number> above.
  • I have commented on my code, particularly in hard-to-understand areas.
  • For JSON Schema changes: not applicable.
  • For a UI feature or feature task: recording not yet made (see above).
  • I have added tests (unit / integration / Playwright as applicable) and listed them above.
  • Decision check: no decision record — the brand hooks follow the existing BrandClassBase override pattern.

Companion PR

Collate: open-metadata/openmetadata-collate#7548

🤖 Generated with Claude Code


Summary by Gitar

  • Behavior change:
    • In AI mode, Connect a data source opens /all/add-service across all categories, while classic mode still opens database services
  • AI-mode home:
    • Shows the first-login welcome screen on the AI-mode home route, once per user via WelcomeScreenGate

This will update automatically on new commits.

RetriggerView in GreptileConfidence Score: 4/5

The previous findings are addressed, but the upgrade screen must follow the repository’s shared-surface requirement before merging.

Findings

  1. P2 Layout boxes have backgrounds ▶

Summary

Redesigns the welcome and upgrade screens with theme-specific artwork and translated copy.

  • The welcome screen greets first-time users and helps them choose a next step.
  • Chunk-load failures now show a centered upgrade card with a refresh button.

Reviews (4) · Last reviewed commit: "chore(playwright): auto-refresh impact-m..." · Reviewed by Greptile

Welcome screen and the post-deploy upgrade screen (chunk-load error
fallback) now follow the 2.0 Figma designs (node 15445-4015, the
"Center-Aligned" row): new isometric illustrations with light and dark
variants, "Your {{platform}} is ready" headline, Connect a data source /
Take a product tour actions, and a brand-coloured bottom glow.

BrandClassBase gains getWelcomeScreenImg(theme), getUpgradeScreenImg(theme)
and getPlatformName() so a downstream build can swap the artwork and the
platform name. ErrorFallback reads the theme from the root element's
dark-mode class because the boundary wraps App and so sits outside
ThemeProvider (useTheme there throws and blanks the page).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added safe to test Add this label to run secure Github workflows on PRs UI UI specific issues labels Oct 16, 2026
…Fallback

assets/svg is reserved for icons (tw-guard blocks new files there); these
are illustrations, so they live in assets/img beside the old welcome PNG.
Adds ErrorFallback.test.tsx for the chunk-load upgrade screen, the 500
fallback and the theme-specific artwork, and switches the upgrade page
and card to the standard bg-secondary / bg-surface tokens so dark mode
needs no overrides.
…screen

Classic keeps the database-services entry point; AI mode's Connections
opens on the 'all' sentinel. Routing goes through ConnectionsRouterClassBase
so a downstream build that embeds Connections resolves its own path.
@chirag-madlani
chirag-madlani marked this pull request as ready for review October 16, 2026 16:42
Copilot AI balanced review requested due to automatic review settings October 16, 2026 16:42
@github-actions

Copy link
Copy Markdown
Contributor

❌ PR checklist incomplete

This PR cannot be merged until the following are addressed on its linked issue:

  • Linked issue open-metadata/openmetadata-collate#7547 does not exist or is not accessible.

The fields live on the linked issue in the Shipping project (open the issue → right sidebar → Projects). After you set them, re-run this check (or push a commit) — issue/project changes do not re-trigger it automatically.

Maintainers can bypass this check by adding the skip-pr-checks label.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions

Copy link
Copy Markdown
Contributor

🔄 Playwright impact map auto-refreshed

This PR touched specs or UI source that changed the source→spec routing map. I regenerated .github/playwright/impact-map.generated.json and pushed the diff to this branch.

- source entries: 937 → 938
- 1 added, 0 removed, 11 changed spec-list

New source→spec entries:
  openmetadata-ui/src/main/resources/ui/src/components/Database/Profiler/TableProfiler/QualityTab/QualityTab.component.tsx

Entries whose spec list changed:
  openmetadata-ui/src/main/resources/ui/playwright/e2e/fixtures/pages.ts
  openmetadata-ui/src/main/resources/ui/playwright/support/entity/TableClass.ts
  openmetadata-ui/src/main/resources/ui/playwright/support/entity/service/DatabaseServiceClass.ts
  openmetadata-ui/src/main/resources/ui/playwright/utils/admin.ts
  openmetadata-ui/src/main/resources/ui/playwright/utils/apiResponse.ts
  openmetadata-ui/src/main/resources/ui/playwright/utils/common.ts
  openmetadata-ui/src/main/resources/ui/playwright/utils/entity.ts
  openmetadata-ui/src/main/resources/ui/playwright/utils/scopedLocators.ts
  openmetadata-ui/src/main/resources/ui/playwright/utils/testCases.ts
  openmetadata-ui/src/main/resources/ui/playwright/utils/waitHelpers.ts
  … and 1 more

What is this file? It is the auto-generated half of Playwright's PR planner. It routes "if source X changes, run specs Y" by walking spec imports and cross-referencing getByTestId strings. Hand-authored routing in impact-map.json always wins on conflict.

What if I want to regenerate locally instead? Run this before pushing your next change to skip the bot commit:

python3 .github/scripts/generate_playwright_impact_map.py
git add .github/playwright/impact-map.generated.json
git commit --amend --no-edit  # or a separate commit

Copilot AI balanced review requested due to automatic review settings October 16, 2026 16:42

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@chirag-madlani chirag-madlani added the skip-pr-checks Bypass PR metadata validation check label Oct 16, 2026
Comment thread .github/playwright/impact-map.json Outdated
@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Jest test Coverage

UI tests summary

Lines Statements Branches Functions
Coverage: 78%
78.5% (129248/164637) 65.26% (82248/126026) 66.58% (27453/41229)

@chirag-madlani
chirag-madlani added this pull request to the merge queue Oct 17, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 17, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🚦 Removed from the merge queue — failed_checks (2026-10-17T05:51:43Z)

Blocked the queue: ui-checkstyle

The rule moves from MyDataPage into useFirstLoginWelcome so both homes
apply it the same way: once per user, only while isWelcomeVisible is on,
never on the tour. WelcomeScreenGate wraps the AI-mode /my-data route
element (not MyData itself, which the user menu also opens in a modal).
Copilot AI balanced review requested due to automatic review settings October 17, 2026 07:45

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

main added it-it.json after this branch's locale changes, so the merged
tree failed the I18n Sync check.
Copilot AI balanced review requested due to automatic review settings October 17, 2026 07:54

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Comment thread .github/playwright/impact-map.json Outdated
@chirag-madlani
chirag-madlani added this pull request to the merge queue Oct 17, 2026
@chirag-madlani
chirag-madlani removed this pull request from the merge queue due to a manual request Oct 17, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🚦 Removed from the merge queue — manual (2026-10-17T08:21:30Z)

No failing check on merge-queue commit a1f5071 — invalidated by an entry ahead in the queue, or a required check timed out.

- Dismiss the welcome screen when its route is hidden and before either
  action navigates: the AI-mode home is kept alive, so it came back after
  Connect, the tour or any sidebar trip.
- Route Connect a data source through useAddServiceAction, so the button
  is hidden from users who cannot create a service.
- Replace raw pixel sizes with design tokens; let the actions wrap; keep the
  upgrade card's 636px minimum to md and up.
- Move the glow gradients into WelcomeScreen.constants.ts.
- Map the welcome/upgrade sources to a new WelcomeScreen.spec.ts and the AI
  landing spec instead of Tour.spec.ts, which main deleted in #35504.
Copilot AI balanced review requested due to automatic review settings October 17, 2026 08:43

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions

Copy link
Copy Markdown
Contributor

🔄 Playwright impact map auto-refreshed

This PR touched specs or UI source that changed the source→spec routing map. I regenerated .github/playwright/impact-map.generated.json and pushed the diff to this branch.

- source entries: 933 → 935
- 2 added, 0 removed, 7 changed spec-list

New source→spec entries:
  openmetadata-ui/src/main/resources/ui/src/components/MyData/WelcomeScreen/WelcomeScreen.component.tsx
  openmetadata-ui/src/main/resources/ui/src/pages/MyDataPage/MyDataPage.component.tsx

Entries whose spec list changed:
  openmetadata-ui/src/main/resources/ui/playwright/constant/config.ts
  openmetadata-ui/src/main/resources/ui/playwright/e2e/Utils/appMode.ts
  openmetadata-ui/src/main/resources/ui/playwright/e2e/fixtures/pages.ts
  openmetadata-ui/src/main/resources/ui/playwright/utils/common.ts
  openmetadata-ui/src/main/resources/ui/playwright/utils/entity.ts
  openmetadata-ui/src/main/resources/ui/src/components/MyData/HomeLandingPage/HomeLandingPage.tsx
  openmetadata-ui/src/main/resources/ui/src/generated/entity/data/table.ts

What is this file? It is the auto-generated half of Playwright's PR planner. It routes "if source X changes, run specs Y" by walking spec imports and cross-referencing getByTestId strings. Hand-authored routing in impact-map.json always wins on conflict.

What if I want to regenerate locally instead? Run this before pushing your next change to skip the bot commit:

python3 .github/scripts/generate_playwright_impact_map.py
git add .github/playwright/impact-map.generated.json
git commit --amend --no-edit  # or a separate commit

Copilot AI balanced review requested due to automatic review settings October 17, 2026 08:43

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@gitar-bot

gitar-bot Bot commented Oct 17, 2026

Copy link
Copy Markdown
Code Review ✅ Approved 3 closed / 3 findings

🟡 Medium risk · Applying first-login gating to both classic and AI homes changes onboarding and navigation; a persistence or route mismatch could reopen the welcome screen unexpectedly.

Redesigns the first-login welcome screen and post-deploy upgrade screen to the 2.0 designs, with light and dark artwork, theme tokens, and brand-overridable platform name and illustrations. Resolved this session: the upgrade screen now has test coverage, the kept-alive /my-data route dismisses the welcome screen after navigating away, and the impact map points at the existing WelcomeScreen.spec.ts instead of the deleted Flow/Tour.spec.ts. No open issues found.

✅ 3 closed
✅ Quality: Upgrade screen has no tests, though the PR says unit tests cover it

📄 openmetadata-ui/src/main/resources/ui/src/components/common/ErrorBoundary/ErrorFallback.tsx:27-41 📄 .github/playwright/impact-map.json:1088
The new impact-map entry says "no spec forces a chunk-load failure, so the upgrade screen is verified by unit tests", and the PR description lists "A chunk-load error shows the upgrade screen; Refresh page reloads; any other error still shows the 500 fallback" as a covered use case. But src/components/common/ErrorBoundary/ contains only ErrorBoundary.tsx and ErrorFallback.tsx, and no *.test.tsx file anywhere references ErrorFallback, upgrade-screen or look-like-upgraded-om. That leaves several things in this rewrite untested: the chunk-load detection, the new early return for non-chunk errors, the navigate(0) refresh, and picking the image from the dark-mode class. The impact map also routes this directory only to Tour.spec.ts, which never reaches the fallback, so a regression here would pass CI.

Fix: add ErrorFallback.test.tsx. It should cover (a) an error named ChunkLoadError (and a Vite "Failed to fetch dynamically imported module" message), which renders upgrade-screen, where clicking refresh-page-btn calls navigate(0); (b) a generic error, which renders the ERROR500 title and calls resetErrorBoundary on Home; (c) adding dark-mode to document.documentElement, which selects the dark upgrade image.

✅ Bug: Kept-alive /my-data route keeps the welcome screen after navigating away

📄 openmetadata-ui/src/main/resources/ui/src/components/MyData/WelcomeScreen/WelcomeScreenGate.tsx:21-33 📄 openmetadata-ui/src/main/resources/ui/src/hooks/useFirstLoginWelcome.ts:54-60 📄 openmetadata-ui/src/main/resources/ui/src/components/discovery/personal-space/personalSpace.module.tsx:44-50
In AI mode /my-data is a static path, so KeepAliveRoutes treats it as cacheable. After you navigate away, the route stays mounted and is only hidden with clipPath/visibility. useFirstLoginWelcome hides the screen in exactly two places: the effect cleanup on unmount, and closeWelcome. Neither runs here, because the route never unmounts and Connect a data source and Take a product tour call navigate(...) without calling onClose (WelcomeScreen.component.tsx:112,129). So a first-time user who clicks either action, or uses the sidebar, sees the welcome screen again on returning to / or /my-data. The gate's doc comment says it shows "until the user closes it or navigates away", which is not true under keep-alive. The classic MyDataPage does not have this problem because it unmounts on navigation. Fix: close the screen when the route stops being visible, e.g. with useIsRouteVisible() from RouteVisibilityProvider. Add a gate test for this case.

✅ Bug: Impact map points at Flow/Tour.spec.ts, which does not exist

📄 .github/playwright/impact-map.json:1107 📄 .github/playwright/impact-map.json:1120-1123
The new entry selects playwright/e2e/Flow/Tour.spec.ts, and its _comment says that spec "covers the welcome screen's gating on the classic home". No Tour.spec.ts exists anywhere in the tree, and git history has never had one. No Playwright spec references welcome-screen-close-btn, /tour or the welcome copy either. select_playwright_tests.py does not check that a mapped spec exists, so any change to these sources passes a missing file to npx playwright test. The README says a selected spec that produces no results is listed as "not run" and fails the local run. That makes make playwright_affected fail for this PR and later ones, and the welcome screen still has no e2e coverage, despite what the comment and PR description say. The other spec, AppModeAiPersonaLandsAtRoot.spec.ts, checks that AI users land at /, not on the gated /my-data route, so it does not exercise the gate either.

Fix: drop the missing spec and correct the comment. Or add a real spec that signs in with suppressWelcomeScreen: false and checks the welcome screen, then map that spec here.

Verification

Rules No rules evaluated

Functional validation Not enabled

Set up

Auto-approval Not enabled

Set up

For more verification details, comment gitar display:verbose.

Options

Display: compact → Showing compact verification results.

Comment with these commands to change the behavior for this request:

Compact
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Powered by Gitar — free for open source

</Typography>
<Box
align="center"
className="tw:w-full tw:max-w-full tw:rounded-3xl tw:md:w-fit tw:md:min-w-159 tw:bg-surface tw:px-9 tw:py-17.5 tw:text-center"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Layout boxes have backgrounds

The upgrade screen gives both Box elements background colors. The styling guide says Box is for layout only and must stay transparent. Use a surface element for the page background and a Card for the upgrade panel. This repository requirement must be satisfied before merging.

Context Used: AGENTS.md (source)

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ UI Checkstyle passed — lint findings in changed files

🔍 ESLint findings in this PR's files — 0 error(s), 1 warning(s)

Errors block the build. Warnings do not yet — they are rules whose backlog is still
being worked down, listed so this PR does not add to it. See docs/ui-code-quality-gate.md.

0 error(s), 1 warning(s) across 1 changed file(s).

Count Rule
1 react-hooks/exhaustive-deps
All findings
Location Rule Message
🟡 src/hooks/useFirstLoginWelcome.ts:62:6 react-hooks/exhaustive-deps React Hook useEffect has missing dependencies: 'isTourPage', 'isWelcomeVisible', 'updateWelcome', and 'usernameExistsInCookie'. Either include them or remove th

Fix locally (fast - only checks files changed in this branch):

make ui-checkstyle-changed

@sonarqubecloud

Copy link
Copy Markdown

@chirag-madlani
chirag-madlani added this pull request to the merge queue Oct 17, 2026
Merged via the queue into main with commit ae962f0 Oct 17, 2026
82 checks passed
@chirag-madlani
chirag-madlani deleted the chirag-madlani/welcome-upgrade-screens-2.0 branch October 17, 2026 10:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

safe to test Add this label to run secure Github workflows on PRs skip-pr-checks Bypass PR metadata validation check UI UI specific issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants