26.05

HeyPuter/puter26.05May 5, 2026by jelveh

AI Summary

A massive release introducing Workers support, filesystem refactoring, metering service, and extensive internationalization (i18n). Includes support for file generation (image/video) and speech-to-text/speech-to-speech.

Key Highlights

  • Workers support in backend and Node.js
  • Filesystem refactoring (moving to extension)
  • Metering service implementation
  • Extensive i18n support (Armenian, Bulgarian, etc.)
  • Added speech2text and speech2speech

New Features

  • Workers API (exec, FS, networking)
  • Filesystem extension and provider
  • Metering/Billing service
  • AI generation (text-to-image/video)
  • Speech synthesis and transcription
  • Custom domains support
  • Dynamic toolbar

Full Release Notes

## What's Changed
* fix Uncaught TypeError: Cannot read properties of undefined (reading … by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1116
* Update fr.js by @Zac0511 in https://github.com/HeyPuter/puter/pull/1119
* Fix : the issue with the success message not displaying after deployment by @mariatouil in https://github.com/HeyPuter/puter/pull/1072
* Revert "Fix : the issue with the success message not displaying after deployment" by @jelveh in https://github.com/HeyPuter/puter/pull/1121
* #1123: add temperature and max_tokens to completion requests by @brauliopf in https://github.com/HeyPuter/puter/pull/1155
* Enhanced ai command to perfom other commands by @ntwari-bruce in https://github.com/HeyPuter/puter/pull/1156
* Fix the color of the UI on dark mode (e.g. windows control, active sidebar) by @acordero4852 in https://github.com/HeyPuter/puter/pull/1161
* fix: made protocol dynamic in the publishURL displayed on 'Publish As Website' dialogbox by @sashpawar11 in https://github.com/HeyPuter/puter/pull/1170
* Update README.md by @Gautam7352 in https://github.com/HeyPuter/puter/pull/1168
* dev: moved current datetime to toolbar as a widget by @sashpawar11 in https://github.com/HeyPuter/puter/pull/1172
* tweak : moved clock to right between profile and search by @sashpawar11 in https://github.com/HeyPuter/puter/pull/1181
* UIAlert with dynamic icon types and default button configurations by @purohitamann in https://github.com/HeyPuter/puter/pull/1175
* GUI Permission Dialog by @tanveer-brar in https://github.com/HeyPuter/puter/pull/1177
* upgrade node version to 23.9 by @arunabhcode in https://github.com/HeyPuter/puter/pull/1184
* feat: create and export UsageLimitedChatService  by @Awnder in https://github.com/HeyPuter/puter/pull/1182
* add API to get a list of all available models by @arunabhcode in https://github.com/HeyPuter/puter/pull/1160
* Update events docs by @ajaykrishnaswamy in https://github.com/HeyPuter/puter/pull/1164
* [BUG] : fixed-sidebar-headings-contrast by @Hetsavani in https://github.com/HeyPuter/puter/pull/1191
* Polish Translation fix by @FCzajkowski in https://github.com/HeyPuter/puter/pull/1193
* Standardized OpenAI config format and updated documentation issue #1180 by @anuja12mishra in https://github.com/HeyPuter/puter/pull/1195
* Fix generic.secrets.security.detected-aws-account-id.detected-aws-account-id by @kira-offgrid in https://github.com/HeyPuter/puter/pull/1200
* feat: hide icons/show icons feature added to the right-click/secondary click menu on the desktop by @hisham-maarraoui in https://github.com/HeyPuter/puter/pull/1190
* Make it easier to add file extensions to an app in bulk by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1205
* fix: update check_usage_ to only consider past month usage by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1209
* feat: add costly model to FakeChatService by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1211
* fix: clarify variable names in puter.ai.chat method by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1213
* Improve PuterAI module documentation structure by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1216
* tweak: Documentation for Email Testing by @gautamkapoor1709 in https://github.com/HeyPuter/puter/pull/1204
* Fix npm install error on Windows (spawn EINVAL) (#1203) by @kristavlastou in https://github.com/HeyPuter/puter/pull/1214
* Ai command tool function by @ntwari-bruce in https://github.com/HeyPuter/puter/pull/1194
* feat: add public endpoint for models list by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1228
* Split middleware into two different components by @Jomaguy in https://github.com/HeyPuter/puter/pull/1174
* Refactor: Migrate interfaces.js to new registration mechanism by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1239
* Add Remove profile picture button #1245 by @EvaNtziou in https://github.com/HeyPuter/puter/pull/1246
* tweak: reorder and fix Farsi translation of i18n keys by @shushannap in https://github.com/HeyPuter/puter/pull/1169
* fix/bug#1233-iframe-overlap-issue by @Niveditarani in https://github.com/HeyPuter/puter/pull/1250
* Add reauthentication for unauthenticated web clients when Socket api is called by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1267
* change initialization order to make wisp socket on first use of network by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1268
* Puter.net.fetch -- cors exempt wisp based fetch by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1269
* fix accidental checking of requestHead when responseHead should be checked by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1270
* Add support for chunked encoding in puter.net.fetch by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1271
* fix TLS stream premature close issue by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1272
* Housekeeping: Get rid of puter.http/puter.https by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1273
* docs: sync extension events documentation with backendChanges by @TanCodeX in https://github.com/HeyPuter/puter/pull/1281
* make auth UI not required for now by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1283
* Networking: dont sent authentication header if puter.authToken is undefined by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1284
* support for request bodies by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1286
* [docs]: clarify CostService usage and improve metered services discoverability by @TanCodeX in https://github.com/HeyPuter/puter/pull/1287
* fix: enable and fix date command tests (#796) by @krikera in https://github.com/HeyPuter/puter/pull/1295
* Update first-run-issues.md by @atagtm in https://github.com/HeyPuter/puter/pull/1261
* docs(i18n): update Hindi translation of README by @Rohanpawar9921 in https://github.com/HeyPuter/puter/pull/1311
* fix(i18n): Complete Norwegian Nynorsk translation by @bilalkhantanoli in https://github.com/HeyPuter/puter/pull/1314
* feat: add desktop link shortcuts (refs #682) by @rodrick-mpofu in https://github.com/HeyPuter/puter/pull/1219
* dev: extension prefix update, doc helper & docs update by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1318
* fix: arrow key navigation in Explorer (#1089) by @Krisss46 in https://github.com/HeyPuter/puter/pull/1319
* Dynamic toolbar by @jelveh in https://github.com/HeyPuter/puter/pull/1324
* Don't hide the toolbar on mobile and tablet by @jelveh in https://github.com/HeyPuter/puter/pull/1328
* Dynamic toolbar: allow users to customize toolbar sticky by @jelveh in https://github.com/HeyPuter/puter/pull/1330
* Add preliminary support for different voices to `puter.ai.txt2speech()` by @jelveh in https://github.com/HeyPuter/puter/pull/1325
* fix: return proper error message when the model is not found by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1331
* Remove captcha from frontend by @jelveh in https://github.com/HeyPuter/puter/pull/1335
* Puter Worker support in backend and nodejs support + service worker support + web worker support in puterjs by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1316
* Add a basic Firebase Studio config file by @Zac0511 in https://github.com/HeyPuter/puter/pull/1338
* Puter.js workers api by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1339
* aws/polly: add new apis to puter-js, add new args to txt2speech by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1337
* mkdir: return 403 error for mkdir action in the root dir by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1351
* event.puter//user puter and automatic cors exemption handling in puter workers by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1342
* Update Portuguese and Spanish translation README by @IgorJFS in https://github.com/HeyPuter/puter/pull/1363
* Fixed issue: #1033 (Added app category display in Dev Center in main app list) by @JoshJoseph1234 in https://github.com/HeyPuter/puter/pull/1350
* Support streaming drivers in XMLHTTPRequest-less platforms (nodejs, serviceworker) by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1364
* feat(gui): Add animation effects to the taskbar by @GitHubliuzhijie in https://github.com/HeyPuter/puter/pull/1365
* Revert "feat(gui): Add animation effects to the taskbar" by @jelveh in https://github.com/HeyPuter/puter/pull/1366
* Allow multipage apps in puterjs by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1368
* fs: adapt to different mkdir api, block write to root dir, add tests by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1369
* Configurable taskbar position by @jelveh in https://github.com/HeyPuter/puter/pull/1372
* chore: apply Prettier formatting and add formatting config by @Yasir-Rafique in https://github.com/HeyPuter/puter/pull/1347
* fix failed tests in apitest (`move_cart` and `stat`) by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1376
* fix: issue #542 , add missing Norwegian Bokmål translations based on English file by @GlennDmello17 in https://github.com/HeyPuter/puter/pull/1381
* Puter workers FS based backend by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1383
* Puter workers exec by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1384
* fs: ll_mkdir/write -> provider.mkdir/write by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1362
* Puter workers fix URL by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1385
* Fix issue in invalid social media url by @emmanuel-ferdman in https://github.com/HeyPuter/puter/pull/1378
* dev: Replaced human-readable text with i18n keys by @karan1205 in https://github.com/HeyPuter/puter/pull/1382
* worker global s2w -> router by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1386
* Allow - in worker name by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1388
* Puter workers ask for auth if no token by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1389
* hotfix: emit the missing event, fix check condition by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1390
* Make worker names global && return improve error handling for APIError by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1393
* Add coersion to JSON response in workers by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1394
* improve error handling, user specific worker limit by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1396
* Support a few more incoming and global objects in workers  by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1401
* docs: added utils.js build script documentation by @rohanrawat09 in https://github.com/HeyPuter/puter/pull/1402
* Update worker limit by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1405
* Update nb.js by @Prathameshw4 in https://github.com/HeyPuter/puter/pull/1404
* remove sessionStorage params by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1408
* Gui deploy workers by @jelveh in https://github.com/HeyPuter/puter/pull/1409
* Worker api change by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1411
* dev:  query backend for workers.list() and workers.get() now to get path too by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1412
* dev: expose file_uid in worker calls by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1413
* dev: workers, return iso timestamp instead by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1414
* fix: return "null" for file_path and file_uid if backing file is none… by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1418
* dev: migrate away from puter.drivers.call() by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1419
* Workers and websites in dev center by @jelveh in https://github.com/HeyPuter/puter/pull/1417
* remove driver lsmod check by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1421
* Worker app sandboxing by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1422
* filter workers from hosting list by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1426
* fs/event: consolidate fs.written to fs.write by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1392
* Feat/custom domains by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1440
* send source app data to opened app by @jelveh in https://github.com/HeyPuter/puter/pull/1441
* puter.js & gui changes required for cool app by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1425
* Update sl.js by @anderlli0053 in https://github.com/HeyPuter/puter/pull/1445
* fix(desktop): prevent horizontal scrolling by constraining window drag (#710) by @pranav200408 in https://github.com/HeyPuter/puter/pull/1443
* Revert "fix(desktop): prevent horizontal scrolling by constraining window drag (#710)" by @jelveh in https://github.com/HeyPuter/puter/pull/1446
* Added Norwegian Bokmål translations for missing keys by @Shahidpathan22 in https://github.com/HeyPuter/puter/pull/1447
* Dav by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1450
* Reference documention by @onel in https://github.com/HeyPuter/puter/pull/1432
* Reference docs - putility by @onel in https://github.com/HeyPuter/puter/pull/1433
* feat: add 'path' option to showOpenFileDialog by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1453
* fix wrong return value on file cache service by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1455
* Fix: Microsoft office Bearer issue & Allow cors webdav by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1461
* Fix tamil language selection text by @ParkourKarthik in https://github.com/HeyPuter/puter/pull/1460
* macOS webdav pollution fix by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1462
* feat: update Norwegian Nynorsk (nn.js) translations by @Nikhil-Gautam-dev in https://github.com/HeyPuter/puter/pull/1463
* feat: improve 404 error handling in Puter sites with custom page support by @jelveh in https://github.com/HeyPuter/puter/pull/1466
* fix: remove unnecessary scrollbar from Account page (#1307)fix: remove unnecessary scrollbar from Account page (#1307)Fix account scrollbar issue by changing overflow:hidden to overflow:v… by @DHANUSHRAJA22 in https://github.com/HeyPuter/puter/pull/1465
* test: fix apitest, add new unit tests and benchmarks, normalize output by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1467
* fs/memory-provider by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1400
* captcha: add captcha widget to the signup window by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1468
* fs: improve get/set_storage api by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1471
* captcha: imporve condition checks for cloudflare turnstile by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1469
* docs: Add documentation for Entity Storage internals by @tarunsaini04 in https://github.com/HeyPuter/puter/pull/1478
* Revert "docs: Add documentation for Entity Storage internals" by @jelveh in https://github.com/HeyPuter/puter/pull/1479
* fix: puter workers url 🐛  by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1480
* Fix buggy arrow key navigation in start menu by @bomberfish in https://github.com/HeyPuter/puter/pull/1477
* Reduce bottom bound on dragging UIItems by @bomberfish in https://github.com/HeyPuter/puter/pull/1485
* fix(gui): prevent background apps from stealing focus by @rajanarahul93 in https://github.com/HeyPuter/puter/pull/1491
* Fix mac setup bug by @pranav200408 in https://github.com/HeyPuter/puter/pull/1449
* Revert "Fix mac setup bug" by @jelveh in https://github.com/HeyPuter/puter/pull/1492
* Update fr.js by @Zac0511 in https://github.com/HeyPuter/puter/pull/1493
* Create BUG-BOUNTY.md by @jelveh in https://github.com/HeyPuter/puter/pull/1483
* captcha: complete the docs by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1494
* Refactor GeminiService for modularity, error handling, and readability by @imrozkhan205 in https://github.com/HeyPuter/puter/pull/1438
* Revert "Refactor GeminiService for modularity, error handling, and readability" by @jelveh in https://github.com/HeyPuter/puter/pull/1496
* feat(UI): Differentiate tablet UI based on pointer capabilities by @tarunsaini04 in https://github.com/HeyPuter/puter/pull/1482
* feat(i18n): add missing Hindi translations (#1525) by @Deepam02 in https://github.com/HeyPuter/puter/pull/1534
* feat: add expiry support to DBKV, and eslint config by @Salazareo in https://github.com/HeyPuter/puter/pull/1497
* Adding missing Spanish translations by @RicJDev in https://github.com/HeyPuter/puter/pull/1536
* the Arabic (العربية) translation of Puter is Completed by @shadow-taw in https://github.com/HeyPuter/puter/pull/1538
* Complete the Bengali translation of Puter by @Sabbir256 in https://github.com/HeyPuter/puter/pull/1537
* i18n(ta): complete missing Tamil translations in ta.js by @sidshas03 in https://github.com/HeyPuter/puter/pull/1541
* New image models by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1542
* feat: support Gemini imagegen service by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1544
* Updating the Arabic (العربية) translation  by @shadow-taw in https://github.com/HeyPuter/puter/pull/1543
* build(deps): bump form-data from 4.0.0 to 4.0.4 in /tools/api-tester by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1547
* build(deps): bump axios from 1.4.0 to 1.12.0 in /tools/api-tester by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1548
* build(deps): bump get-func-name from 2.0.0 to 2.0.2 in /tools/api-tester by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1549
* build(deps): bump serialize-javascript and mocha in /src/phoenix by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1550
* build(deps): bump braces from 3.0.2 to 3.0.3 in /src/phoenix by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1551
* build(deps): bump path-to-regexp from 6.2.1 to 6.3.0 in /src/phoenix by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1552
* build(deps-dev): bump rollup from 3.23.0 to 3.29.5 in /src/terminal by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1553
* Adding missing translations for Brazilian Portuguese. by @AlfreThiago in https://github.com/HeyPuter/puter/pull/1554
* feat: logging for queries in puter js by @Salazareo in https://github.com/HeyPuter/puter/pull/1484
* fix: br.js transaltions by @Salazareo in https://github.com/HeyPuter/puter/pull/1555
* fix: add Chinese transaltions by @Webb321 in https://github.com/HeyPuter/puter/pull/1559
* Update ko.js with full Korean translations by @tanso0126 in https://github.com/HeyPuter/puter/pull/1558
* Translate and improve emojis by @Aryan01b in https://github.com/HeyPuter/puter/pull/1557
* refactor: make theme service non-blocking and fix captcha issues by @jelveh in https://github.com/HeyPuter/puter/pull/1564
* Romanian Translation Done by @RudareanuLeonard in https://github.com/HeyPuter/puter/pull/1565
* fix: expiry time for dbkv by @Salazareo in https://github.com/HeyPuter/puter/pull/1560
* Updating ru.js by @union-galactic in https://github.com/HeyPuter/puter/pull/1566
* fix: improve PT-BR translation in br.js by @TeetOBeard in https://github.com/HeyPuter/puter/pull/1568
* fix: add Japanese translations (#1519) by @dtakahashi333 in https://github.com/HeyPuter/puter/pull/1570
* Complete Missing Hungarian Translations in hu.js by @iamJ3 in https://github.com/HeyPuter/puter/pull/1572
* Make templates non blocking by @jelveh in https://github.com/HeyPuter/puter/pull/1573
* dev: preflightless stat/readdir/drivercalls by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1561
* doc: added missing Dutch translations by @meezumi in https://github.com/HeyPuter/puter/pull/1575
* added missing values by @Amritpandey5 in https://github.com/HeyPuter/puter/pull/1577
* Cache is king baby! Let's go 🚀 by @jelveh in https://github.com/HeyPuter/puter/pull/1574
* fix: get rid of preflight for non-apifs readdir/stat by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1578
* build(deps): bump form-data from 4.0.2 to 4.0.4 in /test/integration by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1580
* build(deps): bump braces from 3.0.2 to 3.0.3 in /src/terminal by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1581
* build(deps): bump multer from 1.4.5-lts.2 to 2.0.2 by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1582
* build(deps-dev): bump rollup from 3.21.4 to 3.29.5 in /src/phoenix by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1583
* build(deps): bump serialize-javascript and mocha in /src/terminal by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1585
* Add missing polish translation by @kamilkulczyk in https://github.com/HeyPuter/puter/pull/1584
* Refactor file system operations in GUI and puter.js to use eventual consistency by @jelveh in https://github.com/HeyPuter/puter/pull/1579
* ci: drop support and testing for node 18 by @Salazareo in https://github.com/HeyPuter/puter/pull/1587
* tweak: update and complete translation of it.js by @coluccifrancesco in https://github.com/HeyPuter/puter/pull/1588
* add apitest to github actions by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1591
* test: add puterjs test to apiteste by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1590
* npm: release to npm by @Salazareo in https://github.com/HeyPuter/puter/pull/1592
* fix: package name by @Salazareo in https://github.com/HeyPuter/puter/pull/1593
* build(deps): bump serialize-javascript from 6.0.1 to 6.0.2 in /src/puter-js by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1594
* npm: fix publish by @Salazareo in https://github.com/HeyPuter/puter/pull/1595
* Add context menu to apps in the start menu by @bomberfish in https://github.com/HeyPuter/puter/pull/1487
* build(deps): bump requests from 2.32.3 to 2.32.4 in /tools/api-tester/ci by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1598
* Enhance login GUI: improve layout and add show/hide password by @SaifAttar003 in https://github.com/HeyPuter/puter/pull/1599
* Revert "Enhance login GUI: improve layout and add show/hide password" by @jelveh in https://github.com/HeyPuter/puter/pull/1600
* build(deps): bump webpack from 5.89.0 to 5.101.3 in /src/puter-js by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1601
* Don't raise window to the foreground if close or minimize button is clicked by @bomberfish in https://github.com/HeyPuter/puter/pull/1589
* feat: allow setting puter origin via globalThis variables by @Salazareo in https://github.com/HeyPuter/puter/pull/1606
* chore: add jsdoc typings for KV interface by @Salazareo in https://github.com/HeyPuter/puter/pull/1607
* Add Bahasa Malaysia (Malay) i18n Support by @infienite in https://github.com/HeyPuter/puter/pull/1609
* client-cache: update cache-invalidation policy to ts-based comparison by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1611
* feat: Add missing Urdu translations by @Azazel7Kuro in https://github.com/HeyPuter/puter/pull/1618
* fix puterjs throwing errors after consuming message events not meant for it by @velzie in https://github.com/HeyPuter/puter/pull/1612
* feat: Add missing Portuguese translations by @Onitsag in https://github.com/HeyPuter/puter/pull/1615
* dep: updating node dep version to one that supports modules by @Salazareo in https://github.com/HeyPuter/puter/pull/1621
* client-cache: remove pulling by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1620
* feat: DAV Locks support + refactor of DAV method handler by @Salazareo in https://github.com/HeyPuter/puter/pull/1486
* revert: eslint config rules by @Salazareo in https://github.com/HeyPuter/puter/pull/1625
* chore: update @heyputer/kv.js dependency to version 0.2.0 and initial… by @jelveh in https://github.com/HeyPuter/puter/pull/1623
* update client-cache logic by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1626
* feat: add missing Persian and Finnish translations by @mrtbgau in https://github.com/HeyPuter/puter/pull/1614
* feat: Complete missing Ukrainian, Turkish and Thai translations by @Haitam6 in https://github.com/HeyPuter/puter/pull/1616
* fix a typo by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1627
* Added more reference docs to backend by @onel in https://github.com/HeyPuter/puter/pull/1540
* perf: flatten permissions checks for user_to_user perms by @Salazareo in https://github.com/HeyPuter/puter/pull/1562
* Add 'Set as Desktop Background' context menu item to images by @bomberfish in https://github.com/HeyPuter/puter/pull/1635
* Fix bug with context menu positioning on page load by @bomberfish in https://github.com/HeyPuter/puter/pull/1636
* added missing hebrew translations + fixed some existing translation + changed he.js export variable from en to he by @biranzegelman97 in https://github.com/HeyPuter/puter/pull/1634
* fix: permission batch get dedup by @Salazareo in https://github.com/HeyPuter/puter/pull/1637
* Update Indonesian (Bahasa Indonesia) translation of Puter by @skeith in https://github.com/HeyPuter/puter/pull/1638
* feat: metering service  by @Salazareo in https://github.com/HeyPuter/puter/pull/1630
* feat: Add missing Vietnamese translations by @hungdannt in https://github.com/HeyPuter/puter/pull/1641
* fix: increment for non-existent keys by @Salazareo in https://github.com/HeyPuter/puter/pull/1649
* Disable browser context menu on launcher popover by @bomberfish in https://github.com/HeyPuter/puter/pull/1648
* Puter types streaming ai by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1667
* `puter.ui.getLanguage()` should always return a promise by @jelveh in https://github.com/HeyPuter/puter/pull/1668
* Replace "Save As..." with `i18n('Save As…')` by @jelveh in https://github.com/HeyPuter/puter/pull/1670
* Closes #1669 by @jelveh in https://github.com/HeyPuter/puter/pull/1671
* Remove `package-lock.json`, then update it on x64 and arm64. by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1672
* empty: testing pull on deploy server by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1674
* style: small change to test deploy by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1675
* Update ku.js by @gulizar-elhalil in https://github.com/HeyPuter/puter/pull/1677
* add option to automatically set window title to opened file's name by @jelveh in https://github.com/HeyPuter/puter/pull/1678
* I18n for sys dirs by @jelveh in https://github.com/HeyPuter/puter/pull/1679
* Update UIDesktop.js by @jelveh in https://github.com/HeyPuter/puter/pull/1682
* Safari fix for TLS connections in puter by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1683
* feat(Translation): added support for Armenian and also added Bulgarian (Closes #1523) by @Raj4478 in https://github.com/HeyPuter/puter/pull/1676
* fix: preflight issue with protected endpoints by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1688
* fix: options.no_options_auth should be optional chained by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1689
* feat: extract and centralize cost maps for metering service by @Salazareo in https://github.com/HeyPuter/puter/pull/1691
* test: vitest tests for puter js by @Salazareo in https://github.com/HeyPuter/puter/pull/1693
* Sidepanel by @jelveh in https://github.com/HeyPuter/puter/pull/1694
* fix: remove verbose parameters log by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1695
* fix: backward compatibility for puter kv incr/decr by @Salazareo in https://github.com/HeyPuter/puter/pull/1697
* chore: publish npm by @Salazareo in https://github.com/HeyPuter/puter/pull/1698
* feat: manage permission for user to user and dev to app file sharing by @Salazareo in https://github.com/HeyPuter/puter/pull/1567
* Update helpers.js by @jelveh in https://github.com/HeyPuter/puter/pull/1701
* Update globals.js by @jelveh in https://github.com/HeyPuter/puter/pull/1702
* feat: meter open ai by @Salazareo in https://github.com/HeyPuter/puter/pull/1703
* fix: undefined alias array by @Salazareo in https://github.com/HeyPuter/puter/pull/1709
* Added refence documentation by @onel in https://github.com/HeyPuter/puter/pull/1690
* feat: immprove `UIPopover` and `UIWindow` behavior for sidepanel visibility by @jelveh in https://github.com/HeyPuter/puter/pull/1711
* First steps towards init log reduction by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1699
* fix: broken open ai moderation by @Salazareo in https://github.com/HeyPuter/puter/pull/1714
* ci: fix failure by upgrading library by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1713
* feat: meter claude ai by @Salazareo in https://github.com/HeyPuter/puter/pull/1716
* fix: metering service global write and open ai default model by @Salazareo in https://github.com/HeyPuter/puter/pull/1717
* chore: add http-server as a dev dependency and update package scripts by @jelveh in https://github.com/HeyPuter/puter/pull/1718
* Npm run test puterjs by @jelveh in https://github.com/HeyPuter/puter/pull/1719
* Update UIWindow.js by @jelveh in https://github.com/HeyPuter/puter/pull/1720
* fix: bad boolean check by @Salazareo in https://github.com/HeyPuter/puter/pull/1721
* Add in events for thumbnails by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1700
* feat: add openrouter metering by @Salazareo in https://github.com/HeyPuter/puter/pull/1724
* Logs Update by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1723
* fix: openrouter usage calculator by @Salazareo in https://github.com/HeyPuter/puter/pull/1725
* revert: revert devex changes  by @Salazareo in https://github.com/HeyPuter/puter/pull/1728
* Revert "revert: revert devex changes " by @Salazareo in https://github.com/HeyPuter/puter/pull/1729
* cleanup: remove auxilary return for now by @Salazareo in https://github.com/HeyPuter/puter/pull/1727
* Revert "Logs Update" by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1730
* fix: adjust toolbar positioning for sidepanel based on taskbar location by @jelveh in https://github.com/HeyPuter/puter/pull/1731
* Fix missing check for `dev-console` service (which is disabled in prod) by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1734
* Taskbar pos by @jelveh in https://github.com/HeyPuter/puter/pull/1735
* metering: rest of ai by @Salazareo in https://github.com/HeyPuter/puter/pull/1736
* Update UITaskbar.js by @jelveh in https://github.com/HeyPuter/puter/pull/1737
* Improve puterjs caching by @jelveh in https://github.com/HeyPuter/puter/pull/1739
* fix npm package not importing init.cjs by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1743
* add guard around sending thumbnail event if thumbnail url is blank or falsey by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1744
* improve caching mechanism by deleting specific caches on item addition in FileSystem module by @jelveh in https://github.com/HeyPuter/puter/pull/1745
* metering: new usage endpoint + puter-js changes for it by @Salazareo in https://github.com/HeyPuter/puter/pull/1738
* feat: metering service allowence checks and subscription integration 🚀  by @Salazareo in https://github.com/HeyPuter/puter/pull/1749
* fix: typos by @Salazareo in https://github.com/HeyPuter/puter/pull/1754
* feat: add alarms to meteringService if cost for service is unexpectedly 0 by @Salazareo in https://github.com/HeyPuter/puter/pull/1755
* fix: alowance typo by @Salazareo in https://github.com/HeyPuter/puter/pull/1756
* Detailed usage report by @jelveh in https://github.com/HeyPuter/puter/pull/1752
* adjust usage table styling by @jelveh in https://github.com/HeyPuter/puter/pull/1759
* Add refresh button for updating usage data in Settings by @jelveh in https://github.com/HeyPuter/puter/pull/1760
* fix: app monthly usage details error by @Salazareo in https://github.com/HeyPuter/puter/pull/1761
* feat: enforce new metering + get rid of old methods by @Salazareo in https://github.com/HeyPuter/puter/pull/1762
* feat: purchase addons logic in metering by @Salazareo in https://github.com/HeyPuter/puter/pull/1765
* Improve usage report UI by @jelveh in https://github.com/HeyPuter/puter/pull/1766
* fix: NaN value for consumedPurchaseCredits accounting by @Salazareo in https://github.com/HeyPuter/puter/pull/1767
* fix: bad math check for max consumed credits by @Salazareo in https://github.com/HeyPuter/puter/pull/1769
* fix: bad null check for subs by @Salazareo in https://github.com/HeyPuter/puter/pull/1770
* cleanup usage reporting by @jelveh in https://github.com/HeyPuter/puter/pull/1771
* further devex/log changes by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1758
* cleanup usage reporting by @jelveh in https://github.com/HeyPuter/puter/pull/1772
* devex: remove verbose logging on copy and paste by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1773
* fix: permission writeback to flat kv perissions by @Salazareo in https://github.com/HeyPuter/puter/pull/1774
* implement an extension event for IPC messages coming in by @jelveh in https://github.com/HeyPuter/puter/pull/1776
* devex: use 'stars' style for webserver notice by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1775
* ci: add timeout for api-test by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1768
* Remove fixed width in publish website input by @reynaldichernando in https://github.com/HeyPuter/puter/pull/1747
* implement stat request dedupe to improve performance by @jelveh in https://github.com/HeyPuter/puter/pull/1753
* ci: avoid potential hanging via hard limit by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1778
* add puter.workers.getLoggingHandle by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1779
* feat: introduce `PANEL_WIDTH` constant and refactor `UIWindow` for pa… by @jelveh in https://github.com/HeyPuter/puter/pull/1780
* feat: alert when going over usage limits significantly + egress metering by @Salazareo in https://github.com/HeyPuter/puter/pull/1782
* Revert "feat: alert when going over usage limits significantly + egress metering" by @Salazareo in https://github.com/HeyPuter/puter/pull/1785
* Revert "Revert "feat: alert when going over usage limits significantly + egress metering"" by @Salazareo in https://github.com/HeyPuter/puter/pull/1786
* Revert "Revert "Revert "feat: alert when going over usage limits significantly + egress metering""" by @Salazareo in https://github.com/HeyPuter/puter/pull/1787
* 4x revert "feat: alert when going over usage limits significantly + egress metering" by @Salazareo in https://github.com/HeyPuter/puter/pull/1788
* fix: bad acl check returning early by @Salazareo in https://github.com/HeyPuter/puter/pull/1789
* Revert: fs metering by @Salazareo in https://github.com/HeyPuter/puter/pull/1790
* revert: fs metering revertion + fix what was broken  by @Salazareo in https://github.com/HeyPuter/puter/pull/1795
* feat: limit alerting to only once per multiple of allowed usage by @Salazareo in https://github.com/HeyPuter/puter/pull/1798
* feat: shard apps as well to avoid hot partitions by @Salazareo in https://github.com/HeyPuter/puter/pull/1799
* feat: rename meteringAndBilling to metering by @Salazareo in https://github.com/HeyPuter/puter/pull/1800
* docs: metering and examples by @Salazareo in https://github.com/HeyPuter/puter/pull/1803
* Update putility to MIT by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1805
* putility license headers update by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1807
* chore: putility patch version 1.1.1 by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1808
* chore: puter.js version 2.1.1 by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1809
* doc: dependencies when moving PuterFS to extension by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1801
* Throw error on moderation, fix OpenAI config by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1802
* fix: usage limited issue whens treaming by @Salazareo in https://github.com/HeyPuter/puter/pull/1806
* feat: route for global usage aggregate by @Salazareo in https://github.com/HeyPuter/puter/pull/1810
* remove progwin for desktop mkdir by @jelveh in https://github.com/HeyPuter/puter/pull/1814
* ci: capture the error during setup by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1811
* feat: allow for unlimitedAllowList + typedefs snuck in by accident by @Salazareo in https://github.com/HeyPuter/puter/pull/1813
* dev: add event to mutate app origin by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1823
* fix: simplify export import typedef by @Salazareo in https://github.com/HeyPuter/puter/pull/1818
* optimization: change moderation time from O(n) to O(1) by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1825
* fix: Switch to new OpenAI Moderation model by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1826
* i18n(ig): translate missing entries in src/gui/src/i18n/translations/… by @harsha08-2k6 in https://github.com/HeyPuter/puter/pull/1820
* Add `dedupeName` to `CreateAppOptions` by @reynaldichernando in https://github.com/HeyPuter/puter/pull/1783
* chore: update phrasing based on review by @Savithru7142 in https://github.com/HeyPuter/puter/pull/1821
* more reliable suspended by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1696
* Add sora 2 support by @jelveh in https://github.com/HeyPuter/puter/pull/1834
* fix: lessen alert triggering for metering by @Salazareo in https://github.com/HeyPuter/puter/pull/1837
* Improved public folder file links by @bomberfish in https://github.com/HeyPuter/puter/pull/1687
* Expose MemoryFS from extension as `testfs` by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1817
* chore: update typedefs and fix dbkv issue by @Salazareo in https://github.com/HeyPuter/puter/pull/1840
* Add `UploadOptions` for Puter.js types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/1832
* fix: dbkv raw import  by @Salazareo in https://github.com/HeyPuter/puter/pull/1848
* Fix testMode for `txt2vid` by @jelveh in https://github.com/HeyPuter/puter/pull/1849
* feat: devCenter open ui message by @Salazareo in https://github.com/HeyPuter/puter/pull/1850
* simple thumbnail update endpoint by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1794
* ci: init e2e test for browser env, tidy other tests by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1796
* feat: meter ll_read for the person reading by @Salazareo in https://github.com/HeyPuter/puter/pull/1854
* add OpenAI support to `txt2speech` by @jelveh in https://github.com/HeyPuter/puter/pull/1853
* Complete Traditional Chinese translations (#1501) by @Arun24-8 in https://github.com/HeyPuter/puter/pull/1822
* Revert "Complete Traditional Chinese translations (#1501)" by @jelveh in https://github.com/HeyPuter/puter/pull/1856
* feat: add speech2text by @jelveh in https://github.com/HeyPuter/puter/pull/1855
* ai: return reasoning tokens in the streaming mode by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1356
* Update files.js and deleteUser to use ll_read by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1839
* fix: do not animate non-existing captcha modal by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1869
* Small cleanup for recent fix in createTempUser by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1870
* Update Norwegian Nynorsk translations in nn.js by @Gnanasaikiran in https://github.com/HeyPuter/puter/pull/1859
* Revert "Update Norwegian Nynorsk translations in nn.js" by @jelveh in https://github.com/HeyPuter/puter/pull/1874
* better path resolve errors by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1710
* feat: ui for dev account + util decorators for controllers in extension by @Salazareo in https://github.com/HeyPuter/puter/pull/1864
* ci: disable job "puterjs (browser env, playwright)" by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1871
* ci: expose server logs by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1860
* fix: allow stripe header and commit db migration by @Salazareo in https://github.com/HeyPuter/puter/pull/1877
* fix: bad naming by @Salazareo in https://github.com/HeyPuter/puter/pull/1878
* fix: bad amount of sql params by @Salazareo in https://github.com/HeyPuter/puter/pull/1879
* fix: stringify metadata object by @Salazareo in https://github.com/HeyPuter/puter/pull/1880
* fix: don't set metadata until migration by @Salazareo in https://github.com/HeyPuter/puter/pull/1886
* Revert: commits for user metadata changes by @Salazareo in https://github.com/HeyPuter/puter/pull/1887
* fix: add back non-functional changes by @Salazareo in https://github.com/HeyPuter/puter/pull/1888
* cleanup: more benign changes by @Salazareo in https://github.com/HeyPuter/puter/pull/1889
* fix: ts issue when building for deploy by @Salazareo in https://github.com/HeyPuter/puter/pull/1890
* fix: adding more benign changes by @Salazareo in https://github.com/HeyPuter/puter/pull/1891
* Add monthly and detailed app usage types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/1843
* fix(i18n): complete and clean up German translation by @Aravind30648 in https://github.com/HeyPuter/puter/pull/1893
* Revert "fix(i18n): complete and clean up German translation" by @jelveh in https://github.com/HeyPuter/puter/pull/1898
* Add cache_control support and haiku 4.5 by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1897
* make together.ai image and video models work! by @jelveh in https://github.com/HeyPuter/puter/pull/1881
* filesystem refactoring efforts toward eventually moving to extension (1/unknown) by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1868
* fix: access internal ID without assuming fetch by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1872
* fix: also check this.entry.id when checking mysql_id by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1906
* feat: rawBody parser, user  metadata column + other misc fixes by @Salazareo in https://github.com/HeyPuter/puter/pull/1904
* PuterFS extension proxy by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1875
* fix: check if system_prompts is an empty array by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1907
* fix: bad wrapper wrap by @Salazareo in https://github.com/HeyPuter/puter/pull/1908
* Move `rmdir` to extension and remove `#rmnode` from PuterFSProvider by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1916
* fix: error calling .startsWith on null mime_type by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1917
* fix: allow mysql json object response by @Salazareo in https://github.com/HeyPuter/puter/pull/1918
* Move operations (quick_check, mkdir, read) to extension by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1919
* chore: type fixes by @Salazareo in https://github.com/HeyPuter/puter/pull/1920
* Move ACL to ll_mkdir, and move operations (stat, copy_tree) to `puterfs` extension by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1921
* Add hindi readme by @parth-117 in https://github.com/HeyPuter/puter/pull/1927
* Revert "Add hindi readme" by @jelveh in https://github.com/HeyPuter/puter/pull/1928
* Revert "Add hindi readme (#1927)" by @jelveh in https://github.com/HeyPuter/puter/pull/1929
* Add missing puter env enums by @reynaldichernando in https://github.com/HeyPuter/puter/pull/1926
* Fix formatting: Add space after slash in German translation by @2400032286 in https://github.com/HeyPuter/puter/pull/1925
* feat: Settings and modal UI/UX improvements by @utkubakir in https://github.com/HeyPuter/puter/pull/1828
* Revert "feat: Settings and modal UI/UX improvements" by @jelveh in https://github.com/HeyPuter/puter/pull/1931
* performance: batch metering service usage increments when relevant by @Salazareo in https://github.com/HeyPuter/puter/pull/1930
* Move `readdir` and `move` to `puterfs` extension by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1932
* Use standard color picker in theme dialog by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1933
* chore: ts lint stuff by @Salazareo in https://github.com/HeyPuter/puter/pull/1934
* added complete French translation of README by @vipul264og in https://github.com/HeyPuter/puter/pull/1936
* docs: prefix together ai model by @Salazareo in https://github.com/HeyPuter/puter/pull/1939
* chore: remove rollup, always use webpack by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1942
* Revert "docs: add complete French translation of README (#1936)" by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1943
* Re-add direct download via URL parameter by @bomberfish in https://github.com/HeyPuter/puter/pull/1914
* tweak(apitest): reduce benchmark size by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1949
* Add Punjabi (ਪੰਜਾਬੀ) translation README by @vipul264og in https://github.com/HeyPuter/puter/pull/1944
* Openrouter reasoning fixes by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1951
* Autodiscover ollama support by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1953
* Max token failsafe by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1954
* Fix: missing published/attached website icon for folder on different views (#1764) by @Hetsavani in https://github.com/HeyPuter/puter/pull/1945
* [puterfs] move write operations to extension by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1940
* fix: references to `global_config` in puterfs by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1958
* Add Mistral OCR support and imrpove `img2txt` API by @jelveh in https://github.com/HeyPuter/puter/pull/1957
* PuterFSProvider cleanup and removal of core copy by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1956
* fix: explicit actor not passed to fs provider by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1960
* change claude service max_tokens calculation by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1962
* fix: x86 not booting locally by @r58Playz in https://github.com/HeyPuter/puter/pull/1959
* Add support for GPT-5.1 model and reasoning controls by @jelveh in https://github.com/HeyPuter/puter/pull/1967
* add puter.tools by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1973
* Move thumbnail mutation to getSafeEntry by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1980
* PuterFSProvider decoupling by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1961
* new gemini models by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1986
* puterfs decoupling continued by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1963
* PuterFS - Move storage into filesystem provider by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1982
* disable memoryfs test (for now) and fix package issue for LocalDiskStorage by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1987
* doc: update documentation for TestKernel by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1990
* Fix gemini when tools are null by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1992
* id2path fix by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1994
* fix: open router cache token metering by @Salazareo in https://github.com/HeyPuter/puter/pull/1988
* Fix undefined variables and make it impossible to have them by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1995
* fix: Add debounce to toolbar reveal when dragging windows to prevent accidental activation by @JohnBoulanger in https://github.com/HeyPuter/puter/pull/1989
* fix: only fallback to models that are the same by @Salazareo in https://github.com/HeyPuter/puter/pull/2001
* fix: eslint autofixable errors by @Salazareo in https://github.com/HeyPuter/puter/pull/2002
* Add ElevenLabs TTS provider integration by @jelveh in https://github.com/HeyPuter/puter/pull/2004
* Add missing together image model prefixes by @reynaldichernando in https://github.com/HeyPuter/puter/pull/1972
* fix: fallback models by @Salazareo in https://github.com/HeyPuter/puter/pull/2005
* Add 11labs speech-to-speech voice changer integration by @jelveh in https://github.com/HeyPuter/puter/pull/2006
* i18n(nn): finalize Norwegian Nynorsk translation fixes (Fixes #1514) by @eswarseeram in https://github.com/HeyPuter/puter/pull/2007
* fix: openrouter missing usage by @Salazareo in https://github.com/HeyPuter/puter/pull/2008
* Docs: improve clarity in README introduction by @bangarumahesh22 in https://github.com/HeyPuter/puter/pull/2010
* Add missing Traditional Chinese translations to zhtw.js by @SuryaGanesh284 in https://github.com/HeyPuter/puter/pull/2013
* 2025 11 gemini OpenAI refactor by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2014
* Gemini nano banana pro updated by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2015
* docs: add Punjabi translation link to README by @krishna3324 in https://github.com/HeyPuter/puter/pull/2020
* fix(puterfs): use node `crypto` instead of Web API by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2022
* test: add test infra to run vitest on all of backend wip by @Salazareo in https://github.com/HeyPuter/puter/pull/2023
* Use aliases when calculating max_tokens in ClaudeService by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2046
* fix: oss boot error fixes by @Salazareo in https://github.com/HeyPuter/puter/pull/2039
* dev(test): enable use of TestKernel in unit tests by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2024
* fix: tsconfig to ignore vite config files by @Salazareo in https://github.com/HeyPuter/puter/pull/2048
* test: migrate _test tests to vitest tests by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2047
* Update tsconfig.json by @2400060033 in https://github.com/HeyPuter/puter/pull/2035
* Add Traditional Chinese (繁體中文) Translation for Issue #1501 by @parth-117 in https://github.com/HeyPuter/puter/pull/2032
* Create README.tel.md by @rajucreate in https://github.com/HeyPuter/puter/pull/2045
* Revert "Create README.tel.md" by @jelveh in https://github.com/HeyPuter/puter/pull/2049
* feat: MeteringService test fixes for now by @Salazareo in https://github.com/HeyPuter/puter/pull/2050
* Worker + NodeJS support for puter.ai.txt2img and puter.ai.txt2vid by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2051
* feat: meteringService test suite by @Salazareo in https://github.com/HeyPuter/puter/pull/2052
* refactor: introduce TestCoreModule for test kernel by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2053
* fix: metering service alerts + missing claude costs by @Salazareo in https://github.com/HeyPuter/puter/pull/2058
* test: add tests for services in CoreModule by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2059
* feat: KV testing by @Salazareo in https://github.com/HeyPuter/puter/pull/2061
* Email read permission for whoami by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2064
* chore: some  type and eslint fixes for tests by @Salazareo in https://github.com/HeyPuter/puter/pull/2065
* fix: typo in dbkvStore by @Salazareo in https://github.com/HeyPuter/puter/pull/2066
* fix: backend tests breaking with permision + together ai missing costs for non-streamed requests by @Salazareo in https://github.com/HeyPuter/puter/pull/2067
* Working main 2025 11 29 by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2068
* chore: various test related changes by @Salazareo in https://github.com/HeyPuter/puter/pull/2069
* ci: cleanup docker build by @Salazareo in https://github.com/HeyPuter/puter/pull/2070
* ci: fix docker again by @Salazareo in https://github.com/HeyPuter/puter/pull/2071
* ci: package and docker fixes by @Salazareo in https://github.com/HeyPuter/puter/pull/2072
* ci: add test coverage by @Salazareo in https://github.com/HeyPuter/puter/pull/2073
* test: claudeService by @Salazareo in https://github.com/HeyPuter/puter/pull/2074
* Add permission so apps can manage apps or subdomains of a user by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2075
* fix: TelemetryService by @Salazareo in https://github.com/HeyPuter/puter/pull/2077
* fix: wrong order for telemetery init by @Salazareo in https://github.com/HeyPuter/puter/pull/2078
* fix: stricten undef checks by @Salazareo in https://github.com/HeyPuter/puter/pull/2082
* chore: add typedefs for puter.js by @Salazareo in https://github.com/HeyPuter/puter/pull/2086
* Fix turnstile auth by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2087
* Improve error handling for `puter.perms` by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2088
* dev: add __import_identity__ to config for debug use by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2089
* types: fix puter-js type exports by @Salazareo in https://github.com/HeyPuter/puter/pull/2090
* Add flux.2 costmaps by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2092
* Add `puter.perms.requestEmail` by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2093
* Update Node.js section header in README.md by @jelveh in https://github.com/HeyPuter/puter/pull/2095
* Add methods for apps to request access to standard directories by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2096
* apps/subdomains permissions by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2097
* npm: publish new readme by @Salazareo in https://github.com/HeyPuter/puter/pull/2098
* rename: requestPermission -> request by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2101
* Dashboard by @jelveh in https://github.com/HeyPuter/puter/pull/2104
* chore: associate googlemail with gmail rules by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2106
* fix: eleven labs metering costs by @Salazareo in https://github.com/HeyPuter/puter/pull/2112
* Fix AI types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2100
* fix: pass exporter to NodeSDK constructor by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2113
* Performance sprint preparations by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2108
* fix: add simple 30s cache to /healthcheck by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2115
* fix: downgrade opentelemetry so it works again by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2118
* dev: extension.span by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2119
* feat: refactor ai to have single entry point and follow defined model structure by @Salazareo in https://github.com/HeyPuter/puter/pull/2114
* Add type for `extension.span` by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2120
* feat: rename ai models to match norm by @Salazareo in https://github.com/HeyPuter/puter/pull/2121
* fix: prevent loop if failing ai models? by @Salazareo in https://github.com/HeyPuter/puter/pull/2122
* Revert: change to ai model names by @Salazareo in https://github.com/HeyPuter/puter/pull/2123
* Add auth types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2117
* Fix ratio in TogetherImage by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2127
* fix: bad method name for together ai by @Salazareo in https://github.com/HeyPuter/puter/pull/2128
* feat: single image ai endpoint by @Salazareo in https://github.com/HeyPuter/puter/pull/2129
* fix: together ai image prices by @Salazareo in https://github.com/HeyPuter/puter/pull/2130
* Revert: single ai image entry point by @Salazareo in https://github.com/HeyPuter/puter/pull/2131
* Remove backend-core-0 and inline validation helpers by @jelveh in https://github.com/HeyPuter/puter/pull/2138
* chore: remove deprecated threads by @Salazareo in https://github.com/HeyPuter/puter/pull/2139
* Delete backend README links from README.md by @jelveh in https://github.com/HeyPuter/puter/pull/2140
* Remove terminal phoenix emulator by @jelveh in https://github.com/HeyPuter/puter/pull/2141
* cleanup: remove Library + bloated utils where possible by @Salazareo in https://github.com/HeyPuter/puter/pull/2142
* Revert "Revert: single ai image entry point (#2131)" by @Salazareo in https://github.com/HeyPuter/puter/pull/2143
* fix: bad ai calls by @Salazareo in https://github.com/HeyPuter/puter/pull/2144
* fix: batch app info referral by @Salazareo in https://github.com/HeyPuter/puter/pull/2146
* Add alias for gpt-5.2-chat by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2148
* Fix KV types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2152
* Add missing AI types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2151
* Fix FS types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2134
* Fix speech2txt options type by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2150
* Fix hosting types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2153
* several scattered performance fixes by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2154
* cleanup: remove dead cloudwatch logic by @Salazareo in https://github.com/HeyPuter/puter/pull/2155
* fix: bad usageType by @Salazareo in https://github.com/HeyPuter/puter/pull/2157
* chore: decrease uninmportant logs by @Salazareo in https://github.com/HeyPuter/puter/pull/2158
* Remove fat from puterjs by @jelveh in https://github.com/HeyPuter/puter/pull/2156
* Remove Bootstrap 5.1.3 assets from public directory by @jelveh in https://github.com/HeyPuter/puter/pull/2161
* Remove CommentService and related tests by @jelveh in https://github.com/HeyPuter/puter/pull/2160
* Remove dev-console-ui-utils and update related services by @jelveh in https://github.com/HeyPuter/puter/pull/2163
* Remove tag cache refresh logic from AppInformationService by @jelveh in https://github.com/HeyPuter/puter/pull/2166
* Remove `DevConsoleService` and related dev console widgets by @jelveh in https://github.com/HeyPuter/puter/pull/2167
* chore: continue removing extra logs by @Salazareo in https://github.com/HeyPuter/puter/pull/2159
* chore: add better logging to broadcast connections by @Salazareo in https://github.com/HeyPuter/puter/pull/2169
* cd: make our deploy reliably wait for server to be ready by @Salazareo in https://github.com/HeyPuter/puter/pull/2170
* Ds/main by @Salazareo in https://github.com/HeyPuter/puter/pull/2171
* fix: bad caching query crashing our db by @Salazareo in https://github.com/HeyPuter/puter/pull/2172
* fix: make cache calls async on boot by @Salazareo in https://github.com/HeyPuter/puter/pull/2173
* Remove unused putility features by @jelveh in https://github.com/HeyPuter/puter/pull/2168
* fix: missing video gen ai services in ai module by @Salazareo in https://github.com/HeyPuter/puter/pull/2180
* fix: add missing 'tel' runtime module by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2182
* Fix speech2speech options by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2133
* Fix more puter.js typescript types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2181
* perf: [+] readdirstat_uuid optimized implementation by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2183
* telemetry: config telemetry to run by default by @Salazareo in https://github.com/HeyPuter/puter/pull/2184
* Add usage limit dialog and integrate with driverCall_ by @jelveh in https://github.com/HeyPuter/puter/pull/2185
* App telemetry user iteration by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2188
* Add flux.2 max for together provider by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2189
* add typescript transpilation for legacy node support ☹️ by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2190
* fix: types and tests? by @Salazareo in https://github.com/HeyPuter/puter/pull/2193
* Performance Updates by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2192
* Add gemini 3 flash to models by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2191
* Improve EntityStorage Performance by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2194
* add user iteration to all methods which return an App object by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2203
* feat: dynamo in oss by @Salazareo in https://github.com/HeyPuter/puter/pull/2195
* Unit Benchmarks by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2202
* More Benchmarks by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2206
* chore: update our required node version by @Salazareo in https://github.com/HeyPuter/puter/pull/2204
* Revert 2206 eric/25 cj0 more benchmarks by @Salazareo in https://github.com/HeyPuter/puter/pull/2208
* Undo revert of benchmarks and fix imports by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2210
* Entity Refactor (part 0) by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2211
* Add `DataAccessModule` > `AppService` > `select()` (future replacement for EntityStorage+ObjectMapping) by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2212
* fix: don't load bench.js files by @Salazareo in https://github.com/HeyPuter/puter/pull/2207
* Add optional requestCallbacks options to getUser by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2186
* Fix apps types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2197
* Fix workers types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2198
* feat: support extension divs headers and tags being inserted to puter homepage load by @Salazareo in https://github.com/HeyPuter/puter/pull/2221
* fix: cache get_app result with expiry to lessen load on db by @Salazareo in https://github.com/HeyPuter/puter/pull/2229
* fix: don't cache nor fetch raw b64 url for app icons by @Salazareo in https://github.com/HeyPuter/puter/pull/2230
* perf: make app entries more scalable, avoid writing global entries since its just puter itself and isn't relevant by @Salazareo in https://github.com/HeyPuter/puter/pull/2233
* Responses API support for OpenAI by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2226
* Update first-run-issues.md with dnf5 instructions by @soumyabrata23130 in https://github.com/HeyPuter/puter/pull/2239
* Remove debug logs and improve query coalescing timeout by @jelveh in https://github.com/HeyPuter/puter/pull/2241
* Fix FS types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2201
* Implement redirect from `puter.site` or `www.puter.site` to informational page by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2244
* Fix `shortcutTo` in ` puter.fs.mkdir` by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2246
* fix: Enable godmode for dev-center to open worker files in editor by @Omcodes23 in https://github.com/HeyPuter/puter/pull/2224
* lint: hook for precommit by @Salazareo in https://github.com/HeyPuter/puter/pull/2245
* fix: ts extensions by @Salazareo in https://github.com/HeyPuter/puter/pull/2247
* Remove flux schnell-free by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2243
* fix: add catch all for minimum usage amounts by @Salazareo in https://github.com/HeyPuter/puter/pull/2248
* fix: more strict metering limits, disable ambigious openrouter one by @Salazareo in https://github.com/HeyPuter/puter/pull/2249
* fix: broken openrouter costs  by @Salazareo in https://github.com/HeyPuter/puter/pull/2250
* Fix/explorer cursor grab on click by @Hetsavani in https://github.com/HeyPuter/puter/pull/2176
* feat: method for updating users metering directly by @Salazareo in https://github.com/HeyPuter/puter/pull/2252
* chore(deps): bump jws from 4.0.0 to 4.0.1 by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/2232
* i18n(de): polish German translations & fix typos (Fixes #1532) by @eswarseeram in https://github.com/HeyPuter/puter/pull/2009
* Remove ComplainAboutVersionsService and related code by @jelveh in https://github.com/HeyPuter/puter/pull/2179
* Add 'Open in AI' option to item context menus by @jelveh in https://github.com/HeyPuter/puter/pull/1974
* doc: add README.md for GUI directory by @SuryaGanesh284 in https://github.com/HeyPuter/puter/pull/2021
* Revert "doc: add README.md for GUI directory" by @jelveh in https://github.com/HeyPuter/puter/pull/2253
* chore(deps): bump qs and express by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/2256
* feat: new kvstore operatios for more granular updates :rocket: by @Salazareo in https://github.com/HeyPuter/puter/pull/2254
* Thumbnail parameter by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2257
* chore(backend): upgrade nodemailer by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2259
* feat: kv.remove feature to remove nested elements or list indices by @Salazareo in https://github.com/HeyPuter/puter/pull/2258
* fix: husky too strict, allow failed eslint through for now by @Salazareo in https://github.com/HeyPuter/puter/pull/2260
* Model singularity by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2255
* feat: give referrals some credit too by @Salazareo in https://github.com/HeyPuter/puter/pull/2262
* fix(backend): race condition in hashing_stream by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2263
* Add automatic thumbnail generation to file uploads in GUI by @jelveh in https://github.com/HeyPuter/puter/pull/2261
* Add README for Puter localization and setup by @Talasudeepk in https://github.com/HeyPuter/puter/pull/2043
* provide safety_identifier in addition to user by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2268
* Make puter boot on windows by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2269
* Support getDeveloperProfile with no arguments by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2270
* chore(deps): bump qs and body-parser by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/2271
* Retry for openrouter on max_tokens overage by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2274
* no_extra_params in together service to prevent defaults from being sp… by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2275
* prevent signout from workers by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2276
* feat: more extension controller decorators by @Salazareo in https://github.com/HeyPuter/puter/pull/2272
* Improve UI for App Deployment Options in Dev Center by @rowin-C in https://github.com/HeyPuter/puter/pull/2266
* fix: shard app usages properly by user by @Salazareo in https://github.com/HeyPuter/puter/pull/2279
* Revise README.ro.md for updates and corrections by @sn-o-w in https://github.com/HeyPuter/puter/pull/2280
* fix: attempt coercion to fix vscode corruption by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2281
* Normalize file object in `/writeFile` by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2282
* Prevent `puter.fs.write` from failing on concurrent writes by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2287
* feat(gui): add keyboard shortcuts guide dialog by @RahulAswal01 in https://github.com/HeyPuter/puter/pull/2278
* Revert "feat(gui): add keyboard shortcuts guide dialog" by @jelveh in https://github.com/HeyPuter/puter/pull/2288
* Add GPT 5.2 Codex by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2293
* feat: paginated listing for kv items by @Salazareo in https://github.com/HeyPuter/puter/pull/2296
* OpenAI web_search support by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2299
* feat(puter.js): make home directory default cwd by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2302
* [PUT-301] feat: usage endpoints, allow appName by @Salazareo in https://github.com/HeyPuter/puter/pull/2303
* fix(puter.js): check for uuid before relative path by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2304
* gemini 2.5/3 no preview by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2306
* Fixes related to `apps` driver (replacement for `es:apps`) by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2308
* Data access simplifications (part 1: apps driver) by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2219
* perf: improve tel + decrease logs by @Salazareo in https://github.com/HeyPuter/puter/pull/2309
* [PUT-456] fix: delete apps from marketplace when deleting anywhere else by @Salazareo in https://github.com/HeyPuter/puter/pull/2310
* feat(data-access): move puter.js read to app driver by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2312
* Revert "feat(data-access): move puter.js read to app driver" by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2313
* fix: batch fetch get apps for launch apps and recommended apps by @Salazareo in https://github.com/HeyPuter/puter/pull/2315
* Migrate `puter.apps.read` from `app:es` to `app` (fixed) by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2316
* Revert "feat(data-access): move puter.js read to app driver" by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2318
* fix: add back test for launch apps by @Salazareo in https://github.com/HeyPuter/puter/pull/2317
* perf: dedup and cache get_apps in puter gui, also add more app batching in backend by @Salazareo in https://github.com/HeyPuter/puter/pull/2319
* add safety checks for worker updates by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2321
* fix: dedup get_apps app requests by @Salazareo in https://github.com/HeyPuter/puter/pull/2325
* fix: disable bad token checks? by @Salazareo in https://github.com/HeyPuter/puter/pull/2326
* Video model details by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2327
* fix gemini cost key by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2328
* fix: disable requests from server in two services by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2329
* perf: batch readdir suggested apps into single big query by @Salazareo in https://github.com/HeyPuter/puter/pull/2332
* fix: log format by @Salazareo in https://github.com/HeyPuter/puter/pull/2333
* Add info about usage data scope for docs by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2334
* perf: don't fetch b64 icon for apps always, and lru suggestedApps by @Salazareo in https://github.com/HeyPuter/puter/pull/2336
* fix: skip CI tests when only docs are changed (#2335) by @serilevanjalines in https://github.com/HeyPuter/puter/pull/2338
* fix: suggested apps breaking by @Salazareo in https://github.com/HeyPuter/puter/pull/2343
* Fix issues with URL fetch by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2345
* Move webdav to dav.puter.com by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2330
* Feat: Add system info (Client + Server metrics) by @llpingll in https://github.com/HeyPuter/puter/pull/2311
* fix: header resend issue by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2353
* fix: only rate limit login when failed by @Salazareo in https://github.com/HeyPuter/puter/pull/2355
* [PUT-466] fix: count request costs in openrouter models with request cost present by @Salazareo in https://github.com/HeyPuter/puter/pull/2356
* otel: add spans to all kv methods by @Salazareo in https://github.com/HeyPuter/puter/pull/2358
* docs: add example for streaming with function calling by @AryaXDG in https://github.com/HeyPuter/puter/pull/2365
* fix: app-under-user access token ACL by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2367
* fix: remove rate limit await on writes by @Salazareo in https://github.com/HeyPuter/puter/pull/2368
* [PUT-475] fix togetherai chat being broken + deprioritize them 🐛 by @Salazareo in https://github.com/HeyPuter/puter/pull/2369
* fix: cost mapping for together ai from openai sdk by @Salazareo in https://github.com/HeyPuter/puter/pull/2371
* fix: map again by @Salazareo in https://github.com/HeyPuter/puter/pull/2372
* fix(resume-analyzer): add preprocessing for DOCX and TXT files by @Devansh-18 in https://github.com/HeyPuter/puter/pull/2359
* fix: match override properly by @Salazareo in https://github.com/HeyPuter/puter/pull/2373
* Add canonical puterId to image provider models by @velzie in https://github.com/HeyPuter/puter/pull/2322
* cleanup: remove informationService in favour of existing helper methods and logic by @Salazareo in https://github.com/HeyPuter/puter/pull/2374
* puter x-expected-entity-length for site by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2379
* video model costs by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2383
* [PUT-487] fix: set max-min on app-user-count queries :bug: by @Salazareo in https://github.com/HeyPuter/puter/pull/2384
* fix: expose getUserService in extension typings by @Salazareo in https://github.com/HeyPuter/puter/pull/2385
* getAuthToken on node package by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2388
* fix typo gemini service by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2389
* OpenAI chat interface API concept by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2390
* Fix tests for ChatAPIService and add Anthropic tool call coersions  by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2391
* More Anthropic tool calling coercions by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2392
* fix: ai metering by @Salazareo in https://github.com/HeyPuter/puter/pull/2393
* Add back worker redeploy notification by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2394
* Add more coersions to responses toolcalling support by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2395
* Add X-EXPECTED-ENTITY-LENGTH for HTTP/2 connections on webdav for predictive file length by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2396
* WebDAV post migration fixes by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2398
* fix: alerting for metering by @Salazareo in https://github.com/HeyPuter/puter/pull/2399
* fix: range headers in file.js by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2400
* feat: replace serializible caches with redis instead of kvjs :rocket: by @Salazareo in https://github.com/HeyPuter/puter/pull/2381
* fix: missing redis changes by @Salazareo in https://github.com/HeyPuter/puter/pull/2401
* Revert "feat: replace serializible caches with redis instead of kvjs 🚀  by @Salazareo in https://github.com/HeyPuter/puter/pull/2402
* Reapply: reverted redis migration changes by @Salazareo in https://github.com/HeyPuter/puter/pull/2403
* Ability to revoke access tokens by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2404
* dav.puter.com CORS headers by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2406
* fix: limit open router expensive models for now by @Salazareo in https://github.com/HeyPuter/puter/pull/2407
* dev(backend): add broadcast webhook endpoint by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2380
* fix: redis cache for user by @Salazareo in https://github.com/HeyPuter/puter/pull/2409
* Separate subdomains from readir by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2346
* feat: add alerting for usage abuse by @Salazareo in https://github.com/HeyPuter/puter/pull/2413
* web-cdn-test by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2414
* Ns/opus 4.6 by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2420
* opus 4.6 fix billing by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2422
* Document getAuthToken for web based login by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2418
* fix: usage limited error handling by @Salazareo in https://github.com/HeyPuter/puter/pull/2423
* fix: don't use ai aggregators if we have the model ourselves by @Salazareo in https://github.com/HeyPuter/puter/pull/2424
* Update puter-js readme for getAuthToken by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2417
* fix: auto-collapse playground menu on mobile (#2430) by @sanjeevafk in https://github.com/HeyPuter/puter/pull/2431
* chat_completions tool call fixes by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2434
* Restrict apps from using /puterai/openai/v1 by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2435
* fix: ensure cache invalidation when verifying OTP by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2437
* Increase opus 4.6 max tokens by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2439
* Ns/service guard by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2440
* ai email verification by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2441
* email confirmation error api error update by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2442
* fix: gemini via openrouter models by @Salazareo in https://github.com/HeyPuter/puter/pull/2438
* Update french translations by @Zac0511 in https://github.com/HeyPuter/puter/pull/2445
* chore: fix eslint issues by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2436
* added install.md  by @stuffbymax in https://github.com/HeyPuter/puter/pull/2405
* fix: dev center emails by @Salazareo in https://github.com/HeyPuter/puter/pull/2447
* Add shell reload instructions for nvm setup by @stuffbymax in https://github.com/HeyPuter/puter/pull/2446
* fix: axiosRequest log dumping b64 urls by @Salazareo in https://github.com/HeyPuter/puter/pull/2448
* fix: decrease log usage by @Salazareo in https://github.com/HeyPuter/puter/pull/2449
* Fix gemini 3 pro image model name by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2450
* fix: add explicit handling for access token in ACL by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2451
* add configurable backend by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2452
* Fix auth type typo by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2454
* [PUT-471] feat: estimate and bill input for gemini imgaes :dev: by @Salazareo in https://github.com/HeyPuter/puter/pull/2453
* allow empty message by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2455
* fix: decrease large error log from wrong model by @Salazareo in https://github.com/HeyPuter/puter/pull/2456
* Revert "allow empty message" by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2457
* fix tool call blank content by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2458
* Ns/web dav range fixes by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2459
* feat: app icons in subdomain by @Salazareo in https://github.com/HeyPuter/puter/pull/2461
* Worker badge and info by @miikakuisma in https://github.com/HeyPuter/puter/pull/2462
* feat: remove file cache service by @Salazareo in https://github.com/HeyPuter/puter/pull/2464
* add extra model details, update grok models by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2465
* fix: metering alerts for missing costs by @Salazareo in https://github.com/HeyPuter/puter/pull/2466
* Add cache tokens for grok 3 mini fast by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2469
* fix: false alarm from openrouter by @Salazareo in https://github.com/HeyPuter/puter/pull/2470
* cleanup: remove thumbnail service for client side thumbnails by @Salazareo in https://github.com/HeyPuter/puter/pull/2468
* feat(start-menu): add "Add to Desktop" option for all apps by @Hetsavani in https://github.com/HeyPuter/puter/pull/2386
* dedup image models by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2475
* Ns/workers in stat attempt 2 by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2476
* fix: app icons saving by @Salazareo in https://github.com/HeyPuter/puter/pull/2477
* fix: app icon again by @Salazareo in https://github.com/HeyPuter/puter/pull/2478
* fix: app-icons protocol by @Salazareo in https://github.com/HeyPuter/puter/pull/2480
* feat: subdomain error redirect by @Salazareo in https://github.com/HeyPuter/puter/pull/2483
* add sandboxing by default in god mode created workers by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2481
* fix: do not await for puter icon write in db by @Salazareo in https://github.com/HeyPuter/puter/pull/2485
* fix: don't stream back bytes for icons by @Salazareo in https://github.com/HeyPuter/puter/pull/2486
* Bundle docs CDN assets locally for full offline support by @iamJ3 in https://github.com/HeyPuter/puter/pull/2473
* Add workers AI image model support by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2489
* add more aliases for cloudflare image provider by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2491
* fix stat options when stat(path, options) by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2492
* workers ai realias - to dot by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2493
* patch(puterfs): limit directory depth to 35 by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2494
* perf: improve app open time by @Salazareo in https://github.com/HeyPuter/puter/pull/2490
* fix: app icon origin by @Salazareo in https://github.com/HeyPuter/puter/pull/2500
* fix: allow b64 srings without mime type for app icons by @Salazareo in https://github.com/HeyPuter/puter/pull/2502
* add extra permission check for granted apps by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2503
* WebDAV don't fetch subdomains by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2504
* also don't fetch thumbs or associated apps by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2505
* Files tab for dashboard view by @miikakuisma in https://github.com/HeyPuter/puter/pull/2331
* feat: sonnet-4.6 support by @Salazareo in https://github.com/HeyPuter/puter/pull/2506
* Add permission requests for directories of subdomains associated with apps owned by the user by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2507
* Dashboard: Files tab fixes by @miikakuisma in https://github.com/HeyPuter/puter/pull/2508
* make image models case insensitive for backwards compatibility reasons by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2512
* feat: cleanup cache invalidation and pull out keys to be easily used in other places that need the same cache by @Salazareo in https://github.com/HeyPuter/puter/pull/2515
* fix: redis cache deletions by @Salazareo in https://github.com/HeyPuter/puter/pull/2518
* Login/Signup with OIDC by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2460
* Dashboard dark mode fixes by @miikakuisma in https://github.com/HeyPuter/puter/pull/2516
* fix: don't await for cache writes by @Salazareo in https://github.com/HeyPuter/puter/pull/2519
* lint: fix eslint indentation for switch cases by @Salazareo in https://github.com/HeyPuter/puter/pull/2520
* perf: batching get_apps cache look ups by @Salazareo in https://github.com/HeyPuter/puter/pull/2521
* fix: don't call stat on each file in dir by @Salazareo in https://github.com/HeyPuter/puter/pull/2522
* fix: wrong icon for workers by @Salazareo in https://github.com/HeyPuter/puter/pull/2524
* fix: cleanup some app es and app service validation by @Salazareo in https://github.com/HeyPuter/puter/pull/2523
* Clarify expiration time unit in getReadURL.md by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2525
* fix: bad copy with reference in UIItem by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2526
* implement keyboard shortcuts guide UI (#2037) by @samarthmishra46 in https://github.com/HeyPuter/puter/pull/2484
* fix nano banana pro pricing and resolutions by @P3il4 in https://github.com/HeyPuter/puter/pull/2501
* fix: stricter invalidation for 2fa and confirm email codes by @Salazareo in https://github.com/HeyPuter/puter/pull/2528
* fix: default timeout on user caches of 15 min by @Salazareo in https://github.com/HeyPuter/puter/pull/2530
* dev(oidc): redirect to login/signup on error by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2531
* WIP: use cors proxy for outbound requests by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2533
* cache: extend cache invalidation to emit events out too by @Salazareo in https://github.com/HeyPuter/puter/pull/2532
* dont forward data urls through cors proxy and fix core.validation by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2537
* fix desktop gui error handling for workers by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2538
* Fix OIDC in popups by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2539
* cleanup: remove debugger calls in our code by @Salazareo in https://github.com/HeyPuter/puter/pull/2535
* fix: make invalidations more robust by @Salazareo in https://github.com/HeyPuter/puter/pull/2529
* fix(backend): invalidate app permission debounce by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2541
* fix: remove broadcast for cache updates by @Salazareo in https://github.com/HeyPuter/puter/pull/2542
* fix: app icons via subdomain on localhost by @Salazareo in https://github.com/HeyPuter/puter/pull/2544
* fix(gui): defer login event until listener registered by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2547
* feat: add is_private to apps by @Salazareo in https://github.com/HeyPuter/puter/pull/2546
* feat: type extension cache update events by @Salazareo in https://github.com/HeyPuter/puter/pull/2548
* fix: don't await cache invalidation for grant app permission by @Salazareo in https://github.com/HeyPuter/puter/pull/2551
* perf: delete keys in parallel from redis by @Salazareo in https://github.com/HeyPuter/puter/pull/2552
* feat: add private app asset token auth helpers by @Salazareo in https://github.com/HeyPuter/puter/pull/2555
* feat: add private app access extension event contract by @Salazareo in https://github.com/HeyPuter/puter/pull/2556
* perf:remove recents cache by @Salazareo in https://github.com/HeyPuter/puter/pull/2558
* feat: enforce private app hosting access gate by @Salazareo in https://github.com/HeyPuter/puter/pull/2557
* Add nano banana 2 by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2562
* fix: corrected service reference by @4nshuman in https://github.com/HeyPuter/puter/pull/2559
* fix(backend): default rate-limit scope instead of error by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2564
* feat: add private access rollout gate and auditing by @Salazareo in https://github.com/HeyPuter/puter/pull/2560
* dev(oidc): switch login/signup flows where applicable by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2550
* [OIDC] allow user deletion for accounts without a password by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2567
* chore: switch private hosting domain to puter.dev by @Salazareo in https://github.com/HeyPuter/puter/pull/2565
* feat: add private app direct-login bootstrap page by @Salazareo in https://github.com/HeyPuter/puter/pull/2566
* fix: hardcode default perm by @Salazareo in https://github.com/HeyPuter/puter/pull/2570
* fix: redis startup by @Salazareo in https://github.com/HeyPuter/puter/pull/2571
* fix(oidc): bring "Add Existing User" to working state by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2572
* Permission Request Modal Update by @miikakuisma in https://github.com/HeyPuter/puter/pull/2499
* Fix: When a maximized window gets resized, Puter apps should be resized as well by @miikakuisma in https://github.com/HeyPuter/puter/pull/2498
* fix(auth): add explicit check for access token suspension by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2576
* fix(ai): additional auth guard by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2577
* Eric/26323 revert 26322 by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2578
* Revert "fix(auth): add explicit check for access token suspension (#2… by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2579
* Revert "fix(ai): additional auth guard (#2577)" by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2580
* Reapply "fix(auth): add explicit check for access token suspension (#… by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2581
* fix(ai): additional auth guard (corrected 676b6c3) by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2582
* feat: resolve private app hosts by index_url fallback by @Salazareo in https://github.com/HeyPuter/puter/pull/2583
* fix: private app config to use app urls by @Salazareo in https://github.com/HeyPuter/puter/pull/2586
* fix(oidc): login flow with `puter.ui.authenticateWithPuter` by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2588
* feat: private app config to use app urls + app routing by @Salazareo in https://github.com/HeyPuter/puter/pull/2587
* docs : udpdate current year #2584 by @Babali42 in https://github.com/HeyPuter/puter/pull/2585
* fix: remove redis cache scan in favour of direct key invalidation by @Salazareo in https://github.com/HeyPuter/puter/pull/2589
* dev(oidc): hide unnecessary div by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2592
* feat: add subdomain to private asset tokens by @Salazareo in https://github.com/HeyPuter/puter/pull/2591
* fix: reset subdomain if empty by @Salazareo in https://github.com/HeyPuter/puter/pull/2593
* fix: puter app middleware host in token by @Salazareo in https://github.com/HeyPuter/puter/pull/2594
* fix: bad token generation for private apps by @Salazareo in https://github.com/HeyPuter/puter/pull/2596
* fix: origin canonization by @Salazareo in https://github.com/HeyPuter/puter/pull/2597
* fix(oidc): request object reference in oidc signup by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2598
* fix: prioritize new token thant anything outdated stored in localstorage for private apps by @Salazareo in https://github.com/HeyPuter/puter/pull/2600
* dev(apps): add configuration to not use app icon subdomain by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2603
* fix: add logs to debug on prod by @Salazareo in https://github.com/HeyPuter/puter/pull/2604
* feat: more robust error logs by @Salazareo in https://github.com/HeyPuter/puter/pull/2605
* fix: fetching user from session token by @Salazareo in https://github.com/HeyPuter/puter/pull/2607
* Make credentialless false by default by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2608
* feat: redirect away cookie for private apps by @Salazareo in https://github.com/HeyPuter/puter/pull/2609
* clean: remove a log by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2610
* Fix border colors in Settings panel by @miikakuisma in https://github.com/HeyPuter/puter/pull/2595
* chore: typeFixes by @Salazareo in https://github.com/HeyPuter/puter/pull/2615
* add gpt 5.3 codex and gpt 5.4 by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2618
* fix(puterfs): await queue items for fsentry action by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2616
* clean(apps): merge fns only called by get_app_icon_url by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2617
* use openrouter provided USD cost when present by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2619
* fix gemini image provider implementation by @P3il4 in https://github.com/HeyPuter/puter/pull/2569
* Add Networking examples to docs index page by @theluckystrike in https://github.com/HeyPuter/puter/pull/2613
* Update Hosting API description #2612 by @eshwar-artyz in https://github.com/HeyPuter/puter/pull/2620
* fix: private app token by @Salazareo in https://github.com/HeyPuter/puter/pull/2623
* feat: phase 1 canonical app origin resolution by @Salazareo in https://github.com/HeyPuter/puter/pull/2624
* Ns/configurable gui bundle by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2629
* perf(core): LRU cache PuterHomepageService by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2627
* revert puterjs gui ordering by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2631
* Fix missing password entry by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2632
* devex(core): avoid email verification on dev by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2634
* add support for building with custom icons by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2635
* s/icons/assets/ for building GUI by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2636
* s/mv/cp/ for gui buildstep by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2637
* fix assets_url bug in GUI buildstep by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2638
* feat: limit concurrent request for ai chat by @Salazareo in https://github.com/HeyPuter/puter/pull/2640
* feat: phase 2 enforce index url ownership and uniqueness by @Salazareo in https://github.com/HeyPuter/puter/pull/2625
* perf(core): very simplistic minifier for homepage by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2630
* Revert "perf(core): very simplistic minifier for homepage (#2630)" by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2641
* fix(core): handling of refer code storage add by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2642
* feat: checkName api for puter apps by @Salazareo in https://github.com/HeyPuter/puter/pull/2643
* dev(fs): add move command to batch executor by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2646
* dev: get system user from SUService in AppIconService by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2601
* dev(extension): [+] test-actions by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2575
* fix: keep bootstrap in url for app to do whatever by @Salazareo in https://github.com/HeyPuter/puter/pull/2648
* feat: phase 3 public hosted actor cookie bootstrap by @Salazareo in https://github.com/HeyPuter/puter/pull/2626
* dev(fs): fetch subdomains using join in readdir by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2647
* fix(fs) optimize `stat` operation. by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2649
* feat: scope index_url uniqueness to hosted domains by @Salazareo in https://github.com/HeyPuter/puter/pull/2644
* Ns/worker global public fetch by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2652
* feat(puter-js): add Batch builder class by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2651
* fix: app merging  by @Salazareo in https://github.com/HeyPuter/puter/pull/2654
* mute puterjs error by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2657
* fix: tests oom breaking by @Salazareo in https://github.com/HeyPuter/puter/pull/2661
* fix(security): shell escape paths in HostDiskUsageService; null-prototype objects in batch parser by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2659
* Use ClickHouse for app open stats by @jelveh in https://github.com/HeyPuter/puter/pull/2662
* fix coercion service not selecting correct rule by @P3il4 in https://github.com/HeyPuter/puter/pull/2660
* fix flash image quality level by @P3il4 in https://github.com/HeyPuter/puter/pull/2665
* Interpret mpga as mp3 for OpenAI transcriptions by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2666
* chore: update package-lock.json by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2667
* add x-puter-no-auth option to puter.workers.exec by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2668
* fix: limit referralCodeService by @Salazareo in https://github.com/HeyPuter/puter/pull/2670
* feat: add hook on merge for deployments by @Salazareo in https://github.com/HeyPuter/puter/pull/2673
* darkmode fix by @miikakuisma in https://github.com/HeyPuter/puter/pull/2675
* add reasoning to claude models by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2676
* Manual package updates, `npm audit --force`, etc by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2669
* fix: add console log to webhook for debugging by @Salazareo in https://github.com/HeyPuter/puter/pull/2677
* fix: log webhook message to peer for now by @Salazareo in https://github.com/HeyPuter/puter/pull/2678
* feat: notify prod by @Salazareo in https://github.com/HeyPuter/puter/pull/2679
* fix: change_email and user-protected endpoints by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2680
* feat: redis pubsub for multiple connected clients in broadcast service and webhook fixes by @Salazareo in https://github.com/HeyPuter/puter/pull/2681
* feat: add puter.peer to sdk, create PeerService in backend by @velzie in https://github.com/HeyPuter/puter/pull/2664
* change capitalization of inviteCode by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2683
* change turn customIdentifier seperator by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2684
* Change turn customIdentifier fully by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2685
* fix: websocket credentials by @Salazareo in https://github.com/HeyPuter/puter/pull/2687
* turn metering support by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2689
* fix: tighten cors logic for socket io by @Salazareo in https://github.com/HeyPuter/puter/pull/2688
* Revert "fix: tighten cors logic for socket io" by @Salazareo in https://github.com/HeyPuter/puter/pull/2694
* fix: broadcast pubsub + cleanup old code by @Salazareo in https://github.com/HeyPuter/puter/pull/2695
* fix: socket io sockets by @Salazareo in https://github.com/HeyPuter/puter/pull/2696
* chore: decrease uneeded logging by @Salazareo in https://github.com/HeyPuter/puter/pull/2697
* fix(gui): account for iOS safe area inset on taskbar/dock in https://github.com/HeyPuter/puter/pull/2682
* Peer docs by @jelveh in https://github.com/HeyPuter/puter/pull/2699
* fix: ws double messages by @Salazareo in https://github.com/HeyPuter/puter/pull/2700
* Fix double slash in canonical URL #2672 by @nandinikashyap1902 in https://github.com/HeyPuter/puter/pull/2690
* docs: fix 404 in CreateAppResult documentation due to case sensitivity by @huseynovvusal in https://github.com/HeyPuter/puter/pull/2702
* docs: add ai-voice-changer playground example by @Dailin521 in https://github.com/HeyPuter/puter/pull/2708
* chore: remove dead code and docs by @Salazareo in https://github.com/HeyPuter/puter/pull/2705
* fix: issue with tokens not being received by puter app by @Salazareo in https://github.com/HeyPuter/puter/pull/2713
* refactor ai video gen by @P3il4 in https://github.com/HeyPuter/puter/pull/2711
* feat: Add Anthropic Messages API compatibility layer by @iamsrishanth in https://github.com/HeyPuter/puter/pull/2704
* WIP openai responses support by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2715
* feat: root level kv accesses, and installed app listing + server health check fix by @Salazareo in https://github.com/HeyPuter/puter/pull/2719
* fix: bad esm issue by @Salazareo in https://github.com/HeyPuter/puter/pull/2720
* fix: letter case issue by @Salazareo in https://github.com/HeyPuter/puter/pull/2721
* fix: init installed apps controller by @Salazareo in https://github.com/HeyPuter/puter/pull/2722
* fix: extension type import by @Salazareo in https://github.com/HeyPuter/puter/pull/2723
* fix: installed apps api by @Salazareo in https://github.com/HeyPuter/puter/pull/2725
* fix: healtcheck improvements by @Salazareo in https://github.com/HeyPuter/puter/pull/2726
* fix: remove flaky event loop check by @Salazareo in https://github.com/HeyPuter/puter/pull/2727
* fix case sensitive together video model ids by @P3il4 in https://github.com/HeyPuter/puter/pull/2728
* fix: remove last opened by @Salazareo in https://github.com/HeyPuter/puter/pull/2729
* fix: syntax issue with sql by @Salazareo in https://github.com/HeyPuter/puter/pull/2730
* fix: return fallback icons if no icon present for installed apps by @Salazareo in https://github.com/HeyPuter/puter/pull/2731
* Small tweaks to puter.peer by @velzie in https://github.com/HeyPuter/puter/pull/2734
* Add claude cache control docs by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2737
* fix: handle closing server nicer on shutdown signal by @Salazareo in https://github.com/HeyPuter/puter/pull/2741
* fix: health checks by @Salazareo in https://github.com/HeyPuter/puter/pull/2743
* Display logged-in banner on homepage by @jelveh in https://github.com/HeyPuter/puter/pull/2742
* fix: incrememnt ddb sharding to 10k by @Salazareo in https://github.com/HeyPuter/puter/pull/2744
* fix: remove recommended app caching in favour of stronger caching at app fetch layer by @Salazareo in https://github.com/HeyPuter/puter/pull/2748
* docs: update code examples from gpt-5-nano to gpt-5.4-nano by @LeC-D in https://github.com/HeyPuter/puter/pull/2738
* Fix prompt caching example broken character by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2750
* support video inputs in .chat by @P3il4 in https://github.com/HeyPuter/puter/pull/2740
* Getting rid of Endpoint by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2732
* Add context field to OpenRouter, MistralAI, and OpenAI models by @costajohnt in https://github.com/HeyPuter/puter/pull/2653
* feat: signed upload urls by @Salazareo in https://github.com/HeyPuter/puter/pull/2753
* feat: thumbnail event for gui by @Salazareo in https://github.com/HeyPuter/puter/pull/2754
* docs(kv): add sorting section with examples to list() API reference by @RaffyLeong in https://github.com/HeyPuter/puter/pull/2739
* Update prompt caching example by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2758
* feat: s3 fs in oss by @Salazareo in https://github.com/HeyPuter/puter/pull/2761
* fix: no shutdown outside of puter servers by @Salazareo in https://github.com/HeyPuter/puter/pull/2762
* add google video native provider, imagen models by @P3il4 in https://github.com/HeyPuter/puter/pull/2759
* Add kv.list() pagination playground example by @tmchow in https://github.com/HeyPuter/puter/pull/2760
* feat: enable singed uploads on oss and fix broken migration by @Salazareo in https://github.com/HeyPuter/puter/pull/2765
* fix: app id shortcut when creating apps by @Salazareo in https://github.com/HeyPuter/puter/pull/2768
* Ns/simplify 1 by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2764
* fix: missing subdomains and worker flags in readdir by @Salazareo in https://github.com/HeyPuter/puter/pull/2772
* Fix openrouter enumeration by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2780
* chore: delete remaining "command" service by @Salazareo in https://github.com/HeyPuter/puter/pull/2781
* fix: delete command service files? by @Salazareo in https://github.com/HeyPuter/puter/pull/2782
* derive aliases from puterid for video models by @P3il4 in https://github.com/HeyPuter/puter/pull/2777
* fix: add showSpinner() and hideSpinner() to docs sidebar by @subhp03 in https://github.com/HeyPuter/puter/pull/2779
* Close #2718 : added querying with prefix patterns example and documentation by @hemant838 in https://github.com/HeyPuter/puter/pull/2778
* better error reports for chat fallbacks by @P3il4 in https://github.com/HeyPuter/puter/pull/2783
* fix:  dynamodb health checks and client recreation by @Salazareo in https://github.com/HeyPuter/puter/pull/2789
* Minor fix docs and update puter resource unit by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2792
* fix: redis max retries and fail fast timeouts by @Salazareo in https://github.com/HeyPuter/puter/pull/2793
* cleanup: batcher to batch more appropriately by @Salazareo in https://github.com/HeyPuter/puter/pull/2794
* fix veo video with proxy link by @P3il4 in https://github.com/HeyPuter/puter/pull/2799
* fix: app canonization for puter.com apps by @Salazareo in https://github.com/HeyPuter/puter/pull/2800
* fix: origin app Ids by @Salazareo in https://github.com/HeyPuter/puter/pull/2801
* add gemini image models in .chat by @P3il4 in https://github.com/HeyPuter/puter/pull/2771
* Ns/simplify 2 by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2790
* Add WSL support for signed uploads by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2809
* add replicate image provider by @P3il4 in https://github.com/HeyPuter/puter/pull/2806
* remove glitched submodule by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2810
* Dashboard Update by @miikakuisma in https://github.com/HeyPuter/puter/pull/2788
* add opus 4.7, adjust thinking by @P3il4 in https://github.com/HeyPuter/puter/pull/2813
* fix: close start menu popover on repeated click by @tmchow in https://github.com/HeyPuter/puter/pull/2784
* fix: update knowledge date for Claude Opus 4.7 model by @subhp03 in https://github.com/HeyPuter/puter/pull/2816
* adjust and refactor together models costs by @P3il4 in https://github.com/HeyPuter/puter/pull/2811
* fix: cdn cache invalidation by @Salazareo in https://github.com/HeyPuter/puter/pull/2826
* add gpt image 2 by @P3il4 in https://github.com/HeyPuter/puter/pull/2829
* shrink redis failure by @Salazareo in https://github.com/HeyPuter/puter/pull/2831
* fix: anticsrf to store tokens in redis by @Salazareo in https://github.com/HeyPuter/puter/pull/2834
* Revert "fix: anticsrf to store tokens in redis (#2834)" by @Salazareo in https://github.com/HeyPuter/puter/pull/2835
* fix: AIChatService.ts by @Salazareo in https://github.com/HeyPuter/puter/pull/2836
* add gpt 5.5 by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2841
* add gpt 5.5-pro by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2843
* GUI cleanup by @jelveh in https://github.com/HeyPuter/puter/pull/2842
* Improve validation error messages for better UX by @shubthenub in https://github.com/HeyPuter/puter/pull/2833
* Puter JS - Web Components for UI API by @miikakuisma in https://github.com/HeyPuter/puter/pull/2808
* Update docs setMenubar by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2845
* Fixing issues with mobile contextMenu by @miikakuisma in https://github.com/HeyPuter/puter/pull/2848
* Remove file sharing UI and related code by @jelveh in https://github.com/HeyPuter/puter/pull/2817
* fix: oidc errors by @Salazareo in https://github.com/HeyPuter/puter/pull/2852
* fix: oidc errors again by @Salazareo in https://github.com/HeyPuter/puter/pull/2853
* rework: change backend and backend extensions to use simpler code structure and patterns by @Salazareo in https://github.com/HeyPuter/puter/pull/2815
* fix: bad ai endpoint by @Salazareo in https://github.com/HeyPuter/puter/pull/2856
* fix: ai driver errors by @Salazareo in https://github.com/HeyPuter/puter/pull/2857
* fix: no default gemini image quality by @Salazareo in https://github.com/HeyPuter/puter/pull/2858
* fix: harden some gemini image errors by @Salazareo in https://github.com/HeyPuter/puter/pull/2859
* fix: fail unauthed sessions nicely by @Salazareo in https://github.com/HeyPuter/puter/pull/2860
* backport devwatcher by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2861
* fix: auth checks by @Salazareo in https://github.com/HeyPuter/puter/pull/2862
* fix: signup event by @Salazareo in https://github.com/HeyPuter/puter/pull/2863
* fix: more clean ip for signup validation by @Salazareo in https://github.com/HeyPuter/puter/pull/2864
* fix: sync ips for validation by @Salazareo in https://github.com/HeyPuter/puter/pull/2865
* fix: oidc and chat validation events by @Salazareo in https://github.com/HeyPuter/puter/pull/2866
* fix: send right error codes by @Salazareo in https://github.com/HeyPuter/puter/pull/2867
* fix: dbConfigs and ai routes by @Salazareo in https://github.com/HeyPuter/puter/pull/2868
* puter models list fix by @Salazareo in https://github.com/HeyPuter/puter/pull/2869
* fix: app autocreation by @Salazareo in https://github.com/HeyPuter/puter/pull/2872
* Add z.ai chat completions by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2874
* Remove gross retarded legacy tools and docs by @jelveh in https://github.com/HeyPuter/puter/pull/2873
* Add grok 4.3 by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2875
* Ns/return better together video error by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2876
* zai --> z-ai by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2878
* Add AGPL license headers to source files by @jelveh in https://github.com/HeyPuter/puter/pull/2877
* Delete license_header.txt by @jelveh in https://github.com/HeyPuter/puter/pull/2879
* fix: better error codes + unlimited local credit by @Salazareo in https://github.com/HeyPuter/puter/pull/2880
* fix: extensions by @Salazareo in https://github.com/HeyPuter/puter/pull/2881
* invalidate subdomains on delete by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2882
* fix: misc fs issues by @Salazareo in https://github.com/HeyPuter/puter/pull/2883
* errors for fs by @Salazareo in https://github.com/HeyPuter/puter/pull/2884
* remove exports by @Salazareo in https://github.com/HeyPuter/puter/pull/2885
* Revert "remove exports" by @Salazareo in https://github.com/HeyPuter/puter/pull/2887
* Revert "Revert "remove exports"" by @Salazareo in https://github.com/HeyPuter/puter/pull/2888
* Add Gemini TTS provider and integrate client/docs by @jelveh in https://github.com/HeyPuter/puter/pull/2889
* Add xAI (Grok) TTS and STT providers and integrate client/docs by @jelveh in https://github.com/HeyPuter/puter/pull/2890
* Add Moonshot AI (Kimi) chat completion provider by @jelveh in https://github.com/HeyPuter/puter/pull/2893
* Update UI docs and types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2854
* Remove settings UI & service; redirect to dashboard by @jelveh in https://github.com/HeyPuter/puter/pull/2900
* fix: subdomain cache invalidaton by @Salazareo in https://github.com/HeyPuter/puter/pull/2901
* selfhost: fullstack self host p1 by @Salazareo in https://github.com/HeyPuter/puter/pull/2902
* selfhosting: p2 fixed default configs and guide + some other errors by @Salazareo in https://github.com/HeyPuter/puter/pull/2903
* selfhosting: p3 cleanup docs + small fixes again by @Salazareo in https://github.com/HeyPuter/puter/pull/2904
* fix: selfhosted thumbnails extensions by @Salazareo in https://github.com/HeyPuter/puter/pull/2905
* cleanup selfhost config by @Salazareo in https://github.com/HeyPuter/puter/pull/2908
* docker-compose from git by @Salazareo in https://github.com/HeyPuter/puter/pull/2909
* fix: handle fs duplicates on write by @Salazareo in https://github.com/HeyPuter/puter/pull/2910
* fix: nginx missing in self host script by @Salazareo in https://github.com/HeyPuter/puter/pull/2911
* Block unconfirmed users from API endpoints server-side by @jelveh in https://github.com/HeyPuter/puter/pull/2916
* add email into metering alert by @Salazareo in https://github.com/HeyPuter/puter/pull/2917
* fix: fs issues [PUT-846] by @Salazareo in https://github.com/HeyPuter/puter/pull/2918
* add back web input into OCR by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2919
* fix: broken apps in self hosted by @Salazareo in https://github.com/HeyPuter/puter/pull/2920
* fix: email by @Salazareo in https://github.com/HeyPuter/puter/pull/2922
* fix: fsEntry and tscofnig by @Salazareo in https://github.com/HeyPuter/puter/pull/2923
* New README.md by @jelveh in https://github.com/HeyPuter/puter/pull/2915

## New Contributors
* @brauliopf made their first contribution in https://github.com/HeyPuter/puter/pull/1155
* @ntwari-bruce made their first contribution in https://github.com/HeyPuter/puter/pull/1156
* @acordero4852 made their first contribution in https://github.com/HeyPuter/puter/pull/1161
* @sashpawar11 made their first contribution in https://github.com/HeyPuter/puter/pull/1170
* @Gautam7352 made their first contribution in https://github.com/HeyPuter/puter/pull/1168
* @purohitamann made their first contribution in https://github.com/HeyPuter/puter/pull/1175
* @tanveer-brar made their first contribution in https://github.com/HeyPuter/puter/pull/1177
* @arunabhcode made their first contribution in https://github.com/HeyPuter/puter/pull/1184
* @Awnder made their first contribution in https://github.com/HeyPuter/puter/pull/1182
* @ajaykrishnaswamy made their first contribution in https://github.com/HeyPuter/puter/pull/1164
* @Hetsavani made their first contribution in https://github.com/HeyPuter/puter/pull/1191
* @FCzajkowski made their first contribution in https://github.com/HeyPuter/puter/pull/1193
* @anuja12mishra made their first contribution in https://github.com/HeyPuter/puter/pull/1195
* @kira-offgrid made their first contribution in https://github.com/HeyPuter/puter/pull/1200
* @hisham-maarraoui made their first contribution in https://github.com/HeyPuter/puter/pull/1190
* @gautamkapoor1709 made their first contribution in https://github.com/HeyPuter/puter/pull/1204
* @kristavlastou made their first contribution in https://github.com/HeyPuter/puter/pull/1214
* @Jomaguy made their first contribution in https://github.com/HeyPuter/puter/pull/1174
* @EvaNtziou made their first contribution in https://github.com/HeyPuter/puter/pull/1246
* @shushannap made their first contribution in https://github.com/HeyPuter/puter/pull/1169
* @Niveditarani made their first contribution in https://github.com/HeyPuter/puter/pull/1250
* @TanCodeX made their first contribution in https://github.com/HeyPuter/puter/pull/1281
* @krikera made their first contribution in https://github.com/HeyPuter/puter/pull/1295
* @atagtm made their first contribution in https://github.com/HeyPuter/puter/pull/1261
* @Rohanpawar9921 made their first contribution in https://github.com/HeyPuter/puter/pull/1311
* @bilalkhantanoli made their first contribution in https://github.com/HeyPuter/puter/pull/1314
* @rodrick-mpofu made their first contribution in https://github.com/HeyPuter/puter/pull/1219
* @Krisss46 made their first contribution in https://github.com/HeyPuter/puter/pull/1319
* @IgorJFS made their first contribution in https://github.com/HeyPuter/puter/pull/1363
* @JoshJoseph1234 made their first contribution in https://github.com/HeyPuter/puter/pull/1350
* @GitHubliuzhijie made their first contribution in https://github.com/HeyPuter/puter/pull/1365
* @Yasir-Rafique made their first contribution in https://github.com/HeyPuter/puter/pull/1347
* @GlennDmello17 made their first contribution in https://github.com/HeyPuter/puter/pull/1381
* @emmanuel-ferdman made their first contribution in https://github.com/HeyPuter/puter/pull/1378
* @karan1205 made their first contribution in https://github.com/HeyPuter/puter/pull/1382
* @rohanrawat09 made their first contribution in https://github.com/HeyPuter/puter/pull/1402
* @Prathameshw4 made their first contribution in https://github.com/HeyPuter/puter/pull/1404
* @anderlli0053 made their first contribution in https://github.com/HeyPuter/puter/pull/1445
* @pranav200408 made their first contribution in https://github.com/HeyPuter/puter/pull/1443
* @Shahidpathan22 made their first contribution in https://github.com/HeyPuter/puter/pull/1447
* @onel made their first contribution in https://github.com/HeyPuter/puter/pull/1432
* @ParkourKarthik made their first contribution in https://github.com/HeyPuter/puter/pull/1460
* @Nikhil-Gautam-dev made their first contribution in https://github.com/HeyPuter/puter/pull/1463
* @DHANUSHRAJA22 made their first contribution in https://github.com/HeyPuter/puter/pull/1465
* @tarunsaini04 made their first contribution in https://github.com/HeyPuter/puter/pull/1478
* @bomberfish made their first contribution in https://github.com/HeyPuter/puter/pull/1477
* @rajanarahul93 made their first contribution in https://github.com/HeyPuter/puter/pull/1491
* @imrozkhan205 made their first contribution in https://github.com/HeyPuter/puter/pull/1438
* @Deepam02 made their first contribution in https://github.com/HeyPuter/puter/pull/1534
* @RicJDev made their first contribution in https://github.com/HeyPuter/puter/pull/1536
* @shadow-taw made their first contribution in https://github.com/HeyPuter/puter/pull/1538
* @Sabbir256 made their first contribution in https://github.com/HeyPuter/puter/pull/1537
* @sidshas03 made their first contribution in https://github.com/HeyPuter/puter/pull/1541
* @dependabot[bot] made their first contribution in https://github.com/HeyPuter/puter/pull/1547
* @AlfreThiago made their first contribution in https://github.com/HeyPuter/puter/pull/1554
* @Webb321 made their first contribution in https://github.com/HeyPuter/puter/pull/1559
* @tanso0126 made their first contribution in https://github.com/HeyPuter/puter/pull/1558
* @Aryan01b made their first contribution in https://github.com/HeyPuter/puter/pull/1557
* @RudareanuLeonard made their first contribution in https://github.com/HeyPuter/puter/pull/1565
* @union-galactic made their first contribution in https://github.com/HeyPuter/puter/pull/1566
* @TeetOBeard made their first contribution in https://github.com/HeyPuter/puter/pull/1568
* @dtakahashi333 made their first contribution in https://github.com/HeyPuter/puter/pull/1570
* @iamJ3 made their first contribution in https://github.com/HeyPuter/puter/pull/1572
* @meezumi made their first contribution in https://github.com/HeyPuter/puter/pull/1575
* @Amritpandey5 made their first contribution in https://github.com/HeyPuter/puter/pull/1577
* @kamilkulczyk made their first contribution in https://github.com/HeyPuter/puter/pull/1584
* @coluccifrancesco made their first contribution in https://github.com/HeyPuter/puter/pull/1588
* @SaifAttar003 made their first contribution in https://github.com/HeyPuter/puter/pull/1599
* @infienite made their first contribution in https://github.com/HeyPuter/puter/pull/1609
* @Azazel7Kuro made their first contribution in https://github.com/HeyPuter/puter/pull/1618
* @Onitsag made their first contribution in https://github.com/HeyPuter/puter/pull/1615
* @mrtbgau made their first contribution in https://github.com/HeyPuter/puter/pull/1614
* @Haitam6 made their first contribution in https://github.com/HeyPuter/puter/pull/1616
* @biranzegelman97 made their first contribution in https://github.com/HeyPuter/puter/pull/1634
* @skeith made their first contribution in https://github.com/HeyPuter/puter/pull/1638
* @hungdannt made their first contribution in https://github.com/HeyPuter/puter/pull/1641
* @gulizar-elhalil made their first contribution in https://github.com/HeyPuter/puter/pull/1677
* @Raj4478 made their first contribution in https://github.com/HeyPuter/puter/pull/1676
* @reynaldichernando made their first contribution in https://github.com/HeyPuter/puter/pull/1747
* @harsha08-2k6 made their first contribution in https://github.com/HeyPuter/puter/pull/1820
* @Savithru7142 made their first contribution in https://github.com/HeyPuter/puter/pull/1821
* @Arun24-8 made their first contribution in https://github.com/HeyPuter/puter/pull/1822
* @Gnanasaikiran made their first contribution in https://github.com/HeyPuter/puter/pull/1859
* @Aravind30648 made their first contribution in https://github.com/HeyPuter/puter/pull/1893
* @parth-117 made their first contribution in https://github.com/HeyPuter/puter/pull/1927
* @2400032286 made their first contribution in https://github.com/HeyPuter/puter/pull/1925
* @utkubakir made their first contribution in https://github.com/HeyPuter/puter/pull/1828
* @vipul264og made their first contribution in https://github.com/HeyPuter/puter/pull/1936
* @r58Playz made their first contribution in https://github.com/HeyPuter/puter/pull/1959
* @JohnBoulanger made their first contribution in https://github.com/HeyPuter/puter/pull/1989
* @eswarseeram made their first contribution in https://github.com/HeyPuter/puter/pull/2007
* @bangarumahesh22 made their first contribution in https://github.com/HeyPuter/puter/pull/2010
* @SuryaGanesh284 made their first contribution in https://github.com/HeyPuter/puter/pull/2013
* @krishna3324 made their first contribution in https://github.com/HeyPuter/puter/pull/2020
* @2400060033 made their first contribution in https://github.com/HeyPuter/puter/pull/2035
* @rajucreate made their first contribution in https://github.com/HeyPuter/puter/pull/2045
* @soumyabrata23130 made their first contribution in https://github.com/HeyPuter/puter/pull/2239
* @Omcodes23 made their first contribution in https://github.com/HeyPuter/puter/pull/2224
* @Talasudeepk made their first contribution in https://github.com/HeyPuter/puter/pull/2043
* @sn-o-w made their first contribution in https://github.com/HeyPuter/puter/pull/2280
* @RahulAswal01 made their first contribution in https://github.com/HeyPuter/puter/pull/2278
* @serilevanjalines made their first contribution in https://github.com/HeyPuter/puter/pull/2338
* @llpingll made their first contribution in https://github.com/HeyPuter/puter/pull/2311
* @AryaXDG made their first contribution in https://github.com/HeyPuter/puter/pull/2365
* @Devansh-18 made their first contribution in https://github.com/HeyPuter/puter/pull/2359
* @sanjeevafk made their first contribution in https://github.com/HeyPuter/puter/pull/2431
* @stuffbymax made their first contribution in https://github.com/HeyPuter/puter/pull/2405
* @miikakuisma made their first contribution in https://github.com/HeyPuter/puter/pull/2462
* @samarthmishra46 made their first contribution in https://github.com/HeyPuter/puter/pull/2484
* @P3il4 made their first contribution in https://github.com/HeyPuter/puter/pull/2501
* @Babali42 made their first contribution in https://github.com/HeyPuter/puter/pull/2585
* @theluckystrike made their first contribution in https://github.com/HeyPuter/puter/pull/2613
* @eshwar-artyz made their first contribution in https://github.com/HeyPuter/puter/pull/2620
* @nandinikashyap1902 ma