- Remove complex per-event sound enable/disable settings
- Replace dual volume controls with single "Sound Pack Volume"
- Add "None" sound pack option to disable all sounds
- Fix boolean settings parsing in settings dialog
- Update documentation to reflect simplified sound system
Sound system is now intuitive: select a sound pack (or "None")
and set one volume level. Much cleaner than the previous
per-event checkboxes and confusing dual volume controls.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- **Fixed duplicate sound events**: Prevent success/shutdown sounds from playing multiple times during timeline switches and app quit
- **Added event coordination patterns**: Implemented flags and source tracking to prevent circular UI event chains
- **Completed sound event coverage**: Added missing sound methods (play_favorite, play_follow, play_unfollow, play_direct_message, play_post) and wired them to user actions
- **Enhanced notification system**: Fixed desktop notifications ignoring enable/disable settings by adding missing notifications section to default config
- **Improved timeline-specific sounds**: Conversations now use direct_message sound instead of generic timeline_update sound
- **Added duplicate code prevention guidelines**: Comprehensive CLAUDE.md section with patterns, checklist, and testing requirements to prevent future duplicate implementations
- **Sound pack compatibility**: Full support for both default pack (private_message, post_sent) and Doom pack (direct_message, post) naming conventions with intelligent fallback
All sound events now properly trigger on user actions: boost/favorite posts, follow/unfollow users, notifications, timeline updates, and lifecycle events.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add dedicated Messages timeline with conversation threading
- Implement bookmarks timeline for saved posts
- Support both standard ActivityPub conversations and Pleroma chats
- Auto-mark conversations as read when selected
- Full pagination support for messages and bookmarks
- Reorder timeline tabs for better UX (Messages now second tab)
- Remove verbose prefixes for cleaner accessibility
- Add conversation management API endpoints
- Maintain accessibility-first design with no text truncation
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add autocomplete_end sound event for completion confirmation
- Remove programmatic sound generation in favor of sound pack files
- Implement state tracking to prevent duplicate autocomplete sounds
- Add comprehensive sound system policy to CLAUDE.md
- Restore full CLAUDE.md documentation with development workflow
- Update Doom sound pack to include autocomplete_end.ogg mapping
Sound behavior improvements:
- Autocomplete sound plays once per session when suggestions appear
- Autocomplete_end sound plays when user selects or dismisses suggestions
- State resets cleanly for next autocomplete interaction
- Follows sound pack architecture instead of generating audio
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Implements complete post management and social interaction capabilities:
**Post Management:**
- Delete posts with confirmation dialog (owned posts only)
- Edit posts using existing compose dialog (owned posts only)
- Robust ownership validation and error handling
**Follow System:**
- Follow/unfollow users from context menus and keyboard shortcuts
- Manual follow dialog for @user@instance lookups
- Account search and validation before following
- Smart context menu options based on post ownership
**Timeline Extensions:**
- Followers tab showing accounts following you
- Following tab showing accounts you follow
- Seamless integration with existing timeline system
- Account list display for social relationship viewing
**Keyboard Shortcuts:**
- Ctrl+Shift+E: Edit post
- Shift+Delete: Delete post (with confirmation)
- Ctrl+Shift+F: Follow user
- Ctrl+Shift+U: Unfollow user
- Ctrl+Shift+M: Manual follow dialog
**ActivityPub API Extensions:**
- edit_status() method for post editing
- get_relationship() method for follow status checking
- Enhanced followers/following pagination support
**Critical Accessibility Fix:**
- Eliminated ALL text truncation throughout the application
- Added explicit no-truncation rule to development guidelines
- Full content accessibility for screen reader users
All features maintain Bifrost's accessibility-first principles with proper error handling, user feedback, and complete information display.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Full ActivityPub support for Pleroma, GoToSocial, and Mastodon
- Screen reader optimized interface with PySide6
- Timeline switching with tabs and keyboard shortcuts (Ctrl+1-4)
- Threaded conversation navigation with expand/collapse
- Cross-platform desktop notifications via plyer
- Customizable sound pack system with audio feedback
- Complete keyboard navigation and accessibility features
- XDG Base Directory compliant configuration
- Multiple account support with OAuth authentication
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>