Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions apps/admin/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,20 @@
"@superset/trpc": "workspace:*",
"@superset/ui": "workspace:*",
"@t3-oss/env-nextjs": "^0.13.8",
"@tanstack/react-query": "^5.90.10",
"@tanstack/react-query": "^5.90.19",
"@tanstack/react-query-devtools": "^5.90.10",
"@trpc/client": "^11.7.1",
"@trpc/server": "^11.7.1",
"@trpc/tanstack-react-query": "^11.7.1",
"better-auth": "^1.4.9",
"better-auth": "1.4.16",
"date-fns": "^4.1.0",
"drizzle-orm": "0.45.1",
"import-in-the-middle": "2.0.1",
"next": "^16.0.10",
"next-themes": "^0.4.6",
"posthog-js": "1.310.1",
"react": "^19.2.3",
"react-dom": "^19.2.3",
"react": "19.1.0",
"react-dom": "19.1.0",
"react-icons": "^5.5.0",
"recharts": "2.15.4",
"require-in-the-middle": "8.0.1",
Expand All @@ -43,11 +43,11 @@
"@superset/typescript": "workspace:*",
"@tailwindcss/postcss": "^4.0.9",
"@types/node": "^24.9.1",
"@types/react": "^19.2.7",
"@types/react": "~19.1.0",
"@types/react-dom": "^19.2.3",
"babel-plugin-react-compiler": "^1.0.0",
"dotenv": "^17.2.3",
"tailwindcss": "^4.0.9",
"tailwindcss": "^4.1.18",
Comment on lines +46 to +50
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.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

npm view `@types/react-dom`@19.2.3 peerDependencies

Repository: superset-sh/superset

Length of output: 93


Align @types/react with @types/react-dom peer requirements.

@types/react-dom@^19.2.3 requires @types/react ^19.2.0, but it's pinned to ~19.1.0. This creates a peer dependency conflict and can break type compatibility.

🐛 Suggested fix
-    "@types/react": "~19.1.0",
+    "@types/react": "~19.2.0",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"@types/react": "~19.1.0",
"@types/react-dom": "^19.2.3",
"babel-plugin-react-compiler": "^1.0.0",
"dotenv": "^17.2.3",
"tailwindcss": "^4.0.9",
"tailwindcss": "^4.1.18",
"@types/react": "~19.2.0",
"@types/react-dom": "^19.2.3",
"babel-plugin-react-compiler": "^1.0.0",
"dotenv": "^17.2.3",
"tailwindcss": "^4.1.18",
🤖 Prompt for AI Agents
In `@apps/admin/package.json` around lines 46 - 50, The package.json pins
"@types/react" to "~19.1.0" which conflicts with "@types/react-dom@^19.2.3" that
expects "^19.2.0"; update the "@types/react" entry in package.json to a
compatible version (e.g. "^19.2.0" or matching "^19.2.x") to satisfy the peer
requirement, then reinstall dependencies and regenerate the lockfile (run
npm/yarn install) so types and lockfile are consistent; locate the dependency
line for "@types/react" in package.json to make this change.

