Commit graph

33 commits

Author SHA1 Message Date
fullsizemalt
9914fdb802 feat: Add band name to show pages and fix multi-band UX issues
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-28 18:46:21 -08:00
fullsizemalt
d3557fedbb fix: Add missing Sheet UI component
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-28 18:09:51 -08:00
fullsizemalt
c026af2720 fix: Update Goose with correct MBID
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-28 17:47:39 -08:00
fullsizemalt
619c91e2f5 fix: Correct Grateful Dead MBID
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-28 17:46:57 -08:00
fullsizemalt
f2ad02df81 fix: Add city to venue slugs for uniqueness
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-28 17:42:27 -08:00
fullsizemalt
afb55153e2 fix: Add vertical slug prefix to show slugs for cross-band uniqueness
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-28 17:38:56 -08:00
fullsizemalt
5ee6735a99 fix: Add vertical slug prefix to song slugs for uniqueness
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-28 17:37:52 -08:00
fullsizemalt
d11878fdcd fix: DynamicImporter vertical bug + increase rate limit to 2s
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-28 17:33:14 -08:00
fullsizemalt
73df24f28f feat: Add universal setlist.fm importer with MBID map
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-28 17:30:34 -08:00
fullsizemalt
cdaeec1280 feat: Add comprehensive band seed (26 bands from Nugs catalog)
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-28 17:21:23 -08:00
fullsizemalt
ee89fcef7e feat: Add seed script for TTB, Ween, moe., Disco Biscuits
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-28 17:14:31 -08:00
fullsizemalt
0bdb7ca8f6 fix: Add get_current_user_optional for public endpoints
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-28 17:06:44 -08:00
fullsizemalt
fae5349f9c fix: Remove escaped quotes in badge definitions
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-28 17:04:00 -08:00
fullsizemalt
c8e5a48d57 feat: Groups refinement and band theming
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
- Group model: Add vertical_id scoping, image_url
- Vertical model: Add logo_url, accent_color for branding
- Groups router: Add vertical filter, member count, leave endpoint
- Fix CI/CD deploy.yml git clone URL (runfoo-org)
2025-12-28 16:57:41 -08:00
fullsizemalt
a9eb35fa75 feat: Add cross-band badges for multi-band activity
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
- Scene Explorer: 2+ bands attended
- Multi-Scene Fan: 5+ bands attended
- Scene Master: 10+ bands attended
- Jam Ambassador: 3+ bands reviewed
2025-12-28 16:50:45 -08:00
fullsizemalt
99e5924588 feat: Sprint 2 - empty states, discovery, attendance stats
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
- Add EmptyState component with 6 variants
- Add discover.py router with smart filtering
  - GET /discover/shows (year, venue, city, tour filters)
  - GET /discover/years
  - GET /discover/recent
- Add GET /attendance/me/stats (by vertical breakdown)
2025-12-28 16:49:24 -08:00
fullsizemalt
fe81271ab3 feat: Mobile-optimized band selector with sheet drawer
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
- Desktop: Existing dropdown menu
- Mobile: Bottom sheet with large touch targets (h-14)
- Uses responsive classes (hidden md:block / md:hidden)
2025-12-28 16:41:25 -08:00
fullsizemalt
8718fc663a feat: Add relisten_link field to Show model
- Adds archive.org/Relisten deep link support
- Complements existing nugs_link, youtube_link, bandcamp_link
2025-12-28 16:40:54 -08:00
fullsizemalt
465017cda9 feat: Add On This Day endpoint (P2)
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
- GET /on-this-day - shows matching today's month/day in history
- GET /on-this-day/highlights - top 5 for homepage widget
- Supports ?vertical= filter and ?month=&day= override
2025-12-28 16:39:52 -08:00
fullsizemalt
35ce12bc84 feat: Sprint 1 frontend polish
- Add landing page with hero, scenes, featured bands (FR-004)
- Add cross-band versions fetch to song page (FR-008)
- Create sprint plan artifact

Aligns with Specify spec fediversion-multi-band.md
2025-12-28 16:38:52 -08:00
fullsizemalt
159cbc853c feat: Enhance musician API with cross-band sit-in tracking
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
- Add sit_in_summary to GET /musicians/{slug}
- Add stats: total_bands, current_bands, total_sit_ins
- Include song_title, show_date, vertical in guest appearances
- Add seed_musicians.py for initial musician data
2025-12-28 16:30:38 -08:00
fullsizemalt
5b236608f8 feat: Add SongCanon API for cross-band song linking
- Add routers/canon.py with endpoints:
  - GET /canon - list all canonical songs with versions
  - GET /canon/{slug} - get canon with all band versions
  - GET /canon/song/{id}/related - get related versions
