diff --git a/apps/web/src/pages/agent-detail-page.tsx b/apps/web/src/pages/agent-detail-page.tsx
index d7ddbf0a1..490f2c093 100644
--- a/apps/web/src/pages/agent-detail-page.tsx
+++ b/apps/web/src/pages/agent-detail-page.tsx
@@ -376,7 +376,7 @@ export function AgentDetailPage({
className={
saveReport.failed === null
? "text-sm text-muted-foreground"
- : "text-sm text-danger-foreground"
+ : "text-sm text-destructive"
}
role={saveReport.failed === null ? undefined : "alert"}
>
@@ -384,7 +384,7 @@ export function AgentDetailPage({
) : null}
{lifecycle.kind === "error" ? (
-
+
{lifecycle.message}
) : null}
@@ -649,7 +649,7 @@ export function AgentDetailRoute({
if (load.kind === "error") {
return shell(
-
+
{load.message}
,
);
diff --git a/apps/web/src/pages/agent-skills-picker.tsx b/apps/web/src/pages/agent-skills-picker.tsx
index 86d2d0686..acaa77486 100644
--- a/apps/web/src/pages/agent-skills-picker.tsx
+++ b/apps/web/src/pages/agent-skills-picker.tsx
@@ -66,7 +66,7 @@ export function AgentSkillsPicker({
if (state.status === "error") {
return (
-
+
Could not load skills: {state.message}
);
@@ -96,7 +96,7 @@ export function AgentSkillsPicker({
{name}
-
+
No longer available — its author may have made it private,
renamed it, or discarded it.
diff --git a/apps/web/src/pages/agents-page.tsx b/apps/web/src/pages/agents-page.tsx
index 63a78ae71..ef037ab36 100644
--- a/apps/web/src/pages/agents-page.tsx
+++ b/apps/web/src/pages/agents-page.tsx
@@ -311,9 +311,7 @@ function AgentDetailPanel({
) : null}
{capabilities.status === "error" ? (
-
- {capabilities.message}
-
+ {capabilities.message}
) : null}
{capabilities.status === "ready"
? (capabilities.data.model ?? "Default")
diff --git a/apps/web/src/tailwind.css b/apps/web/src/tailwind.css
index 9f0f02424..c514e54c8 100644
--- a/apps/web/src/tailwind.css
+++ b/apps/web/src/tailwind.css
@@ -16,6 +16,17 @@
@import "tailwindcss";
+/* react-ui's README documents this exact pairing for a consumer that already
+ runs its own Tailwind v4 build: import the theme source (not just the
+ prebuilt stylesheet) so this build's own @theme registers --success,
+ --destructive, and the rest of react-ui's semantic tokens as real Tailwind
+ theme colors. Without it those tokens only exist as plain :root custom
+ properties inherited from the prebuilt sheet, so Tailwind has no theme
+ color to generate bg-success / bg-destructive utilities from — a data
+ attribute variant like data-[state=connected]:bg-success compiles to
+ nothing, silently. */
+@import "@corbits/react-ui/theme.css";
+
/* The import above re-emits Tailwind's default font tokens after react-ui's
prebuilt sheet declared the brand stacks — same layer, later order, so the
defaults were winning and the whole app fell back to system fonts. Declare
@@ -32,6 +43,7 @@
@source "../../../packages/artifact-ui/src";
@source "../../../packages/bench-ui/src";
@source "../../../packages/chat-ui/src";
+@source "../../../packages/context-menu/src";
@source "../../../packages/plugins-ui/src";
@source "../../../packages/settings-ui/src";
@source "../../../packages/tasks-ui/src";
diff --git a/packages/plugins-ui/src/installed-strip.tsx b/packages/plugins-ui/src/installed-strip.tsx
index 3ad71af3a..088ae1176 100644
--- a/packages/plugins-ui/src/installed-strip.tsx
+++ b/packages/plugins-ui/src/installed-strip.tsx
@@ -59,7 +59,7 @@ export function InstalledStrip({
);