diff --git a/.gitignore b/.gitignore
index ba4ccb3d..ebf98a10 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,3 +15,4 @@
.idea
.claude
/dist.zip
+.cache
\ No newline at end of file
diff --git a/src/layouts/index.tsx b/src/layouts/index.tsx
index 5d652d2a..8f76a8b0 100644
--- a/src/layouts/index.tsx
+++ b/src/layouts/index.tsx
@@ -1,6 +1,7 @@
import { routeCacheAtom, setRouteCache } from '@/atoms/route-cache';
import { userAtom } from '@/atoms/user';
import DarkMask from '@/components/dark-mask';
+import PluginExtraFields from '@/components/plugin-extra-fields';
import routeCachekey from '@/config/route-cachekey';
import { DEFAULT_ENTER_PAGE, GPUSTACK_API_BASE_URL } from '@/config/settings';
import { COLOR_PRIMARY } from '@/config/theme';
@@ -424,6 +425,13 @@ export default (props: any) => {
{...runtimeConfig}
ErrorBoundary={ErrorBoundary}
>
+ {/* Enterprise plugin slot: license status banner. The plugin
+ package registers `GlobalLicenseBanner` under this name; in
+ OSS builds no plugin is registered → PluginExtraFields
+ renders null. Polls /v2/enterprise/licenses/banner and
+ surfaces problems (expiring / expired / invalid signature /
+ over quota / trial mode). */}
+