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
11 changes: 10 additions & 1 deletion frontend/src/components/Sidebar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2854,7 +2854,16 @@ export function Sidebar({
icon={<SquarePen className="w-3.5 h-3.5" strokeWidth={1.7} />}
label="Brand Studio"
active={active_view.startsWith("brand_studio")}
onClick={() => navigate({ to: "/brand-studio" })}
onClick={() =>
navigate({
to: "/brand-studio",
search: {
tab: undefined,
collection: undefined,
garment: undefined,
},
})
}
/>
<SubNavItem
icon={<CheckSquare className="w-3.5 h-3.5" strokeWidth={1.7} />}
Expand Down
3 changes: 2 additions & 1 deletion frontend/src/router.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -398,7 +398,8 @@ export type ReferenceSection =
| "culture-generale"
| "cognitive-toolkit"
| "behavioral-design"
| "databases";
| "databases"
| "domain-ontology";

export interface ReferenceSearchParams {
section?: ReferenceSection;
Expand Down
6 changes: 3 additions & 3 deletions frontend/src/views/ConceptDetailView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -580,7 +580,7 @@ function ExplanationResult({ data }: { data: ConceptExplanation }) {
{hasTitle ? title : sid}
</button>
{hasTitle && (
<span className="text-[12px] text-[var(--sb-text-muted)] font-mono">
<span className="text-sm text-[var(--sb-text-muted)] font-mono">
{sid.length > 24 ? sid.slice(0, 24) + "..." : sid}
</span>
)}
Expand All @@ -591,9 +591,9 @@ function ExplanationResult({ data }: { data: ConceptExplanation }) {
.map((chunk, i) => (
<div
key={i}
className="mt-1.5 text-[13px] text-[var(--sb-text-muted)] leading-relaxed font-mono rounded-md bg-white/[0.03] px-2 py-1.5"
className="mt-1.5 text-sm text-[var(--sb-text-muted)] leading-relaxed font-mono rounded-md bg-white/[0.03] px-2 py-1.5"
>
<span className="text-[11px] text-[var(--sb-text-muted)] opacity-60 mr-1.5">
<span className="text-sm text-[var(--sb-text-muted)] opacity-60 mr-1.5">
{Math.round(chunk.relevance_score * 100)}%
</span>
{chunk.preview}
Expand Down
17 changes: 12 additions & 5 deletions frontend/src/views/CurriculumTracksView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,16 @@ export function CurriculumTracksView() {
const tracks = data?.tracks ?? [];
const groups = useMemo(() => groupByCategory(tracks), [tracks]);

// Global numbering across all categories
let globalIndex = 0;
// Precompute stagger offsets per group
const groupOffsets = useMemo(() => {
const offsets: number[] = [];
let running = 0;
for (const g of groups) {
offsets.push(running);
running += g.tracks.length;
}
return offsets;
}, [groups]);

return (
<PremiumPage>
Expand All @@ -92,8 +100,8 @@ export function CurriculumTracksView() {
<EmptyState />
) : (
<div className="mt-6 space-y-8">
{groups.map((group) => {
const sectionStart = globalIndex;
{groups.map((group, gi) => {
const sectionStart = groupOffsets[gi];
return (
<section key={group.category}>
<h2
Expand All @@ -105,7 +113,6 @@ export function CurriculumTracksView() {
<div className="grid grid-cols-1 gap-3">
{group.tracks.map((track, i) => {
const cardIndex = sectionStart + i;
globalIndex = cardIndex + 1;
return (
<TrackCard
key={track.id}
Expand Down
86 changes: 0 additions & 86 deletions frontend/tests/LandingSections.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import { motionValue } from "motion";

import { HeroSection } from "../src/components/landing/sections/HeroSection";
import { EnterpriseProofSection } from "../src/components/landing/sections/EnterpriseProofSection";
import { DomainsSection } from "../src/components/landing/sections/DomainsSection";
import { PipelineSection } from "../src/components/landing/sections/PipelineSection";
import { FeaturesSection } from "../src/components/landing/sections/FeaturesSection";
import { StackSection } from "../src/components/landing/sections/StackSection";
Expand Down Expand Up @@ -214,47 +213,6 @@ describe("Landing sections", () => {
expect(screen.getAllByText("Step Sequence").length).toBe(10);
});

it("lists homepage categories as actual app surfaces", () => {
render(<DomainsSection />);

expect(screen.getByText("THE FULL APP")).not.toBeNull();
expect(screen.queryByText("Core Capabilities")).toBeNull();

// All 22 area titles present
expect(screen.getAllByText("Save & Import").length).toBeGreaterThan(0);
expect(screen.getAllByText("Organizer").length).toBeGreaterThan(0);
expect(screen.getAllByText("Career Accelerator").length).toBeGreaterThan(0);
expect(screen.getAllByText("Engine").length).toBeGreaterThan(0);
expect(screen.getAllByText("Projects").length).toBeGreaterThan(0);
expect(screen.getAllByText("Chat").length).toBeGreaterThan(0);
expect(screen.getAllByText("Library").length).toBeGreaterThan(0);
expect(screen.getAllByText("LinkedIn & Events").length).toBeGreaterThan(0);
expect(screen.getAllByText("Dev Reference").length).toBeGreaterThan(0);
expect(screen.getAllByText("Interview Prep").length).toBeGreaterThan(0);
expect(screen.getAllByText("Maths").length).toBeGreaterThan(0);
expect(screen.getAllByText("Chinese").length).toBeGreaterThan(0);
expect(screen.getAllByText(/Culture G/).length).toBeGreaterThan(0);
expect(screen.getAllByText("Applied Systems").length).toBeGreaterThan(0);
expect(screen.getAllByText("Embodied AI").length).toBeGreaterThan(0);
expect(screen.getAllByText("Bio-Augmentation").length).toBeGreaterThan(0);
expect(screen.getAllByText("Cognitive Toolkit").length).toBeGreaterThan(0);
expect(screen.getAllByText("Innervisions").length).toBeGreaterThan(0);
expect(screen.getAllByText("Shopify & Module 48").length).toBeGreaterThan(
0,
);
expect(screen.getAllByText("Elite Freelance").length).toBeGreaterThan(0);
expect(screen.getAllByText("Productivity").length).toBeGreaterThan(0);
expect(screen.getAllByText("System Health").length).toBeGreaterThan(0);

// Spot-check descriptions
expect(
screen.getAllByText(/Paste a URL or upload a file/).length,
).toBeGreaterThan(0);
expect(
screen.getAllByText(/Module 48 fashion operations/).length,
).toBeGreaterThan(0);
});

it("describes the source-to-proof user workflow", () => {
render(<PipelineSection />);

Expand Down Expand Up @@ -375,50 +333,6 @@ describe("Landing sections", () => {
expect(openModule48.getAttribute("href")).toBe("/module-48");
});

it("adds a dedicated why section for Adrien's mission", () => {
render(<LandingView />);

expect(screen.getByText("SAMARITAN RAISON D'ETRE")).not.toBeNull();
expect(
screen.getByText(
"Why this system exists: help Adrien Le Doussal turn learning into compounding capability and real-world leverage.",
),
).not.toBeNull();
expect(
screen.getByText(
/Compound \+ Harness - compound high-signal evidence and harness execution with explicit constraints and verification loops\./i,
{ selector: "li" },
),
).not.toBeNull();
expect(
screen.getByText(
/superpowers profile and better execution decisions over time\./i,
{ selector: "li" },
),
).not.toBeNull();
expect(
screen.getAllByText("I am building my brand Module 48.").length,
).toBeGreaterThan(0);
expect(
screen.getAllByText(
"It is also a RAG since I can query all of Samaritan's knowledge scope.",
).length,
).toBeGreaterThan(0);

const whySectionHeading = screen.getByText(
"Why this system exists: help Adrien Le Doussal turn learning into compounding capability and real-world leverage.",
);
const whySection = whySectionHeading.closest("section");
expect(whySection).not.toBeNull();

const sectionScope = within(whySection as HTMLElement);
expect(sectionScope.getAllByTestId("why-adrien-point")).toHaveLength(18);
expect(sectionScope.getAllByTestId("why-adrien-how")).toHaveLength(18);
expect(
sectionScope.getAllByText(/How this app delivers:/i).length,
).toBeGreaterThan(0);
});

it("adds a dedicated Innervisions section on the homepage", () => {
render(<LandingView />);

Expand Down
Loading
Loading