From 157e76a18666c03200fcf944fd0131d6f4f00f07 Mon Sep 17 00:00:00 2001
From: mrzmyr
Date: Fri, 10 Apr 2026 21:19:18 +0200
Subject: [PATCH 1/2] refactor(ui): adopt Badge component consistently
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Replaces hand-rolled `` pill markup with
the shared `` component in billing, team, source detail, and
tools pages. Also documents the preference in AGENTS.md so new code
reaches for `` and `` instead of reinventing them.
No behaviour change — the visual output is equivalent to the
previous inline styles, just routed through the shared component so
the styling stays consistent across the app.
---
AGENTS.md | 2 ++
apps/cloud/src/routes/billing.tsx | 9 +++++----
apps/cloud/src/routes/billing_.plans.tsx | 13 +++++++------
apps/cloud/src/routes/team.tsx | 9 ++++-----
packages/react/src/pages/source-detail.tsx | 11 ++++-------
packages/react/src/pages/tools.tsx | 5 ++---
6 files changed, 24 insertions(+), 25 deletions(-)
diff --git a/AGENTS.md b/AGENTS.md
index cf3bb1a18e..07150acd1b 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -1,3 +1,5 @@
use effect vitest and run tests via vitest not bun test
do not add any AI assistant, Claude, Anthropic, or Co-Authored-By attribution/trailers to commits, commit messages, PRs, or generated files
+
+- use ,
diff --git a/apps/cloud/src/routes/billing.tsx b/apps/cloud/src/routes/billing.tsx
index cbdf013bb1..ca90c50795 100644
--- a/apps/cloud/src/routes/billing.tsx
+++ b/apps/cloud/src/routes/billing.tsx
@@ -1,6 +1,7 @@
import { createFileRoute, Link } from "@tanstack/react-router";
import { useCustomer, useListPlans } from "autumn-js/react";
import { Button } from "@executor/react/components/button";
+import { Badge } from "@executor/react/components/badge";
type Plan = NonNullable["data"]>[number];
@@ -68,14 +69,14 @@ function BillingPage() {
{planName}
{isSwitching && (
-
+
Switching
-
+
)}
{isCanceling && !isSwitching && (
-
+
Canceling
-
+
)}
diff --git a/apps/cloud/src/routes/billing_.plans.tsx b/apps/cloud/src/routes/billing_.plans.tsx
index 8b941d0b60..9bba213343 100644
--- a/apps/cloud/src/routes/billing_.plans.tsx
+++ b/apps/cloud/src/routes/billing_.plans.tsx
@@ -2,6 +2,7 @@ import { useState } from "react";
import { createFileRoute, Link } from "@tanstack/react-router";
import { useCustomer, useListPlans } from "autumn-js/react";
import { Button } from "@executor/react/components/button";
+import { Badge } from "@executor/react/components/badge";
type Plan = NonNullable["data"]>[number];
@@ -120,19 +121,19 @@ function PlansPage() {
{plan.name}
{isCurrent && (
-
+
Your plan
-
+
)}
{isCanceling && (
-
+
Canceling
-
+
)}
{isScheduled && (
-
+
Scheduled
-
+
)}
{meta.tagline}
diff --git a/apps/cloud/src/routes/team.tsx b/apps/cloud/src/routes/team.tsx
index f2c65b1a19..e8fa47d520 100644
--- a/apps/cloud/src/routes/team.tsx
+++ b/apps/cloud/src/routes/team.tsx
@@ -13,6 +13,7 @@ import {
DialogClose,
} from "@executor/react/components/dialog";
import { Button } from "@executor/react/components/button";
+import { Badge } from "@executor/react/components/badge";
import { Input } from "@executor/react/components/input";
import { Label } from "@executor/react/components/label";
import {
@@ -214,14 +215,12 @@ function TeamPage() {
{member.name ?? member.email}
{member.isCurrentUser && (
-
- You
-
+ You
)}
{member.status === "pending" && (
-
+
Invited
-
+
)}
{member.name && (
diff --git a/packages/react/src/pages/source-detail.tsx b/packages/react/src/pages/source-detail.tsx
index 1e9822d886..a18f61278c 100644
--- a/packages/react/src/pages/source-detail.tsx
+++ b/packages/react/src/pages/source-detail.tsx
@@ -14,6 +14,7 @@ import type { ToolSummary } from "../components/tool-tree";
import { useScope } from "../hooks/use-scope";
import type { SourcePlugin } from "../plugins/source-plugin";
import { Button } from "../components/button";
+import { Badge } from "../components/badge";
export function SourceDetailPage(props: {
namespace: string;
@@ -116,13 +117,9 @@ export function SourceDetailPage(props: {
{sourceData?.name ?? namespace}
{sourceData?.runtime && (
-
- built-in
-
+ built-in
)}
-
- {sourceData?.kind ?? "source"}
-
+ {sourceData?.kind ?? "source"}
{Result.isSuccess(tools) && !editing && (
{sourceTools.length} {sourceTools.length === 1 ? "tool" : "tools"}
@@ -208,7 +205,7 @@ export function SourceDetailPage(props: {
onSuccess: () => (
{/* Left: tool tree */}
-
+
)}
-
- {t.sourceId}
-
+
{t.sourceId}
))}
From e750f17eb136368d0de81f3b21719d28017e857e Mon Sep 17 00:00:00 2001
From: Rhys Sullivan <39114868+RhysSullivan@users.noreply.github.com>
Date: Fri, 10 Apr 2026 13:59:13 -0700
Subject: [PATCH 2/2] Update AGENTS.md
---
AGENTS.md | 2 --
1 file changed, 2 deletions(-)
diff --git a/AGENTS.md b/AGENTS.md
index 07150acd1b..cf3bb1a18e 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -1,5 +1,3 @@
use effect vitest and run tests via vitest not bun test
do not add any AI assistant, Claude, Anthropic, or Co-Authored-By attribution/trailers to commits, commit messages, PRs, or generated files
-
-- use ,