diff --git a/.coderabbit.yaml b/.coderabbit.yaml new file mode 100644 index 00000000..11cb3b11 --- /dev/null +++ b/.coderabbit.yaml @@ -0,0 +1,5 @@ +# CodeRabbit configuration — https://docs.coderabbit.ai/reference/configuration +reviews: + path_filters: + # Design/exploration HTML mocks — not shipped application code + - '!prototypes/**' diff --git a/.greptile/config.json b/.greptile/config.json new file mode 100644 index 00000000..69011a60 --- /dev/null +++ b/.greptile/config.json @@ -0,0 +1,3 @@ +{ + "ignorePatterns": "prototypes/**\n**/*.lock\n**/dist/**\n**/node_modules/**" +} diff --git a/.greptile/rules.md b/.greptile/rules.md index b1cf2123..44fe6a71 100644 --- a/.greptile/rules.md +++ b/.greptile/rules.md @@ -2,6 +2,10 @@ Repo-specific conventions for code review. See https://www.greptile.com/docs/code-review/custom-standards. +## Out of scope for review + +The `prototypes/` directory contains standalone HTML/CSS design mocks and exploration artifacts. They are **not** part of the shipped application and should not receive production code review feedback (navigation semantics, a11y, idempotency, etc.). Skip these paths entirely. + ## One-time admin/ops scripts (`packages/db/src/scripts/**`) These are manual, operator-invoked, run-once maintenance scripts (backfills, notifications, migrations). They are **not** part of the request/runtime path. diff --git a/AGENTS.md b/AGENTS.md index b4d17282..4858c331 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -6,6 +6,10 @@ This document collects implementation rules and workflow conventions for code ch When a task requires factual information (API specifications, context window sizes, library versions, pricing, rate limits, etc.), **look it up** using web search. Do not rely on educated guesses or assumptions from training data. If you're unsure whether something is a guess, look it up anyway. +## Out of scope paths + +The `prototypes/` directory holds standalone HTML/CSS design mocks for exploration. Do not treat prototype files as production code: avoid implementing features there unless explicitly asked, and do not apply production review standards (CodeRabbit/Greptile exclude this path via `.coderabbit.yaml` and `.greptile/config.json`). + ## Translation, Formatting, and Git Workflow - If `apps/dashboard/src/lib/utils/translations/en.json` changes, update the other dashboard locale files before staging or committing. diff --git a/apps/dashboard/src/lib/features/ai-assistant/content-ask-ai-bar.svelte b/apps/dashboard/src/lib/features/ai-assistant/content-ask-ai-bar.svelte index 8940fec3..79abaa4d 100644 --- a/apps/dashboard/src/lib/features/ai-assistant/content-ask-ai-bar.svelte +++ b/apps/dashboard/src/lib/features/ai-assistant/content-ask-ai-bar.svelte @@ -13,9 +13,11 @@ interface Props { /** Width classes matching the page content column (e.g. mx-auto w-full max-w-3xl). */ class?: string; + /** Tailwind bottom offset class for the collapsed bar (e.g. bottom-4, bottom-16). */ + bottomClass?: string; } - let { class: contentClass = 'mx-auto w-full max-w-3xl' }: Props = $props(); + let { class: contentClass = 'mx-auto w-full max-w-3xl', bottomClass = 'bottom-4' }: Props = $props(); const pageShellClass = 'mx-auto w-[90%] max-w-4xl px-3 sm:px-4 lg:max-w-5xl'; @@ -135,7 +137,7 @@ {:else}
+ {$t('course.sidebar.progress.lessons', { + completed: courseProgress.lessonsComplete, + total: courseProgress.lessonsTotal + })}{#if courseProgress.exercisesTotal > 0} + · {$t('course.sidebar.progress.exercises', { + completed: courseProgress.exercisesComplete, + total: courseProgress.exercisesTotal + })}{/if} +
+ + +