Skip to content

Merge agentic-upgrade into main#2

Open
xcodeassociated wants to merge 24 commits intomainfrom
agentic-upgrade
Open

Merge agentic-upgrade into main#2
xcodeassociated wants to merge 24 commits intomainfrom
agentic-upgrade

Conversation

@xcodeassociated
Copy link
Owner

Merges updates from agentic-upgrade into main.

Copilot AI review requested due to automatic review settings February 15, 2026 13:19
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR merges the agentic-upgrade branch into main, primarily upgrading the frontend toolchain/dependencies (Vite/React/Tailwind/Vitest) and updating build/CI configuration to match the new stack.

Changes:

  • Upgrade core dependencies/dev tooling (React, Vite, Tailwind CSS, Vitest, ESLint, Radix UI, etc.) and adjust related configuration.
  • Migrate Tailwind setup to v4-style configuration (CSS @import/@theme, new Vite + PostCSS plugins) and update many Tailwind utility strings in UI components.
  • Update CI/Docker workflows and project docs for Node/bun-based workflows.

Reviewed changes

Copilot reviewed 32 out of 35 changed files in this pull request and generated 11 comments.

Show a summary per file
File Description
vite.config.ts Adds Tailwind Vite plugin; keeps Vitest config in Vite config.
tsconfig.app.json Expands include list to add Vitest globals typing.
tailwind.config.js Removes Tailwind v3 JS config (migration toward Tailwind v4 CSS-first config).
src/pages/users/hooks/useSseUsers.tsx Adjusts SSE retry option handling.
src/pages/users/hooks/useRolesGraphql.tsx Reorders effect/helper function (logic remains equivalent).
src/pages/users/hooks/useColumns.tsx Updates Tailwind classes for focus/outline styling.
src/pages/users/Users.test.tsx Updates EventSource mocking and Apollo MockedProvider usage; dynamic import of Users.
src/lib/keycloak.ts Changes Keycloak realm value.
src/components/ui/table.tsx Updates Tailwind selector syntax for footer row borders.
src/components/ui/sheet.tsx Updates Tailwind focus outline class.
src/components/ui/select.tsx Updates Tailwind sizing/outline + Radix variable class syntax.
src/components/ui/navigation-menu.tsx Updates Tailwind classes (including z-index + variant syntax changes).
src/components/ui/input.tsx Updates Tailwind focus-visible outline class.
src/components/ui/dropdown-menu.tsx Updates Tailwind outline + data-* variant syntax.
src/components/ui/dialog.tsx Updates Tailwind focus outline class.
src/components/ui/command.tsx Updates Tailwind selector syntax for cmdk sub-elements.
src/components/ui/card.tsx Updates Tailwind shadow utility.
src/components/ui/button.tsx Updates Tailwind focus-visible outline class.
src/components/ui/badge.tsx Updates Tailwind focus outline class.
src/components/custom/multiple-selector.tsx Updates Tailwind data-* variant syntax and outline classes.
src/components/custom/data-table.tsx Fixes TanStack types import to come from public API.
src/components/custom/coockie-consent.tsx Updates z-index Tailwind utility.
src/components/app/nav-item.tsx Fixes useLocation import source to react-router-dom.
src/App.css Migrates Tailwind directives to v4 CSS-first setup and theme tokens.
postcss.config.js Switches to @tailwindcss/postcss plugin config.
package.json Updates scripts, dependency versions, and adds Node engine requirement.
README.md Adds Node version setup guidance.
Dockerfile Updates Bun base image and uses bun.lockb in build stage.
AGENTS.md Updates agent guidance toward bun workflows and adds codegen-first guidance.
.nvmrc Pins Node version.
.github/workflows/main-branch-docker.yml Refactors workflow to build/test before Docker publish on main.
.github/workflows/ci.yml Adds CI workflow for pushes/PRs (install/codegen/test/build).
.eslintrc.cjs Adjusts lint rules and disables some react-hooks rules.
Comments suppressed due to low confidence (1)

AGENTS.md:52

  • AGENTS.md says bun run build “Type-checks (tsc -b) then produces production bundle”, but package.json now defines build as vite build only (no tsc). Update this table entry (or reintroduce the typecheck step) so the documented workflow matches the actual scripts.