- Add link_canon_songs.py auto-linker script
  - Finds songs with same title across bands
  - Creates SongCanon entries automatically
  - Run with --apply to execute
2025-12-28 16:28:58 -08:00
fullsizemalt
19c5e97e7f feat: Add scene filtering to verticals API
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
- GET /verticals now supports ?scene= parameter
- Add GET /verticals/scenes endpoint
- Filter verticals by is_active=true
2025-12-28 16:07:46 -08:00
fullsizemalt
704a8d9a0b feat: Add Scene model for band genre categorization
- Add Scene model (Jam, Bluegrass, Dead Family, Funk)
- Add VerticalScene join table (many-to-many)
- Update Vertical with setlistfm_mbid, is_active, is_featured
- Add scenes relationship to Vertical
- Add seed_scenes.py script to populate initial data
2025-12-28 16:07:20 -08:00
fullsizemalt
5ced96f4e6 feat: Add personalized feed endpoint with vertical filtering
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
- Add GET /feed/me endpoint
- Filters reviews and attendance by user's band preferences
- Excludes 'hidden' display_mode bands
- Falls back to all bands if no preferences set
2025-12-28 16:05:43 -08:00
fullsizemalt
c1c041bbe9 feat: Add user vertical preferences API and onboarding UI
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
Backend:
- Add routers/verticals.py with CRUD endpoints
- GET /verticals - list all bands
- POST /verticals/preferences/bulk - onboarding bulk set
- CRUD for individual preferences

Frontend:
- Add BandOnboarding component with checkbox grid
- Add /onboarding page route
- Calls bulk preferences API on submit
2025-12-28 16:04:18 -08:00
fullsizemalt
d8b949a965 refactor: Remove emojis and band colors from codebase
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
- Simplify Vertical model (remove color, emoji fields)
- Update vertical-context.tsx to just slug/name
- Update band-selector.tsx (no colors)
- Update all [vertical] page routes (no emojis in headings)

Themes will be added later as a separate feature.
2025-12-28 15:07:42 -08:00
fullsizemalt
5c1b05a169 docs: Add Tailscale SSH push instructions to README
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-28 14:56:06 -08:00
fullsizemalt
56f52de7fc feat: Add cross-band entity relationship models
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
Schema additions for fediversion multi-band architecture:

- SongCanon: Canonical master songs for cross-band linking
  (e.g., 'Dark Star' links GD, D&C, Billy Strings versions)

- UserVerticalPreference: User band display preferences
  - display_mode: primary/secondary/attribution_only/hidden
  - priority: Sort order for UI
  - notify_on_show: Per-band notification settings

- Vertical additions:
  - primary_artist_id: Link to main Artist entity
  - color: Hex branding color
  - emoji: Display emoji

- Song additions:
  - canon_id: Link to SongCanon for cross-band tracking
2025-12-28 14:51:22 -08:00
fullsizemalt
42ede48a70 fix: Use fediversion.runfoo.run only (no .xyz domain yet) 2025-12-28 14:46:41 -08:00
fullsizemalt
4782b50f78 feat: Configure CI/CD for VPS deployment
- Update .forgejo/workflows/deploy.yml for fediversion
  - testing branch -> nexus-vector (fediversion.runfoo.run)
  - production branch -> tangible-aacorn (fediversion.xyz)
- Update docker-compose.yml:
  - Ports: backend 8030, frontend 3030
  - Network: fediversion
  - Add PHISHNET/SETLISTFM/GRATEFULSTATS API key env vars
  - Traefik labels for fediversion domains
  - Umami analytics at stats.fediversion.xyz
2025-12-28 14:36:17 -08:00
fullsizemalt
29c5d30ebb feat: Add multi-vertical frontend infrastructure
Phase 3 - Frontend Multi-Vertical Support:
- Add VerticalContext for band state management
- Add BandSelector dropdown component
- Create dynamic [vertical] routes for shows, songs, venues
- Update navbar to use band selector and vertical-aware links
- Update api-config.ts for Fediversion domain
- Rebrand from Elmeg to Fediversion
2025-12-28 13:56:22 -08:00
fullsizemalt
b4cddf41ea feat: Initialize Fediversion multi-band platform
- Fork elmeg-demo codebase for multi-band support
- Add data importer infrastructure with base class
- Create band-specific importers:
  - phish.py: Phish.net API v5
  - grateful_dead.py: Grateful Stats API
  - setlistfm.py: Dead & Company, Billy Strings (Setlist.fm)
- Add spec-kit configuration for Gemini
- Update README with supported bands and architecture
2025-12-28 12:39:28 -08:00