26.08
antonibigata/keysync26.08Aug 6, 2026by Salazareo
AI Summary
This release focuses on performance improvements for app startup speed, security enhancements via attestations, and robust bug fixes for AI chat, file operations, and authentication.
Key Highlights
- Performance improvements for app opens and telemetry
- Replaced Nginx with Caddy
- Added sandboxed app workers
- Support for desktop app linking
New Features
- Performance improvements for app opens
- Replaced Nginx with Caddy
- Sandboxed app workers
- Desktop app linking support
- 'Keep Both' option for name conflicts
Full Release Notes
## What's Changed * perf: try to improve app opens speed by @Salazareo in https://github.com/HeyPuter/puter/pull/3462 * remove deprecated ai models by @reynaldichernando in https://github.com/HeyPuter/puter/pull/3444 * add fixes 1 by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/3458 * Replaced Nginx with Caddy by @rowin-C in https://github.com/HeyPuter/puter/pull/3378 * fix: thumbnail res by @Salazareo in https://github.com/HeyPuter/puter/pull/3465 * chore: kill collector by @Salazareo in https://github.com/HeyPuter/puter/pull/3466 * feat: make uninstall also revoke + dashboard css changes by @Salazareo in https://github.com/HeyPuter/puter/pull/3469 * fix(ai-chat): forward temperature 0 and max_tokens 0 to Completions providers by @Ayush7614 in https://github.com/HeyPuter/puter/pull/3456 * ci: attach provenance and SBOM attestations to the published image by @kobihikri in https://github.com/HeyPuter/puter/pull/3463 * fix(puter-js): forward temperature 0 and max_tokens 0 in ai.chat by @Ayush7614 in https://github.com/HeyPuter/puter/pull/3455 * fix(puter-js): size img2txt data URIs by decoded bytes by @Ayush7614 in https://github.com/HeyPuter/puter/pull/3457 * fix: limit api pointing to apps only by @Salazareo in https://github.com/HeyPuter/puter/pull/3470 * perf: traces and perf improvements by @Salazareo in https://github.com/HeyPuter/puter/pull/3471 * fix(ai-chat): preserve max_tokens 0 for Alibaba, DeepSeek, and Claude by @Ayush7614 in https://github.com/HeyPuter/puter/pull/3472 * fix(puter-js): ignore peer offers for unknown connections by @Ayush7614 in https://github.com/HeyPuter/puter/pull/3473 * fix: errors for bad keys by @Salazareo in https://github.com/HeyPuter/puter/pull/3475 * driver controller change by @Salazareo in https://github.com/HeyPuter/puter/pull/3477 * fix: PUT-1398 by @Salazareo in https://github.com/HeyPuter/puter/pull/3478 * Apps: normalize filetype associations to bare lowercase extensions by @jelveh in https://github.com/HeyPuter/puter/pull/3479 * otel: better telemetry numbers by @Salazareo in https://github.com/HeyPuter/puter/pull/3480 * GUI: add npm start --server=<domain> to run the GUI against a remote … by @jelveh in https://github.com/HeyPuter/puter/pull/3481 * GUI: fix dev-server port-retry crash under Express 5 by @jelveh in https://github.com/HeyPuter/puter/pull/3482 * change cors auth path by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/3464 * fix: auth me for local dev by @Salazareo in https://github.com/HeyPuter/puter/pull/3484 * feat: sandboxed app workers by @Salazareo in https://github.com/HeyPuter/puter/pull/3486 * fix: auth message popups by @Salazareo in https://github.com/HeyPuter/puter/pull/3487 * fix: open ai cost by @Salazareo in https://github.com/HeyPuter/puter/pull/3488 * feat: slack alarms by @Salazareo in https://github.com/HeyPuter/puter/pull/3489 * tests: big test push for better coverage by @Salazareo in https://github.com/HeyPuter/puter/pull/3490 * fix: alarm channels by @Salazareo in https://github.com/HeyPuter/puter/pull/3491 * fix: surface name collisions when pasting instead of failing silently by @jelveh in https://github.com/HeyPuter/puter/pull/3492 * fix: progress window covering paste conflict dialog; ghost row after Replace by @jelveh in https://github.com/HeyPuter/puter/pull/3493 * fix: thumbnails breaking after copy — duplicate the S3 object per copy by @jelveh in https://github.com/HeyPuter/puter/pull/3494 * fix: phantom name conflict when pasting onto a just-renamed path by @jelveh in https://github.com/HeyPuter/puter/pull/3495 * feat: 'Keep Both' option in name-conflict dialogs by @jelveh in https://github.com/HeyPuter/puter/pull/3496 * add limit bypass by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/3500 * fix(ai-chat): infron default model is dropped by the aggregator alias rule by @meridah7 in https://github.com/HeyPuter/puter/pull/3506 * docs: document the provider option and refresh the vendor list in chat() by @meridah7 in https://github.com/HeyPuter/puter/pull/3505 * fix: PUT-1401 by @Salazareo in https://github.com/HeyPuter/puter/pull/3504 * fix: PUT-1429 by @Salazareo in https://github.com/HeyPuter/puter/pull/3508 * PUT-1436, PUT-1435, PUT-1371 by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/3507 * feat: support dekstop app linking again by @Salazareo in https://github.com/HeyPuter/puter/pull/3511 * fix: oidc issues with cache by @Salazareo in https://github.com/HeyPuter/puter/pull/3512 * Update NPM readme by @reynaldichernando in https://github.com/HeyPuter/puter/pull/3510 ## New Contributors * @Ayush7614 made their first contribution in https://github.com/HeyPuter/puter/pull/3456 * @kobihikri made their first contribution in https://github.com/HeyPuter/puter/pull/3463 **Full Changelog**: https://github.com/HeyPuter/puter/compare/26.07.2...26.08