| Command                    | Description                                                         |
| -------------------------- | ------------------------------------------------------------------- |
| `bun run dev`              | Starts Vite dev server (default port 3000).                         |
| `bun run build`            | Type‑checks (`tsc -b`) then produces production bundle.             |
| `bun run preview`          | Serves the production build locally (`vite preview`).               |
| `bun run prod`             | Serves built assets with `serve -s dist`.                           |

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +19 to +26
You can also use the provided npm script:

```bash
npm run setup
```

which will execute the above commands (assuming `nvm` is available in your shell).

Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

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

This README instructs running npm run setup, but package.json doesn’t define a setup script (and the repo docs elsewhere indicate bun is the package manager). Either add the script or update the README to the correct command(s) (e.g., nvm install/use steps only, or a bun run setup script).

Suggested change
You can also use the provided npm script:
```bash
npm run setup
```
which will execute the above commands (assuming `nvm` is available in your shell).

Copilot uses AI. Check for mistakes.
Comment on lines 7 to 10
"dev": "vite",
"build": "tsc -b && vite build",
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
"build": "vite build",
"lint": "eslint -c .eslintrc.cjs . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
"preview": "vite preview",
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

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

The build script no longer runs tsc (type-check), so CI will no longer fail on TypeScript type errors that Vite’s build may not catch. Consider adding a separate typecheck script (e.g., tsc -b or tsc --noEmit) and running it in CI to keep type safety guarantees.

Copilot uses AI. Check for mistakes.
Comment on lines 24 to 27
const optionsRef = useRef(options)
const retryCountRef = useRef(0)
const maxAttempts = optionsRef.current.maxRetries || 5
const maxAttempts = options.maxRetries ?? 5

Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

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

Switching from optionsRef.current.maxRetries || 5 to options.maxRetries ?? 5 changes behavior when maxRetries is 0: maxAttempts becomes 0, and the hook will never connect because retryCountRef.current < maxAttempts will be false on the first attempt. If 0 is meant to mean “no retries” (but still allow the initial connection), adjust the logic (e.g., treat 0 as 1 attempt, or separate initial attempt vs retries).

Copilot uses AI. Check for mistakes.
Comment on lines 29 to 31
<DialogContent className="overflow-hidden p-0 shadow-lg">
<Command className="[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5">
<Command className="**:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 **:[[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 **:[[cmdk-input]]:h-12 **:[[cmdk-item]]:px-2 **:[[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5">
{children}
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

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

The className string contains **:[[cmdk-…]]: sequences, which don’t match the Tailwind arbitrary selector/variant syntax used elsewhere in this codebase (and look like accidental Markdown). This will likely cause these styles to never apply. Replace these with valid Tailwind selectors (e.g., the previous [&_[cmdk-group-heading]]: pattern) so CommandDialog renders correctly.

Copilot uses AI. Check for mistakes.
Comment on lines 89 to 92
className={cn(
"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",
"overflow-hidden p-1 text-foreground **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground",
className
)}
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

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

Same issue here: **:[[cmdk-group-heading]]: is not a valid Tailwind selector/variant and will be ignored, so group heading spacing/typography won’t be applied. Use valid Tailwind arbitrary selector syntax for cmdk group headings.

Copilot uses AI. Check for mistakes.
'react-hooks/set-state-in-effect': 'off',
'react-hooks/incompatible-library': 'off',
'react-hooks/exhaustive-deps': 'off',
'no-unused-disable': 'off',
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

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

no-unused-disable is not a core ESLint rule, and there’s no plugin configured that provides it. ESLint will typically error on unknown rule names, which would break bun run lint/CI. Remove this rule entry or replace it with the correct rule from an installed plugin (or rely on --report-unused-disable-directives which is already passed on the CLI).

Suggested change
'no-unused-disable': 'off',

Copilot uses AI. Check for mistakes.
Comment on lines 106 to 108
className={cn(
"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in",
"top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in",
className
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

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

z-1 is not part of Tailwind’s default z-index scale (and will be ignored unless you’ve explicitly added it). Previously this used an arbitrary value (z-[1]). Consider reverting to z-[1] or switching to a standard z-index utility (e.g., z-10) to preserve the intended stacking behavior.

Copilot uses AI. Check for mistakes.
Comment on lines 1 to 3
/// <reference types="vitest" />
/// <reference types="vitest" />
import { defineConfig } from 'vite'
Copy link

Copilot AI Feb 15, 2026

Choose a reason for hiding this comment

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

There are two identical /// <reference types="vitest" /> lines at the top of this file. Remove the duplicate to avoid confusion and keep the config clean.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant