From f7426b402e603c67b83cd609266206f9f783d766 Mon Sep 17 00:00:00 2001 From: Carter Date: Mon, 20 Jul 2026 20:39:53 -0400 Subject: [PATCH 1/6] feat(app): implement objective summary step and fix combobox TS errors Signed-off-by: Carter --- AGENTS.md | 257 ------------------ .../contribute/ContributionFlow.tsx | 7 +- .../contribute/StepperActionHeader.tsx | 10 +- .../components/contribute/steps/Submit.tsx | 158 ++++++++++- app/src/components/ui/combobox.tsx | 6 +- 5 files changed, 173 insertions(+), 265 deletions(-) delete mode 100644 AGENTS.md diff --git a/AGENTS.md b/AGENTS.md deleted file mode 100644 index 92afe890..00000000 --- a/AGENTS.md +++ /dev/null @@ -1,257 +0,0 @@ -# Agent Handbook – Bluelearn - -This document provides the essential context an agent needs to work effectively in the Bluelearn repository. It focuses on non‑obvious knowledge that saves time and avoids common pitfalls. - -## Project Overview - -Bluelearn is an open‑source, prerequisite‑graph education platform. It is a **pnpm workspace monorepo** containing: - -- **`app/`** – React 19 frontend with TanStack Start (SSR), TanStack Router, Tailwind CSS v4, and shadcn/ui components. -- **`api/`** – Hono‑based API running on Cloudflare Workers, using Supabase for authentication and data. -- **`supabase/`** – Local PostgreSQL database, migrations, and configuration (auth, storage, RLS). - -The stack is fully typed end‑to‑end: Hono exports `AppType` that the frontend can import for type‑safe API calls (not yet wired in the initial code). - -## Getting Started - -### Prerequisites -- **Node.js ≥20** and **pnpm ≥10.33.1** (see `packageManager` in root `package.json`) -- **Docker** (required for `supabase start`) -- **Supabase CLI** (`npm install -g supabase`) - -### Setup -1. Clone the repository and install dependencies: - ```bash - pnpm install - ``` -2. Start the Supabase local stack (this will spin up PostgreSQL, Auth, Storage, etc.): - ```bash - pnpm supabase:start - ``` - Wait for it to be ready, then run `supabase status` to see the URLs and keys. -3. Copy environment variables: - ```bash - cp app/.env.example app/.env - cp api/.dev.vars.example api/.dev.vars - ``` - Fill in the values from `supabase status` (or `supabase status -o env`). -4. Start the API in a separate terminal: - ```bash - pnpm dev:api - ``` - This runs `wrangler dev` on `localhost:8787`. -5. Start the frontend in another terminal: - ```bash - pnpm dev:app - ``` - The app will be available at `http://localhost:3000`. - -## Essential Commands - -All commands are run from the **root** of the monorepo unless noted. - -| Command | Description | -|---------|-------------| -| `pnpm dev` | Start **both** app and API in parallel (aggregated output). | -| `pnpm dev:app` | Start the frontend dev server (Vite, port 3000). | -| `pnpm dev:api` | Start the API dev server (Wrangler, port 8787). | -| `pnpm build` | Build all packages (`app/` and `api/`). | -| `pnpm typecheck` | Run TypeScript type checking across the workspace. | -| `pnpm lint` | Run ESLint on all packages. | -| `pnpm format` | Format code with Prettier (includes Tailwind CSS plugin). | -| `pnpm test` | Run Vitest tests (currently only `app/` has tests). | -| `pnpm supabase:start` | Start the local Supabase stack (requires Docker). | -| `pnpm supabase:stop` | Stop the Supabase stack. | -| `pnpm supabase:reset` | Reset the database (applies migrations again). | -| `pnpm api:deploy` | Deploy the API to Cloudflare Workers (uses `wrangler deploy`). | - -> **Note:** The root `package.json` uses `pnpm -r` (recursive) and `--filter` to target specific packages. Use `pnpm --filter app