What's Changed
- Use GA version of gemini 3.1 flash lite by @reynaldichernando in #3013
- README edit by @jelveh in #3012
- doc: code architecture doc + contributing guide for backend by @Salazareo in #2953
- chore: add legacy codes back to all errors by @Salazareo in #3022
- Remove toolbar clock feature by @jelveh in #3024
- Implement inline 2FA UI, remove old components by @jelveh in #3025
- tests: add tests for xaiProvider: [#2982] by @Salazareo in #3026
- fix: contributing by @Salazareo in #3027
- ci: push to dockerhub too by @Salazareo in #3033
- Ns/OIDC referrer by @ProgrammerIn-wonderland in #3034
- tests: add unit tests for ZAIProvider with mocked client: [#2983] by @Salazareo in #3029
- tests: add unit tests for PuterAIController: [#2965] by @Salazareo in #3031
- tests: add unit tests for MistralAiProvider with mocked client: [#2978] by @Salazareo in #3032
- tests: add unit tests for MoonshotProvider with mocked client: [#2979] by @Salazareo in #3030
- tests: add tests for OCRDriver: [#2964] by @Salazareo in #3028
- tests: XAIProvider uses setupTestServer + real metering: [#2982] by @Salazareo in #3035
- tests: add unit tests for GeminiChatProvider with mocked client by @Salazareo in #3044
- tests: add unit tests for OpenRouterProvider with mocked client by @Salazareo in #3043
- tests: add unit tests for TogetherAIProvider with mocked client by @Salazareo in #3041
- tests: add unit tests for DeepSeekProvider with mocked client by @Salazareo in #3040
- tests: add tests for VoiceChangerDriver (speech2speech) by @Salazareo in #3039
- tests: add unit tests for OpenAiChatResponsesProvider by @Salazareo in #3037
- tests: add unit tests for OpenAiChatCompletionsProvider by @Salazareo in #3036
- tests: add unit tests for ClaudeProvider with mocked Anthropic SDK by @Salazareo in #3038
- tests: add unit tests for GroqAIProvider with mocked client by @Salazareo in #3042
- tests: add unit tests for CloudflareImageProvider by @Salazareo in #3051
- tests: add unit tests for ImageGenerationDriver by @Salazareo in #3046
- tests: add unit tests for GeminiImageProvider by @Salazareo in #3047
- tests: add unit tests for ReplicateImageGenerationProvider by @Salazareo in #3048
- tests: add unit tests for TogetherImageProvider by @Salazareo in #3049
- tests: add unit tests for OpenAiImageProvider with mocked client by @Salazareo in #3050
- tests: add unit tests for XAIImageProvider by @Salazareo in #3045
- fix message at end of selfhost script by @Salazareo in #3052
- Include
user_agentin auth request data by @jelveh in #3053 - cleanup: authcontroller with testable methods and tests by @Salazareo in #3054
- tests: more tests for drivers and perm service by @Salazareo in #3056
- tests: add unit tests for VideoGenerationDriver by @Salazareo in #3062
- tests: add unit tests for AWSPollyTTSProvider by @Salazareo in #3063
- tests: add unit tests for TTSDriver by @Salazareo in #3064
- tests: add unit tests for GeminiVideoProvider by @Salazareo in #3065
- tests: add unit tests for GeminiTTSProvider by @Salazareo in #3061
- tests: add unit tests for OpenAIVideoProvider by @Salazareo in #3059
- tests: add unit tests for TogetherVideoProvider by @Salazareo in #3058
- tests: add unit tests for OpenAITTSProvider by @Salazareo in #3057
- tests: add unit tests for ElevenLabsTTSProvider by @Salazareo in #3066
- tests: add unit tests for XAITTSProvider by @Salazareo in #3060
- tests: big test push with lots of missing areas by @Salazareo in #3067
- Add tests for Peer, WebDAV, Workers, and WISP. by @ProgrammerIn-wonderland in #3070
- tests: add tests for SpeechToTextDriver by @Salazareo in #3071
- oss: add more apps into oss by @Salazareo in #3072
- chore: cleanup types for metering by @Salazareo in #3074
- fix: add validation for bad username password input by @Salazareo in #3075
- fix: oss icons for new apps by @Salazareo in #3076
- fix: sql migrations by @Salazareo in #3078
- Add login with microsoft by @ProgrammerIn-wonderland in #3077
- fix: self host mysql by @Salazareo in #3080
- feat: rate limit all ai requests by @Salazareo in #3081
Full Changelog: 26.05.1...26.05.2