26.05.2

HeyPuter/puter26.05.2May 11, 2026by Salazareo

AI Summary

A testing-heavy release adding unit tests for almost every AI provider (OpenAI, Claude, Gemini, etc.) and backend controller. Includes inline 2FA UI, rate limiting for AI requests, and login with Microsoft.

Key Highlights

  • Comprehensive unit tests for AI providers
  • Rate limit all AI requests
  • Inline 2FA UI implementation
  • Added login with Microsoft
  • CI/CD improvements (Dockerhub push)

New Features

  • Login with Microsoft
  • Rate limiting for AI requests
  • Extensive test suite coverage (drivers, controllers)
  • Inline 2FA UI
  • Legacy codes back in errors

Full Release Notes

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


**Full Changelog**: https://github.com/HeyPuter/puter/compare/26.05.1...26.05.2