- Replace deprecated account_balance with balance on Customer objects
- Replace deprecated date with created on Invoice objects
These API attribute changes in the newer Stripe gem were causing
NoMethodError exceptions on the billing history page.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Migrate from deprecated sources API to modern payment_methods API in SubscriptionsController
- Update subscription plan modifications to use Subscription.modify instead of direct assignment
- Fix payment method creation/deletion to use PaymentMethod.create/detach instead of sources
- Update view templates to use new payment_methods data structure
- Migrate price.id usage from deprecated plan.id in data integrity tasks
- Add comprehensive test suite with proper Stripe API stubs
- Add missing test gems: rspec-rails, webmock, factory_bot_rails, shoulda-matchers
This resolves Error 500 when users try to upgrade to Premium subscriptions.
The original error was: NoMethodError - undefined method 'total_count' for nil:NilClass
caused by stripe_customer.sources.total_count when sources API returned nil.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Major redesign of Collections system including:
## Collections Index Page Redesign
- Replace massive hero with streamlined editorial header
- Implement fully functional tab navigation (Featured, My Collections, Following, Open for Submissions)
- Add professional collection cards with rich metadata display
- Create responsive mobile navigation with horizontal scroll
- Add editorial newspaper aesthetic with amber color scheme
- Include SEO optimization and accessibility features
## Content-Type Specific Collection Pages
- Filter editor's picks by content type on /collections/:id/:content_type pages
- Add content-type specific theming with dynamic colors and icons
- Update masthead with content-type focused titles and breadcrumbs
- Highlight active content type in navigation pills
- Change section titles to be content-type specific ("Featured Characters", "Published Character Pages")
## Collection Card Component
- Create comprehensive collection card partial with error handling
- Display collection stats, content types, submission status
- Add hover effects and professional styling
- Handle nil values gracefully for production safety
## Technical Improvements
- Fix JavaScript class handling issues that prevented tab switching
- Add smooth transitions and loading states
- Implement mobile-optimized navigation with touch scrolling
- Include proper focus states for accessibility
- Add comprehensive error handling for nil collection data
- Update billing redirect flow for upgrade buttons
The Collections feature now provides a professional, newspaper-style editorial experience where getting published feels prestigious and exclusive.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Major UX improvements that significantly enhance the collection creation experience:
## Multi-Step Wizard Features:
- 4-step progressive workflow: Basics → Visual → Content → Settings
- Interactive step navigation with progress indicator
- Visual step completion states (active, completed, disabled)
- Form validation before allowing step progression
- Keyboard navigation support (Ctrl+Arrow keys)
- Auto-save functionality with visual feedback
## Live Preview Panel:
- Real-time preview updates as users type and make selections
- Split-screen layout with form on left, preview on right
- Desktop/mobile preview toggle functionality
- Dynamic content type visualization
- Privacy and submission status preview
- Theme preview with color scheme changes
## Enhanced Form Experience:
- Progressive disclosure of form sections
- Smart content type selection (All/None/Common shortcuts)
- Theme selection with visual previews
- Character counter with color-coded warnings
- Better error handling and validation feedback
- "Save Draft" functionality for work-in-progress
## Technical Implementation:
- Comprehensive JavaScript controller for wizard logic
- Stimulus-compatible data attributes for future enhancement
- Responsive design that works on mobile and desktop
- Accessibility improvements with proper ARIA labels
- Performance optimizations with debounced auto-save
## User Experience Benefits:
- Reduces cognitive load by breaking complex form into steps
- Provides immediate visual feedback on choices
- Prevents data loss with auto-save
- Makes collection creation feel guided and intuitive
- Significantly improves completion rates through better UX flow
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace mixed MaterializeCSS/TailwindCSS with comprehensive modern design
- Add beautiful gradient hero section with collection branding and breadcrumbs
- Organize form into logical card-based sections with color-coded headers
- Implement enhanced form controls with custom styling:
* Custom checkboxes with visual feedback for content types
* Toggle switches for submission settings
* Drag-and-drop file upload with visual states
* Character counter for description field
* Radio buttons with descriptive layouts
- Add interactive JavaScript features:
* Select All/None/Common Types for content selection
* Progressive disclosure for submission options
* Real-time character counting with color feedback
* Drag-and-drop file upload enhancement
- Improve UX with better visual hierarchy and spacing
- Add comprehensive help text and guidance throughout
- Maintain all existing functionality while enhancing usability
- Ensure responsive design works across all screen sizes
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace MaterializeCSS with comprehensive TailwindCSS design system
- Add beautiful gradient hero section with content type branding
- Implement responsive breadcrumb navigation and user profile integration
- Create dual view modes: grid cards and detailed list view with toggle
- Add elegant content cards with hover animations and image backgrounds
- Include comprehensive stats display (item count, word count)
- Implement proper empty state handling with content type descriptions
- Add tag filtering and cross-linking functionality
- Maintain all existing image loading and favorite/basil commission logic
- Ensure responsive design works across all screen sizes
- Add smooth transitions and modern card shadows throughout
- Include JavaScript view toggle functionality for enhanced UX
Covers all content type pages: /users/1/universes, /users/1/characters, etc.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace MaterializeCSS with modern TailwindCSS design
- Add beautiful gradient hero section with user profile and tag information
- Implement responsive breadcrumb navigation
- Create elegant content cards with hover effects and smooth transitions
- Add proper empty state handling with actionable CTA
- Organize content by type with clear section headers
- Include tag filtering and cross-linking between related tags
- Add backdrop blur effects and modern card shadows
- Maintain all existing functionality while improving visual design
- Ensure responsive layout works across all screen sizes
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace problematic joins on polymorphic content_page association
- Filter content page shares in Ruby instead of SQL to avoid polymorphic join issues
- Update activity streak calculation to work with filtered array instead of ActiveRecord relation
- Maintain privacy filtering by checking content_page.privacy in Ruby
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Filter all content to show only public items on profile pages
- Remove "made an edit" activities from activity feeds and timeline
- Update activity streak calculation to use only content shares
- Clean up UI references to edit activities in overview and activity tabs
- Fix polymorphic association loading issue in content page shares
- Ensure tag filtering only shows public content across all content types
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Merged duplicate attributes editors into single route
- Removed /plan/:content_type/attributes-tailwind route and controller method
- Moved modern Tailwind attributes editor to main /attributes route
- Fixed dashboard ArgumentError: Nil location provided. Can't build URI
- Enhanced HasImageUploads concern with better Active Storage handling
- Added nil-safety guards to header_asset_for method
- Improved caching logic to prevent nil value storage
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add real-time autocomplete endpoint with fast name-only queries
- Replace static search form with interactive Alpine.js component
- Include 300ms debounced search with keyboard navigation support
- Add instructional help dropdown when search input is focused but empty
- Implement proper content type icons with hex colors instead of CSS classes
- Add database indexes for optimized name searches across all content types
- Support arrow key navigation, Enter to select/search, Escape to close
- Maintain full search functionality as fallback for comprehensive results
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace PostgreSQL ILIKE with cross-database LOWER/LIKE queries
- Add multi-word search support with AND logic (e.g., "red dragon" finds "dragon with red scales")
- Search both Attribute values and entity name columns for comprehensive results
- Add database-aware search indexes (GIN for PostgreSQL, standard for SQLite)
- Implement result pagination and improved relevance sorting
- Fix SQLite compatibility for development environments
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>