UN-3185 [MISC] : replace ESLint and Prettier with Biome for frontend#1771
Merged
jaseemjaskp merged 2 commits intofeat/vitefrom Feb 3, 2026
Merged
UN-3185 [MISC] : replace ESLint and Prettier with Biome for frontend#1771jaseemjaskp merged 2 commits intofeat/vitefrom
jaseemjaskp merged 2 commits intofeat/vitefrom
Conversation
… formatting - Add @biomejs/biome v2.3.13 as dev dependency - Create biome.json with migrated ESLint rules and formatter config - Update package.json scripts (lint, format, check) to use Biome - Remove ESLint and Prettier dependencies and .eslintrc.json - Add Biome pre-commit hook to .pre-commit-config.yaml - Fix undeclared sessionDetails variable in HeaderTitle.jsx - Fix Error() and Array() to use new keyword - Fix prismjs import order in CombinedOutput.jsx - Reformat all frontend source files with Biome
Contributor
|
Important Review skippedToo many files! This PR contains 236 files, which is 86 over the limit of 150. You can disable this status message by setting the
✨ Finishing touches🧪 Generate unit tests (beta)
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. Comment |
- Add biome-check to ci.skip list since pre-commit.ci lacks reliable npm registry access for language:system hooks - Add --files-ignore-unknown=true and --no-errors-on-unmatched flags to the biome-check hook entry for robustness
Contributor
Test ResultsSummary
Runner Tests - Full Report
SDK1 Tests - Full Report
|
|
10 tasks
athul-rs
approved these changes
Feb 3, 2026
Contributor
athul-rs
left a comment
There was a problem hiding this comment.
LGTM.
Most of the changes are refactoring.
Deepak-Kesavan
added a commit
that referenced
this pull request
Feb 26, 2026
* [FEAT] Migrate frontend from Create React App to Vite Migrate the Unstract frontend build system from Create React App (react-scripts 5.0.1) to Vite 6.0.5 for improved development experience and build performance. Key Changes: - Replace react-scripts with Vite 6.0.5 and @vitejs/plugin-react 4.3.4 - Move index.html from public/ to root directory - Replace setupProxy.js with Vite proxy configuration - Update environment variables from REACT_APP_* to VITE_* prefix - Configure esbuild to handle JSX in .js files - Add comprehensive migration documentation Build Optimizations: - Manual chunk splitting for react, antd, and pdf vendors - Dependency pre-bundling for faster cold starts - HMR with polling enabled for Docker volume compatibility Documentation: - Add VITE_MIGRATION.md with comprehensive migration guide - Update README.md with Vite-specific configuration and commands - Document environment variable migration and troubleshooting Performance Benefits: - Development server startup: 10-30s → 1-2s - Hot Module Replacement: 2-5s → <1s - Production build time: 60-120s → 30-60s 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix(frontend): Restore vite-plugin-svgr for SVG-as-React-component imports The codebase extensively uses SVG imports with ?react query syntax (39 imports in src/assets/index.js). vite-plugin-svgr is required to transform these imports into React components. Changes: - Add vite-plugin-svgr@^4.5.0 to devDependencies - Restore svgr plugin in vite.config.js - Add vite-plugin-svgr type references in vite-env.d.ts - Remove conflicting public/index.html from CRA migration Fixes white screen issue caused by SVG components failing to render. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * docs(frontend): Fix HMR configuration example to match actual implementation The README documentation showed incorrect HMR clientPort configuration using process.env instead of the env variable from loadEnv. Changes: - Update clientPort example to use env.WDS_SOCKET_PORT (not process.env) - Change from falsy coalescing to explicit conditional check - Ensure documentation matches vite.config.js implementation Addresses CodeRabbit feedback on PR #1607. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * docs(frontend): Fix proxy configuration example to match actual implementation The README proxy configuration example incorrectly used process.env instead of the env variable from loadEnv. Changes: - Update proxy target to use env.VITE_BACKEND_URL (not process.env) - Ensure documentation matches vite.config.js implementation - Maintain consistency across all Vite configuration examples Addresses CodeRabbit critical feedback on PR #1607. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor: replace CommonJS require() with ES dynamic import() for Vite compatibility Converted all require() calls in frontend/src to use try/catch with top-level await import() to support Vite's native ES module system. Plugin imports remain optional via try/catch to preserve OSS compatibility where plugin files are not present. Special cases: - Pipelines.jsx: static import (non-plugin, always available) - DsSettingsCard.jsx: async IIFE inside useEffect * fix: correct PropTypes for CombinedOutput and JsonViewBody - Make selectedPrompts optional in CombinedOutput since ToolsMain does not pass it and the component handles undefined - Change llmProfiles PropType from string to array in JsonViewBody to match the actual data type * fix: correct PropTypes warnings across frontend components - Change coverageCountData from PropTypes.object to PropTypes.array in PromptCardWrapper, PromptCard, and PromptCardItems - Fix PropTypes.text (undefined) to PropTypes.string for promptKey and promptText in PromptCardItems - Change highlightData to PropTypes.oneOfType([object, array]) in DisplayPromptResult - Change apiService from PropTypes.func to PropTypes.object in ManageKeys - Change connMode from required to optional in ConfigureConnectorModal - Change type from required to optional in ListOfSources * fix: add Rollup plugin to resolve missing optional plugin imports Add optionalPluginImports() Rollup plugin to vite.config.js that resolves missing plugin paths to an empty module at build time instead of failing. This allows the existing try/catch dynamic import pattern to work during production builds when plugin files are absent. * fix: set build target to esnext for top-level await support The codebase uses top-level await for optional plugin imports, which requires es2022+. Vite's default target (es2020) does not support this, causing the build to fail. * feat: replace npm with bun for frontend package management (#1770) - Switch Dockerfile base image from node:20-alpine to oven/bun:1-alpine - Replace npm install/run commands with bun equivalents in Dockerfile - Remove engines.npm constraint, update engines.node to >=18.0.0 - Replace npm run with bun run in lint:all script - Delete package-lock.json, add bun.lock * fix: correct COPY path in frontend.Dockerfile for runtime config script * UN-3185 [MISC] : replace ESLint and Prettier with Biome for frontend (#1771) * feat: replace ESLint and Prettier with Biome for frontend linting and formatting - Add @biomejs/biome v2.3.13 as dev dependency - Create biome.json with migrated ESLint rules and formatter config - Update package.json scripts (lint, format, check) to use Biome - Remove ESLint and Prettier dependencies and .eslintrc.json - Add Biome pre-commit hook to .pre-commit-config.yaml - Fix undeclared sessionDetails variable in HeaderTitle.jsx - Fix Error() and Array() to use new keyword - Fix prismjs import order in CombinedOutput.jsx - Reformat all frontend source files with Biome * fix: skip biome-check in pre-commit CI and add robust flags - Add biome-check to ci.skip list since pre-commit.ci lacks reliable npm registry access for language:system hooks - Add --files-ignore-unknown=true and --no-errors-on-unmatched flags to the biome-check hook entry for robustness * ci: add GitHub Actions workflow for frontend Biome lint checks * ci: pin Bun version to 1.1.38 in frontend lint workflow * ci: add sticky PR comment for frontend lint report * docs: update frontend README for Biome migration - Update Node.js requirement to >= 18.0.0 - Replace ESLint/Prettier with Biome in editor setup - Update linting/formatting commands for Biome - Add biome.json to project structure - Add Biome documentation links to learning resources * docs: add Vite, Bun, and Biome badges to frontend README * docs: add Vite, Bun, and Biome badges to main README * chore(frontend): upgrade to Vite 7 and Vitest 3 - Upgrade vite from ^6.0.5 to ^7.0.0 (installed 7.3.1) - Upgrade vitest from ^2.1.8 to ^3.2.0 (installed 3.2.4) - Upgrade @vitejs/plugin-react from ^4.3.4 to ^4.4.0 - Update Node.js engine requirement from >=18.0.0 to >=20.19.0 - Modernize __dirname to import.meta.dirname in vite.config.js * docs(frontend): update README for Vite 7 upgrade - Update Vite badge from 6.x to 7.x - Update Node.js requirement from 18.0.0 to 20.19.0 * docs(frontend): update README to use Bun instead of npm - Update prerequisites to list Bun as primary package manager - Replace all npm commands with bun equivalents - Update install, dev, build, test, and lint commands * docs(frontend): update migration note with Vite 7 upgrade date * docs(frontend): update VITE_MIGRATION.md for Vite 7 and Bun - Add Vite 7 upgrade section with version updates and changes - Update all npm commands to use bun - Update package versions to current (Vite 7.3.1, Vitest 3.2.4) - Document Node.js 20.19+ requirement --------- Signed-off-by: Deepak K <89829542+Deepak-Kesavan@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Jaseem Jas <jaseem@zipstack.com> Co-authored-by: Jaseem Jas <89440144+jaseemjaskp@users.noreply.github.com> Co-authored-by: Deepak K <89829542+Deepak-Kesavan@users.noreply.github.com>
Deepak-Kesavan
added a commit
that referenced
this pull request
Feb 26, 2026
… mode (#1786) * [FEAT] Migrate frontend from Create React App to Vite Migrate the Unstract frontend build system from Create React App (react-scripts 5.0.1) to Vite 6.0.5 for improved development experience and build performance. Key Changes: - Replace react-scripts with Vite 6.0.5 and @vitejs/plugin-react 4.3.4 - Move index.html from public/ to root directory - Replace setupProxy.js with Vite proxy configuration - Update environment variables from REACT_APP_* to VITE_* prefix - Configure esbuild to handle JSX in .js files - Add comprehensive migration documentation Build Optimizations: - Manual chunk splitting for react, antd, and pdf vendors - Dependency pre-bundling for faster cold starts - HMR with polling enabled for Docker volume compatibility Documentation: - Add VITE_MIGRATION.md with comprehensive migration guide - Update README.md with Vite-specific configuration and commands - Document environment variable migration and troubleshooting Performance Benefits: - Development server startup: 10-30s → 1-2s - Hot Module Replacement: 2-5s → <1s - Production build time: 60-120s → 30-60s 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix(frontend): Restore vite-plugin-svgr for SVG-as-React-component imports The codebase extensively uses SVG imports with ?react query syntax (39 imports in src/assets/index.js). vite-plugin-svgr is required to transform these imports into React components. Changes: - Add vite-plugin-svgr@^4.5.0 to devDependencies - Restore svgr plugin in vite.config.js - Add vite-plugin-svgr type references in vite-env.d.ts - Remove conflicting public/index.html from CRA migration Fixes white screen issue caused by SVG components failing to render. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * docs(frontend): Fix HMR configuration example to match actual implementation The README documentation showed incorrect HMR clientPort configuration using process.env instead of the env variable from loadEnv. Changes: - Update clientPort example to use env.WDS_SOCKET_PORT (not process.env) - Change from falsy coalescing to explicit conditional check - Ensure documentation matches vite.config.js implementation Addresses CodeRabbit feedback on PR #1607. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * docs(frontend): Fix proxy configuration example to match actual implementation The README proxy configuration example incorrectly used process.env instead of the env variable from loadEnv. Changes: - Update proxy target to use env.VITE_BACKEND_URL (not process.env) - Ensure documentation matches vite.config.js implementation - Maintain consistency across all Vite configuration examples Addresses CodeRabbit critical feedback on PR #1607. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor: replace CommonJS require() with ES dynamic import() for Vite compatibility Converted all require() calls in frontend/src to use try/catch with top-level await import() to support Vite's native ES module system. Plugin imports remain optional via try/catch to preserve OSS compatibility where plugin files are not present. Special cases: - Pipelines.jsx: static import (non-plugin, always available) - DsSettingsCard.jsx: async IIFE inside useEffect * fix: correct PropTypes for CombinedOutput and JsonViewBody - Make selectedPrompts optional in CombinedOutput since ToolsMain does not pass it and the component handles undefined - Change llmProfiles PropType from string to array in JsonViewBody to match the actual data type * fix: correct PropTypes warnings across frontend components - Change coverageCountData from PropTypes.object to PropTypes.array in PromptCardWrapper, PromptCard, and PromptCardItems - Fix PropTypes.text (undefined) to PropTypes.string for promptKey and promptText in PromptCardItems - Change highlightData to PropTypes.oneOfType([object, array]) in DisplayPromptResult - Change apiService from PropTypes.func to PropTypes.object in ManageKeys - Change connMode from required to optional in ConfigureConnectorModal - Change type from required to optional in ListOfSources * fix: add Rollup plugin to resolve missing optional plugin imports Add optionalPluginImports() Rollup plugin to vite.config.js that resolves missing plugin paths to an empty module at build time instead of failing. This allows the existing try/catch dynamic import pattern to work during production builds when plugin files are absent. * fix: set build target to esnext for top-level await support The codebase uses top-level await for optional plugin imports, which requires es2022+. Vite's default target (es2020) does not support this, causing the build to fail. * feat: replace npm with bun for frontend package management (#1770) - Switch Dockerfile base image from node:20-alpine to oven/bun:1-alpine - Replace npm install/run commands with bun equivalents in Dockerfile - Remove engines.npm constraint, update engines.node to >=18.0.0 - Replace npm run with bun run in lint:all script - Delete package-lock.json, add bun.lock * fix: correct COPY path in frontend.Dockerfile for runtime config script * UN-3185 [MISC] : replace ESLint and Prettier with Biome for frontend (#1771) * feat: replace ESLint and Prettier with Biome for frontend linting and formatting - Add @biomejs/biome v2.3.13 as dev dependency - Create biome.json with migrated ESLint rules and formatter config - Update package.json scripts (lint, format, check) to use Biome - Remove ESLint and Prettier dependencies and .eslintrc.json - Add Biome pre-commit hook to .pre-commit-config.yaml - Fix undeclared sessionDetails variable in HeaderTitle.jsx - Fix Error() and Array() to use new keyword - Fix prismjs import order in CombinedOutput.jsx - Reformat all frontend source files with Biome * fix: skip biome-check in pre-commit CI and add robust flags - Add biome-check to ci.skip list since pre-commit.ci lacks reliable npm registry access for language:system hooks - Add --files-ignore-unknown=true and --no-errors-on-unmatched flags to the biome-check hook entry for robustness * ci: add GitHub Actions workflow for frontend Biome lint checks * ci: pin Bun version to 1.1.38 in frontend lint workflow * ci: add sticky PR comment for frontend lint report * docs: update frontend README for Biome migration - Update Node.js requirement to >= 18.0.0 - Replace ESLint/Prettier with Biome in editor setup - Update linting/formatting commands for Biome - Add biome.json to project structure - Add Biome documentation links to learning resources * docs: add Vite, Bun, and Biome badges to frontend README * docs: add Vite, Bun, and Biome badges to main README * chore(frontend): upgrade to Vite 7 and Vitest 3 - Upgrade vite from ^6.0.5 to ^7.0.0 (installed 7.3.1) - Upgrade vitest from ^2.1.8 to ^3.2.0 (installed 3.2.4) - Upgrade @vitejs/plugin-react from ^4.3.4 to ^4.4.0 - Update Node.js engine requirement from >=18.0.0 to >=20.19.0 - Modernize __dirname to import.meta.dirname in vite.config.js * docs(frontend): update README for Vite 7 upgrade - Update Vite badge from 6.x to 7.x - Update Node.js requirement from 18.0.0 to 20.19.0 * docs(frontend): update README to use Bun instead of npm - Update prerequisites to list Bun as primary package manager - Replace all npm commands with bun equivalents - Update install, dev, build, test, and lint commands * docs(frontend): update migration note with Vite 7 upgrade date * docs(frontend): update VITE_MIGRATION.md for Vite 7 and Bun - Add Vite 7 upgrade section with version updates and changes - Update all npm commands to use bun - Update package versions to current (Vite 7.3.1, Vitest 3.2.4) - Document Node.js 20.19+ requirement * fix(frontend): show API Hub branding on verticals pages in incognito mode When visiting /verticals/* in incognito, selectedProduct from localStorage is null, causing isUnstract to be true and showing the Unstract logo and setup incomplete banner instead of the API Hub layout. Add URL-based fallback to detect verticals route and set the effective product accordingly. UN-3219 --------- Signed-off-by: Jaseem Jas <89440144+jaseemjaskp@users.noreply.github.com> Signed-off-by: Deepak K <89829542+Deepak-Kesavan@users.noreply.github.com> Co-authored-by: Hari John Kuriakose <hari@zipstack.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Deepak K <89829542+Deepak-Kesavan@users.noreply.github.com>
vishnuszipstack
added a commit
that referenced
this pull request
Feb 27, 2026
…1807) * [FEAT] Migrate frontend from Create React App to Vite Migrate the Unstract frontend build system from Create React App (react-scripts 5.0.1) to Vite 6.0.5 for improved development experience and build performance. Key Changes: - Replace react-scripts with Vite 6.0.5 and @vitejs/plugin-react 4.3.4 - Move index.html from public/ to root directory - Replace setupProxy.js with Vite proxy configuration - Update environment variables from REACT_APP_* to VITE_* prefix - Configure esbuild to handle JSX in .js files - Add comprehensive migration documentation Build Optimizations: - Manual chunk splitting for react, antd, and pdf vendors - Dependency pre-bundling for faster cold starts - HMR with polling enabled for Docker volume compatibility Documentation: - Add VITE_MIGRATION.md with comprehensive migration guide - Update README.md with Vite-specific configuration and commands - Document environment variable migration and troubleshooting Performance Benefits: - Development server startup: 10-30s → 1-2s - Hot Module Replacement: 2-5s → <1s - Production build time: 60-120s → 30-60s 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix(frontend): Restore vite-plugin-svgr for SVG-as-React-component imports The codebase extensively uses SVG imports with ?react query syntax (39 imports in src/assets/index.js). vite-plugin-svgr is required to transform these imports into React components. Changes: - Add vite-plugin-svgr@^4.5.0 to devDependencies - Restore svgr plugin in vite.config.js - Add vite-plugin-svgr type references in vite-env.d.ts - Remove conflicting public/index.html from CRA migration Fixes white screen issue caused by SVG components failing to render. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * docs(frontend): Fix HMR configuration example to match actual implementation The README documentation showed incorrect HMR clientPort configuration using process.env instead of the env variable from loadEnv. Changes: - Update clientPort example to use env.WDS_SOCKET_PORT (not process.env) - Change from falsy coalescing to explicit conditional check - Ensure documentation matches vite.config.js implementation Addresses CodeRabbit feedback on PR #1607. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * docs(frontend): Fix proxy configuration example to match actual implementation The README proxy configuration example incorrectly used process.env instead of the env variable from loadEnv. Changes: - Update proxy target to use env.VITE_BACKEND_URL (not process.env) - Ensure documentation matches vite.config.js implementation - Maintain consistency across all Vite configuration examples Addresses CodeRabbit critical feedback on PR #1607. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor: replace CommonJS require() with ES dynamic import() for Vite compatibility Converted all require() calls in frontend/src to use try/catch with top-level await import() to support Vite's native ES module system. Plugin imports remain optional via try/catch to preserve OSS compatibility where plugin files are not present. Special cases: - Pipelines.jsx: static import (non-plugin, always available) - DsSettingsCard.jsx: async IIFE inside useEffect * fix: correct PropTypes for CombinedOutput and JsonViewBody - Make selectedPrompts optional in CombinedOutput since ToolsMain does not pass it and the component handles undefined - Change llmProfiles PropType from string to array in JsonViewBody to match the actual data type * fix: correct PropTypes warnings across frontend components - Change coverageCountData from PropTypes.object to PropTypes.array in PromptCardWrapper, PromptCard, and PromptCardItems - Fix PropTypes.text (undefined) to PropTypes.string for promptKey and promptText in PromptCardItems - Change highlightData to PropTypes.oneOfType([object, array]) in DisplayPromptResult - Change apiService from PropTypes.func to PropTypes.object in ManageKeys - Change connMode from required to optional in ConfigureConnectorModal - Change type from required to optional in ListOfSources * fix: add Rollup plugin to resolve missing optional plugin imports Add optionalPluginImports() Rollup plugin to vite.config.js that resolves missing plugin paths to an empty module at build time instead of failing. This allows the existing try/catch dynamic import pattern to work during production builds when plugin files are absent. * fix: set build target to esnext for top-level await support The codebase uses top-level await for optional plugin imports, which requires es2022+. Vite's default target (es2020) does not support this, causing the build to fail. * feat: replace npm with bun for frontend package management (#1770) - Switch Dockerfile base image from node:20-alpine to oven/bun:1-alpine - Replace npm install/run commands with bun equivalents in Dockerfile - Remove engines.npm constraint, update engines.node to >=18.0.0 - Replace npm run with bun run in lint:all script - Delete package-lock.json, add bun.lock * fix: correct COPY path in frontend.Dockerfile for runtime config script * UN-3185 [MISC] : replace ESLint and Prettier with Biome for frontend (#1771) * feat: replace ESLint and Prettier with Biome for frontend linting and formatting - Add @biomejs/biome v2.3.13 as dev dependency - Create biome.json with migrated ESLint rules and formatter config - Update package.json scripts (lint, format, check) to use Biome - Remove ESLint and Prettier dependencies and .eslintrc.json - Add Biome pre-commit hook to .pre-commit-config.yaml - Fix undeclared sessionDetails variable in HeaderTitle.jsx - Fix Error() and Array() to use new keyword - Fix prismjs import order in CombinedOutput.jsx - Reformat all frontend source files with Biome * fix: skip biome-check in pre-commit CI and add robust flags - Add biome-check to ci.skip list since pre-commit.ci lacks reliable npm registry access for language:system hooks - Add --files-ignore-unknown=true and --no-errors-on-unmatched flags to the biome-check hook entry for robustness * ci: add GitHub Actions workflow for frontend Biome lint checks * ci: pin Bun version to 1.1.38 in frontend lint workflow * ci: add sticky PR comment for frontend lint report * docs: update frontend README for Biome migration - Update Node.js requirement to >= 18.0.0 - Replace ESLint/Prettier with Biome in editor setup - Update linting/formatting commands for Biome - Add biome.json to project structure - Add Biome documentation links to learning resources * docs: add Vite, Bun, and Biome badges to frontend README * docs: add Vite, Bun, and Biome badges to main README * chore(frontend): upgrade to Vite 7 and Vitest 3 - Upgrade vite from ^6.0.5 to ^7.0.0 (installed 7.3.1) - Upgrade vitest from ^2.1.8 to ^3.2.0 (installed 3.2.4) - Upgrade @vitejs/plugin-react from ^4.3.4 to ^4.4.0 - Update Node.js engine requirement from >=18.0.0 to >=20.19.0 - Modernize __dirname to import.meta.dirname in vite.config.js * docs(frontend): update README for Vite 7 upgrade - Update Vite badge from 6.x to 7.x - Update Node.js requirement from 18.0.0 to 20.19.0 * docs(frontend): update README to use Bun instead of npm - Update prerequisites to list Bun as primary package manager - Replace all npm commands with bun equivalents - Update install, dev, build, test, and lint commands * docs(frontend): update migration note with Vite 7 upgrade date * docs(frontend): update VITE_MIGRATION.md for Vite 7 and Bun - Add Vite 7 upgrade section with version updates and changes - Update all npm commands to use bun - Update package versions to current (Vite 7.3.1, Vitest 3.2.4) - Document Node.js 20.19+ requirement * fix(frontend): show API Hub branding on verticals pages in incognito mode When visiting /verticals/* in incognito, selectedProduct from localStorage is null, causing isUnstract to be true and showing the Unstract logo and setup incomplete banner instead of the API Hub layout. Add URL-based fallback to detect verticals route and set the effective product accordingly. UN-3219 * feat(frontend): redesign landing page with light-themed right panels Redesign all three landing page variants (default, LLM Whisperer, Unstract) with new light-themed right panels featuring compliance badges, stats cards, testimonials with gradient borders, and provider logos. Update left panel spacing to match Figma design specifications. * fix: resolve biome formatting errors in Login.css and vite.config.js Auto-fix formatting issues (double quotes, semicolons, import ordering) flagged by the biome-check CI workflow. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Address CodeRabbit review comments for landing page redesign - Use dynamic imports (await import) for plugin assets to prevent build failures in OSS where plugins/ is gitignored - Remove duplicate constant arrays (LLM_PROVIDERS, TRUSTED_BY_LOGOS, UNSTRACT_COMPLIANCE_BADGES) by reusing single definitions - Add responsive media query for .login-right-section on mobile - Add focus-visible styles for product toggle buttons - Add focus-visible styles for region selector buttons Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Signed-off-by: Jaseem Jas <89440144+jaseemjaskp@users.noreply.github.com> Co-authored-by: Hari John Kuriakose <hari@zipstack.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Deepak K <89829542+Deepak-Kesavan@users.noreply.github.com> Co-authored-by: vishnuszipstack <117254672+vishnuszipstack@users.noreply.github.com> Co-authored-by: vishnuszipstack <vishnu@zipstack.com>
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.



Summary
Replace ESLint + Prettier with Biome for frontend linting and formatting.
Changes
@biomejs/biomev2.3.13 as dev dependencybiome.jsonwith rules migrated from.eslintrc.json(68 rules auto-migrated)package.jsonscripts (lint,format,check, etc.) to use Biome commandseslint,eslint-config-google,eslint-config-prettier,eslint-plugin-prettier,eslint-plugin-react,prettier,prettier-quick.eslintrc.json.pre-commit-config.yamlBug Fixes (discovered during migration)
sessionDetailsvariable inHeaderTitle.jsx(added missinguseSessionStoreimport)Error()→new Error()inuseSessionValid.jsArray()→new Array()inDocumentThumbnail.jsxprismjsimport order inCombinedOutput.jsx(core library must load before addons)Why Biome?
biome.json) instead of multiple configsorganizeImportsNotes
warnfor pre-existing code issues:useBlockStatements(319),noUnusedVariables(108),noEmptyBlockStatements(17) — these can be gradually fixed in follow-up PRs