- Add MarkCaughtButton component to show page setlist - Fix TypeScript errors in profile, settings, welcome pages - Fix Switch component onChange props - Fix notification-bell imports and button size - Fix performance-list orphaned JSX - Fix song-evolution-chart tooltip types - Add Suspense boundaries for useSearchParams (Next.js 16 requirement)
3.4 KiB
3.4 KiB
Handoff - 2025-12-21
Work Completed
Slug Integration
- Backend: Updated
Show,Song,Venue,Tourmodels/schemas to supportslug.- Updated API routers (
shows.py,songs.py) to lookup by slug or ID. - Migrated database schema to include
slugcolumns using Alembic. - Added
youtube_linkcolumns via script. - Backfilled slugs using
backend/fix_db_data.py.
- Updated API routers (
- Frontend: Updated routing and links for entities.
/shows/[id]->/shows/${show.slug || show.id}/songs/[id]->/songs/${song.slug || song.id}/venues/[id]->/venues/${venue.slug || venue.id}- Updated interfaces to include
slug. - Updated
PerformanceListcomponent to use slugs.
Data Fixes
- Set Names:
- Identified issues with
set_namebeing null due to API parameter mismatch (setnumbervsset). - Updated
import_elgoose.pyto correctly extract and format "Set 1", "Set 2", "Encore" fromsetnumber. - Attempted to backfill existing data but hit an infinite loop issue with API fetching (Slugs were backfilled successfully). Data can be fixed by re-running a corrected importer or custom script.
- Identified issues with
- Slugs:
import_elgoose.pyupdated to generate slugs for new imports.fix_db_data.pysuccessfully backfilled slugs for existing Venues, Songs, Shows, and Tours.
UI Fixes
- Components: Created missing Shadcn UI components (
progress,checkbox). - Show Page: Updated setlist links to point to
/performances/[id]instead of/songs/[id]. - Performance Page: Added "Top Rated Versions" list ranking other performances of the same song.
- Reviews: Updated Review Header formatting to be a single line (Song - Date).
- YouTube: Created
import_youtube.pyscript to link videos to Performances and Shows. ShowPage already supports full show embeds. - Auth: Updated
AuthContextto exposetokenfor the Admin page. - Build: Resolved typescript errors; build process starts correctly.
Current State
- Application: Fully functional slug-based navigation. Links prioritize slugs but fallback to IDs.
- Database:
slugcolumns added and backfilled.youtube_linkcolumns added toShow,Song,Performancetables (manual migrationadd_youtube_links.pyapplied).set_namestill missing for most existing performances (displays as "Set ?").
- Codebase:
- Clean and updated.
check_api.pyremoved. fix_db_data.pyexists but requires a fix for infinite looping (the API likely ignores thepageparameter or cycles data; the script needs to check for duplicate items to break the loop).
- Clean and updated.
Next Steps
- Monitor Production Fix:
- The
fix_db_data.pyscript was deployed totangible-aacorn(elmeg.xyz) and ran successfully. - Verified that 0 performances remain with "Set ?".
slugs are also populated.
- The
- Notifications: Internal notifications are implemented (bell icon). External integrations (Discord, Telegram) are DEPRECATED.
- Audit Results: Site structure is complete. Key pages (About, Terms, Privacy, Profile, Settings) are implemented and responsive. Features align with "Heady Version" goals.
Technical Notes
- Database Migrations: Alembic history was manually adjusted to ignore existing
reaction/badgetables to allowslugmigration to pass on the dev database. - Importer:
import_elgoose.pylogic is updated for future imports.