Strengthens code quality guidelines by establishing strict TypeScript practices that prohibit `any` types and minimize type suppressions.
Updates Copilot instructions to emphasize production-ready code with comprehensive type safety rules, error handling requirements, and reliability standards. Explicitly discourages type escape hatches in favor of proper type definitions.
Refactors navigation implementation to use URLSearchParams instead of object-based params, eliminating the need for type suppression while maintaining functionality.
Removes unnecessary type error suppressions and unused properties throughout codebase, aligning with new standards.
Fixes missing dependencies in useMemo and useCallback hooks to prevent stale closures and potential bugs.
Adds null/undefined guards before navigation in music components to prevent crashes when attempting to navigate with missing IDs.
Corrects query key from "company" to "genre" in genre page to ensure proper cache invalidation.
Updates Jellyseerr references to Seerr throughout documentation and error messages for consistency.
Improves type safety by adding error rejection handling in SeerrApi and memoizing components to optimize re-renders.
Reorganizes the README documentation to better communicate features and setup instructions.
Renames "Experimental Features" section to "How It Works" to better reflect the maturity and purpose of the features. Removes emphasis on experimental status of downloads and Chromecast, consolidating information under clearer headings.
Improves formatting and consistency throughout:
- Standardizes heading levels and removes emoji prefixes from subsections
- Enhances development setup instructions with better formatting and clearer steps
- Improves license section readability with proper paragraph spacing
- Adds consistent punctuation to section endings
Removes detailed feature descriptions for music library and consolidates search providers information under a dedicated subsection, making the document more scannable and focused on how the app works rather than listing every feature.
Removes extensive dead code including unused components, utilities, and augmentations that were no longer referenced in the codebase.
Simplifies play settings logic by removing complex stream ranking algorithm in favor of direct previous index matching for audio and subtitle selections.
Removes aspectRatio prop from video player as it was set to a constant "default" value and never changed.
Inlines POSTER_CAROUSEL_HEIGHT constant directly where used instead of importing from centralized constants file.
Eliminates unused features including image color extraction for TV platforms, M3U8 subtitle parsing, and various Jellyfin API helpers that were no longer needed.
Cleans up credential management by making internal helper functions private that should not be exposed to external consumers.
Standardizes capitalization in user-facing messages to follow proper sentence casing conventions.
Changes "Downloaded" to "downloaded" in the no internet message and "No Trailer Available" to "No trailer available" for consistency with standard UI text formatting guidelines.
Prevents the tags selection UI from rendering when the service has no tags configured.
Wraps the tags dropdown component in a conditional check to only display when tags exist in the default service details, avoiding empty or broken UI states.
Resolves React warning about missing keys in list rendering by converting fragment to array with unique key props for each streamystats component.
Also wraps promoted watchlists in a View container to properly handle props spreading, preventing props from being passed through to individual watchlist sections.
Updates branding and naming conventions to use "Seerr" instead of "Jellyseerr" across all files, components, hooks, and translations.
Renames files, functions, classes, variables, and UI text to reflect the new naming convention while maintaining identical functionality. Updates asset references including logo and screenshot images.
Changes API class name, storage keys, atom names, and all related utilities to use "Seerr" prefix. Modifies translation keys and user-facing text to match the rebrand.
Enhances README with comprehensive feature categorization including Media Playback, Media Management, and Advanced Features sections
Expands documentation for music library support, search providers (Marlin, Streamystats, Jellysearch), and plugin functionality
Updates FAQ section with more detailed answers about library visibility, downloads, subtitles, TV platform support, and Seerr integration
Corrects typos throughout the application:
- Fixes "liraries" to "libraries" in hide libraries settings
- Changes "centralised" to "centralized" for consistency
- Updates "Jellyseerr" references to "Seerr" throughout codebase
Adds missing translations for player settings including aspect ratio options, alignment controls, and MPV subtitle customization
Improves consistency in capitalization and punctuation across translation strings
Removes empty download settings component files and simplifies download feature description in translations.
The download settings components contained only placeholder implementations that returned null, indicating they were not in use. Updates the feature description to remove references to optimized server and background downloads, providing a clearer and more straightforward explanation of the download functionality.
Improves consistency across user-facing text by:
- Normalizing sentence case in error messages and labels (e.g., "Username is required" instead of "Username Is Required")
- Fixing inconsistent capitalization in feature descriptions and UI text
- Standardizing punctuation, particularly replacing semicolons where appropriate and ensuring consistent usage of "log in" vs "login"
- Correcting article usage ("the left side" instead of "left side")
- Updating terminology consistency (e.g., "tv shows" instead of "tv-shows", "optimized" instead of "optimize")
These changes enhance readability and professionalism throughout the application interface.
Prevents the tags selection UI from rendering when the service has no tags configured.
Wraps the tags dropdown component in a conditional check to only display when tags exist in the default service details, avoiding empty or broken UI states.
Resolves React warning about missing keys in list rendering by converting fragment to array with unique key props for each streamystats component.
Also wraps promoted watchlists in a View container to properly handle props spreading, preventing props from being passed through to individual watchlist sections.
Updates branding and naming conventions to use "Seerr" instead of "Jellyseerr" across all files, components, hooks, and translations.
Renames files, functions, classes, variables, and UI text to reflect the new naming convention while maintaining identical functionality. Updates asset references including logo and screenshot images.
Changes API class name, storage keys, atom names, and all related utilities to use "Seerr" prefix. Modifies translation keys and user-facing text to match the rebrand.