Introduce React shell with incremental CLJS migration strategy#1427
Merged
Conversation
Contributor
Migration Safety AnalysisNo database migrations were changed in this PR. Safe to deploy to sandbox. |
Contributor
|
All contributors have signed the CLA ✍️ ✅ |
Contributor
|
✅ Build Completed with Success, Version=1427.0.0-6e7dcbf |
Contributor
|
✅ Build Completed with Success, Version=1427.0.0-1ef994e |
1ef994e to
f505277
Compare
Contributor
|
✅ Build Completed with Success, Version=1427.0.0-f505277 |
mtmr0x
approved these changes
May 11, 2026
luanlorenzo
approved these changes
May 11, 2026
p3rotto
approved these changes
May 12, 2026
f505277 to
af094b8
Compare
Contributor
|
✅ Build Completed with Success, Version=1427.0.0-af094b8 |
Rebuilds the webapp_v2 React shell branch on top of current main, replacing the previous branch which had unrelated history due to the dev/main divergence. Changes: - webapp_v2/: new React shell (Vite, Mantine v8, Zustand, React Router v7) wrapping the legacy CLJS app; migrated pages (Agents, Settings, Infrastructure, License Management, etc.), CommandPalette, Sidebar. - webapp/: CLJS-side adjustments to interoperate with the React shell (loading screens, version tracking, route bridge). - Makefile + scripts/dev/build-webapp.sh: build both CLJS and React bundles and merge them into the gateway UI tarball. - CLAUDE.md: monorepo + frontend migration guidelines. No backend changes.
…idebar visibility
6acf1f8 to
442abd5
Compare
Contributor
|
✅ Build Completed with Success, Version=1427.0.0-6acf1f8 |
Contributor
|
✅ Build Completed with Success, Version=1427.0.0-442abd5 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📝 Description
This PR introduces
webapp_v2, a React shell that wraps the existing ClojureScript frontend and serves as the foundation for an incremental, page-by-page migration.The strategy is simple: React owns the global chrome (Sidebar, Command Palette, auth flows) while ClojureScript continues rendering all non-migrated pages inside a
<ClojureApp>bridge component. Pages are cut over one route at a time — no big-bang rewrite, nothing breaks during the transition.CLJS and React builds are now bundled together — one build, one deploy artifact.
🚀 Type of Change
📋 Changes Made
webapp_v2/): Vite + React 19 + Mantine v8 + Zustand + React Router v7localStorage; suppresses CLJS sidebar viareact-shellflag to avoid double renderinglocalStorage.jwt-token, same keyas the legacy app
window.hoopSetRoute,window.hoopRemount,window.hoopDispatchcontracts to keep React Router and CLJS Pushy router in sync/css/site.cssis disabled on React-only routes and re-enabled whenClojureAppmounts — prevents Tailwind/Radix rulesfrom leaking into React pages
CONTEXT_MIGRATION.md,CLAUDE.md,COMPONENTS.md,MIGRATION_CHECKLIST.md,CLJS_PATTERNS.mdadded to guide ongoing migration work🧪 Testing
Test Configuration:
How to run locally:
Tests performed:
Manual test checklist:
📸 Screenshots
https://www.tella.tv/video/my-video-exed
✅ Checklist
📄 Additional Notes
Attention infra/build reviewers: the most impactful change here is that the CLJS and React builds are now packaged together. The build pipeline, Docker images, and deploy process are all touched — please review those changes carefully and test the full build end-to-end.
Migration roadmap (next pages): Dashboard → Connections → Resources → Features (Access Control, Runbooks, Data Masking) → Settings. Each migration follows the same pattern: add a in Router.jsx above the /* catch-all, build the React page, then delete the corresponding panel from webapp/src/webapp/app.cljs.
The reference implementation for how a migrated page should look is webapp_v2/src/pages/Agents/.
UPDATE