diff --git a/apps/commons-app/components/landing/feature-carousel.tsx b/apps/commons-app/components/landing/feature-carousel.tsx
index cf77d6ac..a19d7c08 100644
--- a/apps/commons-app/components/landing/feature-carousel.tsx
+++ b/apps/commons-app/components/landing/feature-carousel.tsx
@@ -214,7 +214,7 @@ function StartButton() {
return (
@@ -272,13 +272,13 @@ export function FeatureCarousel() {
if (event.key === "ArrowLeft") go(index - 1);
}}
>
-
+
{SLIDES.map((slide, i) => (
@@ -293,17 +293,17 @@ export function FeatureCarousel() {
)}
-
+
{/* Fixed height, so the button lands on the same line no matter
how long the headline and description run. */}
-
+
{slide.eyebrow}
-
+
{slide.title}
-
+
{slide.body}
diff --git a/apps/commons-app/components/landing/hero-composer.tsx b/apps/commons-app/components/landing/hero-composer.tsx
index 663f64e7..93a37b4b 100644
--- a/apps/commons-app/components/landing/hero-composer.tsx
+++ b/apps/commons-app/components/landing/hero-composer.tsx
@@ -17,6 +17,9 @@ const PROMPTS = [
* The hero's centerpiece: a replica of the in-app composer that types out
* example prompts on a loop. Any interaction routes to sign-in and drops the
* visitor straight into the studio.
+ *
+ * Sizing and chrome track ChatInputBox exactly, so the box a visitor sees here
+ * is the box they get once they are inside.
*/
export function HeroComposer() {
const router = useRouter();
@@ -65,26 +68,26 @@ export function HeroComposer() {
type="button"
onClick={start}
aria-label="Start a session on Agent Commons"
- className="group block w-full cursor-text rounded-[1.35rem] border border-stone-300 bg-white text-left shadow-composer transition-all hover:-translate-y-0.5 hover:border-stone-400 hover:shadow-floating"
+ className="group relative block w-full cursor-text rounded-2xl border border-stone-300 bg-white text-left shadow-composer transition-colors hover:border-stone-400"
>
-
+
{text}
-
+
-
-
-
+
+
+
-
+
-
-
+
+
Auto
-
+
diff --git a/apps/commons-app/components/landing/models-visual.tsx b/apps/commons-app/components/landing/models-visual.tsx
index 82bcc6fa..cdd1f87c 100644
--- a/apps/commons-app/components/landing/models-visual.tsx
+++ b/apps/commons-app/components/landing/models-visual.tsx
@@ -2,15 +2,14 @@ import { Check } from "lucide-react";
import { BrandLogo } from "@/components/landing/brand-logo";
/**
- * The model picker exactly as an agent's settings present it, the clearest
- * way to say "swap the model, keep the agent". Model ids are the platform's
- * own provider defaults.
+ * The model picker exactly as an agent's settings present it, the clearest way
+ * to say "swap the model, keep the agent". One current flagship per provider.
*/
const MODELS = [
- { logo: "openai-icon", id: "gpt-5.4-mini", provider: "OpenAI" },
- { logo: "claude-icon", id: "claude-sonnet-4-6", provider: "Anthropic" },
- { logo: "google-gemini", id: "gemini-2.0-flash", provider: "Google" },
- { logo: "mistral-ai-icon", id: "mistral-large-latest", provider: "Mistral" },
+ { logo: "openai-icon", name: "GPT-5.5", provider: "OpenAI" },
+ { logo: "claude-icon", name: "Claude Opus 5", provider: "Anthropic" },
+ { logo: "google-gemini", name: "Gemini 3 Pro", provider: "Google" },
+ { logo: "mistral-ai-icon", name: "Mistral Large", provider: "Mistral" },
];
const SELECTED = 1;
@@ -23,7 +22,7 @@ export function ModelsVisual() {