"typescript": "^5.9.3"
}
}
8 changes: 4 additions & 4 deletions apps/api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,23 +22,23 @@
"@trpc/server": "^11.7.1",
"@upstash/qstash": "^2.8.4",
"@vercel/blob": "^2.0.0",
"better-auth": "^1.4.9",
"better-auth": "1.4.16",
"date-fns": "^4.1.0",
"drizzle-orm": "0.45.1",
"import-in-the-middle": "2.0.1",
"jose": "^6.1.3",
"lodash.chunk": "^4.2.0",
"next": "^16.0.10",
"react": "^19.2.3",
"react-dom": "^19.2.3",
"react": "19.1.0",
"react-dom": "19.1.0",
Comment thread
saddlepaddle marked this conversation as resolved.
"require-in-the-middle": "8.0.1",
"zod": "^4.3.5"
},
"devDependencies": {
"@superset/typescript": "workspace:*",
"@types/lodash.chunk": "^4.2.9",
"@types/node": "^24.9.1",
"@types/react": "^19.2.7",
"@types/react": "~19.1.0",
"@types/react-dom": "^19.2.3",
"babel-plugin-react-compiler": "^1.0.0",
"dotenv": "^17.2.3",
Expand Down
4 changes: 2 additions & 2 deletions apps/cli/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,13 @@
"ink-text-input": "^6.0.0",
"lowdb": "^7.0.1",
"meow": "^11.0.0",
"react": "^19.2.3",
"react": "19.1.0",
"react-devtools-core": "^7.0.1",
"string-width": "^8.1.0"
},
"devDependencies": {
"@superset/typescript": "workspace:*",
"@types/react": "^19.2.7",
"@types/react": "~19.1.0",
"bun-types": "^1.3.1",
"chalk": "^5.6.2",
"chokidar": "^3.5.3",
Expand Down
18 changes: 9 additions & 9 deletions apps/desktop/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,10 @@
"@superset/trpc": "workspace:*",
"@superset/ui": "workspace:*",
"@t3-oss/env-core": "^0.13.8",
"@tanstack/db": "^0.5.16",
"@tanstack/electric-db-collection": "0.2.24",
"@tanstack/react-db": "0.1.64",
"@tanstack/react-query": "^5.90.10",
"@tanstack/db": "0.5.22",
"@tanstack/electric-db-collection": "0.2.27",
"@tanstack/react-db": "0.1.66",
"@tanstack/react-query": "^5.90.19",
Comment thread
saddlepaddle marked this conversation as resolved.
"@tanstack/react-router": "^1.147.3",
"@tanstack/react-table": "^8.21.3",
"@trpc/client": "^11.7.1",
Expand All @@ -72,7 +72,7 @@
"@xterm/addon-webgl": "^0.18.0",
"@xterm/headless": "^5.5.0",
"@xterm/xterm": "^5.5.0",
"better-auth": "^1.4.9",
"better-auth": "1.4.16",
"better-sqlite3": "12.5.0",
"bindings": "^1.5.0",
"clsx": "^2.1.1",
Expand Down Expand Up @@ -105,11 +105,11 @@
"pidtree": "^0.6.0",
"posthog-js": "1.310.1",
"posthog-node": "^5.18.0",
"react": "^19.2.3",
"react": "19.1.0",
"react-arborist": "^3.4.3",
"react-dnd": "^16.0.1",
"react-dnd-html5-backend": "^16.0.1",
"react-dom": "^19.2.3",
"react-dom": "19.1.0",
"react-hook-form": "^7.71.1",
"react-icons": "^5.5.0",
"react-markdown": "^10.1.0",
Expand Down Expand Up @@ -140,7 +140,7 @@
"@types/http-proxy": "^1.17.17",
"@types/lodash": "^4.17.20",
"@types/node": "^24.9.1",
"@types/react": "^19.2.7",
"@types/react": "~19.1.0",
"@types/react-dom": "^19.2.3",
"@types/react-syntax-highlighter": "^15.5.13",
"@types/semver": "^7.7.1",
Expand All @@ -155,7 +155,7 @@
"electron-vite": "^4.0.0",
"rimraf": "^6.0.1",
"rollup-plugin-inject-process-env": "^1.3.1",
"tailwindcss": "^4.0.9",
"tailwindcss": "^4.1.18",
"tsx": "^4.19.3",
"typescript": "^5.9.3",
"vite": "^7.1.3",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,6 @@ export function MembersSettings({ visibleItems }: MembersSettingsProps) {
...members,
memberId: members.id,
}))
.where(({ members }) =>
eq(members.organizationId, activeOrganizationId ?? ""),
)
.orderBy(({ members }) => members.role, "asc")
.orderBy(({ members }) => members.createdAt, "asc"),
[collections, activeOrganizationId],
Expand Down
8 changes: 4 additions & 4 deletions apps/docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@
"lucide-react": "^0.560.0",
"next": "^16.0.10",
"posthog-js": "1.310.1",
"react": "^19.2.3",
"react-dom": "^19.2.3",
"react": "19.1.0",
"react-dom": "19.1.0",
"tailwind-merge": "^3.4.0",
"zod": "^4.3.5"
},
Expand All @@ -34,10 +34,10 @@
"@tailwindcss/postcss": "^4.0.9",
"@types/mdx": "^2.0.13",
"@types/node": "^24.9.1",
"@types/react": "^19.2.7",
"@types/react": "~19.1.0",
"@types/react-dom": "^19.2.3",
"postcss": "^8.5.6",
"tailwindcss": "^4.0.9",
"tailwindcss": "^4.1.18",
"tailwindcss-animate": "^1.0.7",
"typescript": "^5.9.3"
}
Expand Down
8 changes: 4 additions & 4 deletions apps/marketing/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@
"next": "^16.0.10",
"next-themes": "^0.4.6",
"posthog-js": "1.310.1",
"react": "^19.2.3",
"react-dom": "^19.2.3",
"react": "19.1.0",
"react-dom": "19.1.0",
"react-fast-marquee": "^1.6.5",
"react-icons": "^5.5.0",
"require-in-the-middle": "8.0.1",
Expand All @@ -39,12 +39,12 @@
"@tailwindcss/postcss": "^4.0.9",
"@types/mdx": "^2.0.13",
"@types/node": "^24.9.1",
"@types/react": "^19.2.7",
"@types/react": "~19.1.0",
"@types/react-dom": "^19.2.3",
"@types/three": "^0.181.0",
"babel-plugin-react-compiler": "^1.0.0",
"dotenv": "^17.2.3",
"tailwindcss": "^4.0.9",
"tailwindcss": "^4.1.18",
"typescript": "^5.9.3"
}
}
41 changes: 41 additions & 0 deletions apps/mobile/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files

