- Added a section in the Configuration.md to explain the new default performer gender setting and its impact on performer data scraping.
- Updated ScraperDevelopment.md to clarify how the default performer gender is applied when gender is not specified in scraped results.
- Enhanced Scraping.md with details on how the default performer gender setting influences performer scraping.
These changes improve the clarity and usability of the documentation regarding gender handling in the application.
- Introduced a new utility function `withScrapedPerformerDefaultGender` to streamline the assignment of default gender when scraping performer data.
- Replaced inline gender handling logic with the new utility function in both scraping results for new and existing performers, improving code readability and maintainability.
This change enhances the clarity of gender assignment logic during performer data scraping.
- Added a check for empty string input in `GetDefaultPerformerGender` to return nil if no gender is specified.
- Implemented logging for invalid default performer gender values to improve debugging.
This change ensures that the configuration correctly handles cases where the default performer gender is not set, enhancing the robustness of the application.
`setConfigStrong` is a no op when the input pointer is nul. When the UI sends`null`, for when the user sets the setting back to no default, the old setting is saved.
Was able to confirm this was testing. Selecting "none" in the dropdown keeps the previous setting saved and I think this is the issue.
Built a helper or having the UI send "" instead of null could be possible solutions.
- Updated GraphQL schema to clarify the behavior of `defaultPerformerGender`, allowing an empty string to clear the setting.
- Implemented `applyDefaultPerformerGenderInput` function in the resolver to handle updates and clearing of the default performer gender.
- Adjusted the settings panel to directly pass the value for `defaultPerformerGender`, simplifying the change handling.
Made-with: Cursor
- Introduced `defaultPerformerGender` input and output fields in GraphQL schema.
- Updated configuration resolver to handle default performer gender.
- Implemented logic to use default performer gender when creating new performers or scraping data.
- Added UI component for setting default performer gender in settings panel.
- Updated localization for the new default performer gender option.
* Fix WebSocket UTF-8 error for non-UTF-8 file paths in subscriptions
Sanitize log messages and job fields (description, subtasks, error)
before sending over WebSocket. File paths with non-UTF-8 characters
caused the browser to close the connection with "Could not decode a
text frame as UTF-8." Invalid bytes are replaced with U+FFFD.
Only the API response layer is affected — underlying stored data is
unchanged.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Replace direct ToValidUTF8 calls to new sanitiseWebsocketString function
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
* Let the stash ID pill shrink in tagger
On very narrow viewports (e.g. mobile), the stash ID pill will
overflow its container. With this PR, it will instead limit itself
to the width of the container and display with an ellipsis if
necessary.
Fixes#6786
* update postmigration to handle deduplicate folders.
* Split post-migration to perform some tasks before the schema migration
* Reparent files and delete duplicate folder if possible
---------
Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>