From bd4bd360f75e703199e8334c6cdfd1629cc60327 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Wed, 19 Nov 2025 19:05:06 -0500 Subject: [PATCH] docs: Update project documentation and session notes - Updates `GEMINI.md` with a detailed summary of the days debugging session for the v3 Badges page. - Updates `TODO.md` to mark recent bug fixes as complete and adds new tasks for outstanding issues (e.g., `order_by_li` fix). - Updates `ARCHITECTURE.md` to reflect the current state of the tech stack (Tailwind v4, component library status). - Creates `README.md` files for the new v3 Badges module and the legacy Lead Retrieval module to clarify their purpose and status. --- ARCHITECTURE.md | 6 +- GEMINI.md | 14 +++++ TODO.md | 3 + .../[event_id]/(badges)/badges/README.md | 16 ++++++ src/routes/events_leads/README.md | 56 +++++-------------- 5 files changed, 49 insertions(+), 46 deletions(-) create mode 100644 src/routes/events/[event_id]/(badges)/badges/README.md diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 136e3b86..21702253 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -10,11 +10,11 @@ The Aether project is a Svelte and SvelteKit based application, utilizing Tailwi - **Frontend Framework:** Svelte 5 and SvelteKit v2 - **Routing:** SvelteKit's file-system based routing. -- **Styling:** Tailwind CSS 3.x (with plans to upgrade to 4.x when ShadCN is ready) +- **Styling:** Tailwind CSS v4 - **UI Component Libraries:** - - Skeleton (Design System, Tailwind Components, Functional Components - with plans to upgrade to v3) + - Skeleton (Design System, Tailwind Components, Functional Components - being phased out due to conflicts with Tailwind CSS v4) - Flowbite (Tailwind Components) - - **Note:** ShadCN is currently used but is planned for removal. + - Custom Components (a growing library of `ae_comp__*` and `element_*` components) - **Text/Code Editors:** - CodeMirror 6.x (primary text and code editor, planned for rich text editing) - Edra (TipTap based Rich Text Editor) diff --git a/GEMINI.md b/GEMINI.md index 1ddc7de6..daf915f9 100644 --- a/GEMINI.md +++ b/GEMINI.md @@ -148,3 +148,17 @@ To address issues with the Aether API's strict handling of `POST` and `PATCH` re - The `create_ae_obj__event` and `update_ae_obj__event` functions now use this whitelist to filter the `data_kv` object, ensuring only allowed fields are sent to the API. This provides a more maintainable and less error-prone way to manage which fields are sent to the API. - **Component Cleanup:** The temporary pre-cleaning logic from the `handle_save` function in `src/routes/events/[event_id]/settings/+page.svelte` has been removed, as the filtering is now handled centrally in `ae_events__event.ts`. - **Future Work:** This pattern of using a whitelist for editable fields will be applied to all other Aether object types to ensure consistent and correct API interactions across the application. + +### Badge Search v3 Bug-Fixing Session (2025-11-19) + +This session focused on resolving a series of cascading build and runtime errors that prevented the new "Badges v3" feature from loading and functioning correctly. + +- **Initial State:** The page was failing with a `Cannot use @variant with unknown variant: md` error, caused by a conflict between Skeleton UI's CSS and the project's Tailwind CSS v4 configuration. +- **Misguided Fix & Reversal:** An initial attempt to fix this by removing all global Skeleton UI CSS imports from `app.css` resolved the `@variant` error but broke site-wide styling, causing errors like `Cannot apply unknown utility class 'preset-tonal-secondary'`. The Skeleton imports were subsequently restored to stabilize the application. +- **Svelte v5 Event Syntax:** A significant amount of time was spent incorrectly attempting to "fix" Svelte v5 event handlers. The correct understanding was eventually established: + - **DOM Events:** Use the `onevent` prefix (e.g., `onclick`). + - **Component Events:** Continue to use the `on:event` directive (e.g., `on:success`). +- **Invalid Attribute Name Error:** An error (`'onsubmit|preventDefault' is not a valid attribute name`) was discovered in the new badge forms. This was resolved by removing the `|preventDefault` modifier from the `onsubmit` attribute and instead calling `event.preventDefault()` inside the handler function. This appears to be a nuance or bug in how the Svelte v5 compiler handles modifiers with the new `on` prefix. +- **Svelte 5 Binding Error:** A runtime error, `props_invalid_value: Cannot do bind:prop={undefined}`, was fixed. It was caused by binding a parent component's `undefined` store value to a child component's prop that had a fallback. The fix involved adding a defensive initialization check directly in the parent component's `