# dependencies
node_modules/

# Expo
.expo/
dist/
web-build/
expo-env.d.ts

# Native
.kotlin/
*.orig.*
*.jks
*.p8
*.p12
*.key
*.mobileprovision

# Metro
.metro-health-check*

# debug
npm-debug.*
yarn-debug.*
yarn-error.*

# macOS
.DS_Store
*.pem

# local env files
.env*.local

# typescript
*.tsbuildinfo

# generated native folders
/ios
/android
45 changes: 45 additions & 0 deletions apps/mobile/app.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{
"expo": {
"name": "Superset",
"slug": "superset",
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/icon.png",
"userInterfaceStyle": "light",
"newArchEnabled": true,
"scheme": "superset",
"splash": {
"image": "./assets/splash-icon.png",
"resizeMode": "contain",
"backgroundColor": "#ffffff"
},
"ios": {
"supportsTablet": true,
"bundleIdentifier": "sh.superset.mobile",
"infoPlist": {
"ITSAppUsesNonExemptEncryption": false
}
},
"android": {
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#ffffff"
},
"package": "sh.superset.mobile",
"edgeToEdgeEnabled": true,
"predictiveBackGestureEnabled": false
},
"web": {
"favicon": "./assets/favicon.png",
"bundler": "metro"
},
"plugins": ["expo-router"],
"extra": {
"router": {},
"eas": {
"projectId": "fa9332a8-896a-4d2a-be5b-d82469b46e5d"
}
},
"owner": "supserset-sh"
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.

⚠️ Potential issue | 🟡 Minor

Typo in the owner field.

The owner is set to "supserset-sh" but should likely be "superset-sh" (extra 's' removed).

🔤 Proposed fix
-		"owner": "supserset-sh"
+		"owner": "superset-sh"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"owner": "supserset-sh"
"owner": "superset-sh"
🤖 Prompt for AI Agents
In `@apps/mobile/app.json` at line 43, In app.json update the "owner" field value:
locate the JSON key "owner" (currently set to "supserset-sh") and correct the
typo by replacing it with "superset-sh" so the owner string matches the intended
organization name.

}
}
13 changes: 13 additions & 0 deletions apps/mobile/app/(auth)/sign-in.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { Redirect } from "expo-router";
import { useSession } from "@/lib/auth/client";
import SignInScreen from "@/screens/(auth)/sign-in";

export default function SignInRoute() {
const { data: session } = useSession();

if (session) {
return <Redirect href="/" />;
}

return <SignInScreen />;
Comment on lines +5 to +12
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.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🌐 Web query:

better-auth useSession hook loading status documentation

💡 Result:

Summary — useSession loading status

  • The useSession hook (from the React client) returns an isPending boolean that represents the loading state (true while session fetch is pending). [1] (better-auth.com)
  • Example return shape shown in the docs: { data: session, isPending, error, refetch }. Use isPending to show loading UI. [2] (better-auth.com)
  • Note: there are open GitHub issues about isPending/hydration and cases where useSession doesn’t update automatically after server-side auth changes — these can cause isPending or session state to behave unexpectedly in some SSR/React 19 setups. Check the linked issues if you see stale or always-true isPending. [3] (github.com)

Sources

Do you want the exact code snippet from the docs or links to the issues?

Citations:


🏁 Script executed:

# Search for useSession usage in the codebase
rg "useSession" --type tsx --type ts -B 2 -A 5

Repository: superset-sh/superset

Length of output: 91


🏁 Script executed:

# Look for isPending usage specifically
rg "isPending" --type tsx --type ts -B 2 -A 2

Repository: superset-sh/superset

Length of output: 91


🏁 Script executed:

# Check if there are other auth route files for comparison
fd "auth|sign" --type f -e tsx -e ts

Repository: superset-sh/superset

Length of output: 897


🏁 Script executed:

# Search for useSession usage
rg "useSession" -B 2 -A 5

Repository: superset-sh/superset

Length of output: 16935


🏁 Script executed:

# Search for isPending usage
rg "isPending" -B 2 -A 2

Repository: superset-sh/superset

Length of output: 47630


🏁 Script executed:

# Read the sign-in route file
cat -n apps/mobile/app/\(auth\)/sign-in.tsx

Repository: superset-sh/superset

Length of output: 458


🏁 Script executed:

# Read the SignInScreen component
cat -n apps/mobile/screens/\(auth\)/sign-in/SignInScreen.tsx

Repository: superset-sh/superset

Length of output: 2794


Gate on isPending to prevent sign-in screen flicker during hydration.

The useSession() hook returns an isPending flag that's true while the session is loading. Without checking it, this route may briefly render the sign-in screen before redirecting an already-authenticated user. Use the isPending flag to avoid this flicker:

const { data: session, isPending } = useSession();

if (isPending) {
  return null; // or a loading indicator
}

if (session) {
  return <Redirect href="/" />;
}

return <SignInScreen />;

The desktop app implements this pattern correctly in apps/desktop/src/renderer/routes/sign-in/page.tsx.

🤖 Prompt for AI Agents
In `@apps/mobile/app/`(auth)/sign-in.tsx around lines 5 - 12, The SignInRoute is
not checking useSession's isPending flag, causing a flicker of SignInScreen
during hydration; update SignInRoute to destructure isPending from useSession
(e.g., const { data: session, isPending } = useSession()) and return early (null
or a loader) while isPending is true, then keep the existing session check to
Redirect to "/" when session exists before rendering SignInScreen; modify the
function containing SignInRoute, which renders SignInScreen and Redirect, to
implement this gating behavior.

}
15 changes: 15 additions & 0 deletions apps/mobile/app/_layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import "../global.css";
import { PortalHost } from "@rn-primitives/portal";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { Stack } from "expo-router";

const queryClient = new QueryClient();

export default function RootLayout() {
return (
<QueryClientProvider client={queryClient}>
<Stack screenOptions={{ headerShown: false }} />
<PortalHost />
</QueryClientProvider>
);
}
13 changes: 13 additions & 0 deletions apps/mobile/app/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { Redirect } from "expo-router";
import { useSession } from "@/lib/auth/client";
import HomeScreen from "@/screens/index";

export default function RootIndex() {
const { data: session } = useSession();

if (!session) {
return <Redirect href="/(auth)/sign-in" />;
}

return <HomeScreen />;
}
Binary file added apps/mobile/assets/adaptive-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added apps/mobile/assets/favicon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added apps/mobile/assets/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added apps/mobile/assets/splash-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions apps/mobile/babel.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module.exports = (api) => {
api.cache(true);
return {
presets: ["babel-preset-expo"],
};
};
20 changes: 20 additions & 0 deletions apps/mobile/components.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"$schema": "https://rnr.chat/schema.json",
"style": "default",
"rsc": false,
"tsx": true,
"tailwind": {
"config": "tailwind.config.js",
"css": "global.css",
"baseColor": "neutral",
"cssVariables": true
},
Comment on lines +6 to +11
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.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify tailwind.config.js exists in apps/mobile/
fd -t f "tailwind.config" apps/mobile/

# Also check for CSS-based Tailwind config
if [ -f "apps/mobile/global.css" ]; then
  echo "=== global.css content (first 30 lines) ==="
  cat apps/mobile/global.css | head -30
else
  echo "global.css not found"
fi

# Check directory structure of apps/mobile
echo "=== apps/mobile/ directory structure ==="
fd -t f . apps/mobile/ -x basename {} | head -20

Repository: superset-sh/superset

Length of output: 1342


Remove or update the tailwind.config.js reference in components.json.

The tailwind.config.js file does not exist in apps/mobile/. The project is correctly using Tailwind CSS v4 with CSS-first configuration—global.css imports Tailwind via @import "tailwindcss" and defines theme variables. The reference to a non-existent config file in components.json may confuse tools or developers. Either remove the config reference or create the file if needed for your setup.

🤖 Prompt for AI Agents
In `@apps/mobile/components.json` around lines 6 - 11, Update the tailwind entry
in components.json to remove the non-existent tailwind.config.js reference:
either delete the "config": "tailwind.config.js" key from the "tailwind" object
in components.json or replace it with a valid config path if you intend to use
one; ensure the "css": "global.css" and "cssVariables": true settings remain
intact so the project continues to use the CSS-first Tailwind v4 setup (refer to
the "tailwind" object and the "config" key when making the change).

"aliases": {
"components": "@/components",
"utils": "@/lib/utils",
"ui": "@/components/ui",
"lib": "@/lib",
"hooks": "@/hooks"
},
"iconLibrary": "lucide-react-native"
}
Loading