What's Changed
- fix Uncaught TypeError: Cannot read properties of undefined (reading … by @ProgrammerIn-wonderland in #1116
- Update fr.js by @Zac0511 in #1119
- Fix : the issue with the success message not displaying after deployment by @mariatouil in #1072
- Revert "Fix : the issue with the success message not displaying after deployment" by @jelveh in #1121
- #1123: add temperature and max_tokens to completion requests by @brauliopf in #1155
- Enhanced ai command to perfom other commands by @ntwari-bruce in #1156
- Fix the color of the UI on dark mode (e.g. windows control, active sidebar) by @acordero4852 in #1161
- fix: made protocol dynamic in the publishURL displayed on 'Publish As Website' dialogbox by @sashpawar11 in #1170
- Update README.md by @Gautam7352 in #1168
- dev: moved current datetime to toolbar as a widget by @sashpawar11 in #1172
- tweak : moved clock to right between profile and search by @sashpawar11 in #1181
- UIAlert with dynamic icon types and default button configurations by @purohitamann in #1175
- GUI Permission Dialog by @tanveer-brar in #1177
- upgrade node version to 23.9 by @arunabhcode in #1184
- feat: create and export UsageLimitedChatService by @Awnder in #1182
- add API to get a list of all available models by @arunabhcode in #1160
- Update events docs by @ajaykrishnaswamy in #1164
- [BUG] : fixed-sidebar-headings-contrast by @Hetsavani in #1191
- Polish Translation fix by @FCzajkowski in #1193
- Standardized OpenAI config format and updated documentation issue #1180 by @anuja12mishra in #1195
- Fix generic.secrets.security.detected-aws-account-id.detected-aws-account-id by @kira-offgrid in #1200
- feat: hide icons/show icons feature added to the right-click/secondary click menu on the desktop by @hisham-maarraoui in #1190
- Make it easier to add file extensions to an app in bulk by @KernelDeimos in #1205
- fix: update check_usage_ to only consider past month usage by @KernelDeimos in #1209
- feat: add costly model to FakeChatService by @KernelDeimos in #1211
- fix: clarify variable names in puter.ai.chat method by @KernelDeimos in #1213
- Improve PuterAI module documentation structure by @KernelDeimos in #1216
- tweak: Documentation for Email Testing by @gautamkapoor1709 in #1204
- Fix npm install error on Windows (spawn EINVAL) (#1203) by @kristavlastou in #1214
- Ai command tool function by @ntwari-bruce in #1194
- feat: add public endpoint for models list by @KernelDeimos in #1228
- Split middleware into two different components by @Jomaguy in #1174
- Refactor: Migrate interfaces.js to new registration mechanism by @KernelDeimos in #1239
- Add Remove profile picture button #1245 by @EvaNtziou in #1246
- tweak: reorder and fix Farsi translation of i18n keys by @shushannap in #1169
- fix/bug#1233-iframe-overlap-issue by @Niveditarani in #1250
- Add reauthentication for unauthenticated web clients when Socket api is called by @ProgrammerIn-wonderland in #1267
- change initialization order to make wisp socket on first use of network by @ProgrammerIn-wonderland in #1268
- Puter.net.fetch -- cors exempt wisp based fetch by @ProgrammerIn-wonderland in #1269
- fix accidental checking of requestHead when responseHead should be checked by @ProgrammerIn-wonderland in #1270
- Add support for chunked encoding in puter.net.fetch by @ProgrammerIn-wonderland in #1271
- fix TLS stream premature close issue by @ProgrammerIn-wonderland in #1272
- Housekeeping: Get rid of puter.http/puter.https by @ProgrammerIn-wonderland in #1273
- docs: sync extension events documentation with backendChanges by @TanCodeX in #1281
- make auth UI not required for now by @ProgrammerIn-wonderland in #1283
- Networking: dont sent authentication header if puter.authToken is undefined by @ProgrammerIn-wonderland in #1284
- support for request bodies by @ProgrammerIn-wonderland in #1286
- [docs]: clarify CostService usage and improve metered services discoverability by @TanCodeX in #1287
- fix: enable and fix date command tests (#796) by @krikera in #1295
- Update first-run-issues.md by @atagtm in #1261
- docs(i18n): update Hindi translation of README by @Rohanpawar9921 in #1311
- fix(i18n): Complete Norwegian Nynorsk translation by @bilalkhantanoli in #1314
- feat: add desktop link shortcuts (refs #682) by @rodrick-mpofu in #1219
- dev: extension prefix update, doc helper & docs update by @XiaochenCui in #1318
- fix: arrow key navigation in Explorer (#1089) by @Krisss46 in #1319
- Dynamic toolbar by @jelveh in #1324
- Don't hide the toolbar on mobile and tablet by @jelveh in #1328
- Dynamic toolbar: allow users to customize toolbar sticky by @jelveh in #1330
- Add preliminary support for different voices to
puter.ai.txt2speech()by @jelveh in #1325 - fix: return proper error message when the model is not found by @XiaochenCui in #1331
- Remove captcha from frontend by @jelveh in #1335
- Puter Worker support in backend and nodejs support + service worker support + web worker support in puterjs by @ProgrammerIn-wonderland in #1316
- Add a basic Firebase Studio config file by @Zac0511 in #1338
- Puter.js workers api by @ProgrammerIn-wonderland in #1339
- aws/polly: add new apis to puter-js, add new args to txt2speech by @XiaochenCui in #1337
- mkdir: return 403 error for mkdir action in the root dir by @XiaochenCui in #1351
- event.puter//user puter and automatic cors exemption handling in puter workers by @ProgrammerIn-wonderland in #1342
- Update Portuguese and Spanish translation README by @IgorJFS in #1363
- Fixed issue: #1033 (Added app category display in Dev Center in main app list) by @JoshJoseph1234 in #1350
- Support streaming drivers in XMLHTTPRequest-less platforms (nodejs, serviceworker) by @ProgrammerIn-wonderland in #1364
- feat(gui): Add animation effects to the taskbar by @GitHubliuzhijie in #1365
- Revert "feat(gui): Add animation effects to the taskbar" by @jelveh in #1366
- Allow multipage apps in puterjs by @ProgrammerIn-wonderland in #1368
- fs: adapt to different mkdir api, block write to root dir, add tests by @XiaochenCui in #1369
- Configurable taskbar position by @jelveh in #1372
- chore: apply Prettier formatting and add formatting config by @Yasir-Rafique in #1347
- fix failed tests in apitest (
move_cartandstat) by @XiaochenCui in #1376 - fix: issue #542 , add missing Norwegian Bokmål translations based on English file by @GlennDmello17 in #1381
- Puter workers FS based backend by @ProgrammerIn-wonderland in #1383
- Puter workers exec by @ProgrammerIn-wonderland in #1384
- fs: ll_mkdir/write -> provider.mkdir/write by @XiaochenCui in #1362
- Puter workers fix URL by @ProgrammerIn-wonderland in #1385
- Fix issue in invalid social media url by @emmanuel-ferdman in #1378
- dev: Replaced human-readable text with i18n keys by @karan1205 in #1382
- worker global s2w -> router by @ProgrammerIn-wonderland in #1386
- Allow - in worker name by @ProgrammerIn-wonderland in #1388
- Puter workers ask for auth if no token by @ProgrammerIn-wonderland in #1389
- hotfix: emit the missing event, fix check condition by @XiaochenCui in #1390
- Make worker names global && return improve error handling for APIError by @ProgrammerIn-wonderland in #1393
- Add coersion to JSON response in workers by @ProgrammerIn-wonderland in #1394
- improve error handling, user specific worker limit by @ProgrammerIn-wonderland in #1396
- Support a few more incoming and global objects in workers by @ProgrammerIn-wonderland in #1401
- docs: added utils.js build script documentation by @rohanrawat09 in #1402
- Update worker limit by @ProgrammerIn-wonderland in #1405
- Update nb.js by @Prathameshw4 in #1404
- remove sessionStorage params by @ProgrammerIn-wonderland in #1408
- Gui deploy workers by @jelveh in #1409
- Worker api change by @ProgrammerIn-wonderland in #1411
- dev: query backend for workers.list() and workers.get() now to get path too by @ProgrammerIn-wonderland in #1412
- dev: expose file_uid in worker calls by @ProgrammerIn-wonderland in #1413
- dev: workers, return iso timestamp instead by @ProgrammerIn-wonderland in #1414
- fix: return "null" for file_path and file_uid if backing file is none… by @ProgrammerIn-wonderland in #1418
- dev: migrate away from puter.drivers.call() by @ProgrammerIn-wonderland in #1419
- Workers and websites in dev center by @jelveh in #1417
- remove driver lsmod check by @ProgrammerIn-wonderland in #1421
- Worker app sandboxing by @ProgrammerIn-wonderland in #1422
- filter workers from hosting list by @ProgrammerIn-wonderland in #1426
- fs/event: consolidate fs.written to fs.write by @XiaochenCui in #1392
- Feat/custom domains by @ProgrammerIn-wonderland in #1440
- send source app data to opened app by @jelveh in #1441
- puter.js & gui changes required for cool app by @KernelDeimos in #1425
- Update sl.js by @anderlli0053 in #1445
- fix(desktop): prevent horizontal scrolling by constraining window drag (#710) by @pranav200408 in #1443
- Revert "fix(desktop): prevent horizontal scrolling by constraining window drag (#710)" by @jelveh in #1446
- Added Norwegian Bokmål translations for missing keys by @Shahidpathan22 in #1447
- Dav by @ProgrammerIn-wonderland in #1450
- Reference documention by @onel in #1432
- Reference docs - putility by @onel in #1433
- feat: add 'path' option to showOpenFileDialog by @KernelDeimos in #1453
- fix wrong return value on file cache service by @XiaochenCui in #1455
- Fix: Microsoft office Bearer issue & Allow cors webdav by @ProgrammerIn-wonderland in #1461
- Fix tamil language selection text by @ParkourKarthik in #1460
- macOS webdav pollution fix by @ProgrammerIn-wonderland in #1462
- feat: update Norwegian Nynorsk (nn.js) translations by @Nikhil-Gautam-dev in #1463
- feat: improve 404 error handling in Puter sites with custom page support by @jelveh in #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 #1465
- test: fix apitest, add new unit tests and benchmarks, normalize output by @XiaochenCui in #1467
- fs/memory-provider by @XiaochenCui in #1400
- captcha: add captcha widget to the signup window by @XiaochenCui in #1468
- fs: improve get/set_storage api by @XiaochenCui in #1471
- captcha: imporve condition checks for cloudflare turnstile by @XiaochenCui in #1469
- docs: Add documentation for Entity Storage internals by @tarunsaini04 in #1478
- Revert "docs: Add documentation for Entity Storage internals" by @jelveh in #1479
- fix: puter workers url 🐛 by @ProgrammerIn-wonderland in #1480
- Fix buggy arrow key navigation in start menu by @bomberfish in #1477
- Reduce bottom bound on dragging UIItems by @bomberfish in #1485
- fix(gui): prevent background apps from stealing focus by @rajanarahul93 in #1491
- Fix mac setup bug by @pranav200408 in #1449
- Revert "Fix mac setup bug" by @jelveh in #1492
- Update fr.js by @Zac0511 in #1493
- Create BUG-BOUNTY.md by @jelveh in #1483
- captcha: complete the docs by @XiaochenCui in #1494
- Refactor GeminiService for modularity, error handling, and readability by @imrozkhan205 in #1438
- Revert "Refactor GeminiService for modularity, error handling, and readability" by @jelveh in #1496
- feat(UI): Differentiate tablet UI based on pointer capabilities by @tarunsaini04 in #1482
- feat(i18n): add missing Hindi translations (#1525) by @Deepam02 in #1534
- feat: add expiry support to DBKV, and eslint config by @Salazareo in #1497
- Adding missing Spanish translations by @RicJDev in #1536
- the Arabic (العربية) translation of Puter is Completed by @shadow-taw in #1538
- Complete the Bengali translation of Puter by @Sabbir256 in #1537
- i18n(ta): complete missing Tamil translations in ta.js by @sidshas03 in #1541
- New image models by @ProgrammerIn-wonderland in #1542
- feat: support Gemini imagegen service by @ProgrammerIn-wonderland in #1544
- Updating the Arabic (العربية) translation by @shadow-taw in #1543
- build(deps): bump form-data from 4.0.0 to 4.0.4 in /tools/api-tester by @dependabot[bot] in #1547
- build(deps): bump axios from 1.4.0 to 1.12.0 in /tools/api-tester by @dependabot[bot] in #1548
- build(deps): bump get-func-name from 2.0.0 to 2.0.2 in /tools/api-tester by @dependabot[bot] in #1549
- build(deps): bump serialize-javascript and mocha in /src/phoenix by @dependabot[bot] in #1550
- build(deps): bump braces from 3.0.2 to 3.0.3 in /src/phoenix by @dependabot[bot] in #1551
- build(deps): bump path-to-regexp from 6.2.1 to 6.3.0 in /src/phoenix by @dependabot[bot] in #1552
- build(deps-dev): bump rollup from 3.23.0 to 3.29.5 in /src/terminal by @dependabot[bot] in #1553
- Adding missing translations for Brazilian Portuguese. by @AlfreThiago in #1554
- feat: logging for queries in puter js by @Salazareo in #1484
- fix: br.js transaltions by @Salazareo in #1555
- fix: add Chinese transaltions by @Webb321 in #1559
- Update ko.js with full Korean translations by @tanso0126 in #1558
- Translate and improve emojis by @Aryan01b in #1557
- refactor: make theme service non-blocking and fix captcha issues by @jelveh in #1564
- Romanian Translation Done by @RudareanuLeonard in #1565
- fix: expiry time for dbkv by @Salazareo in #1560
- Updating ru.js by @union-galactic in #1566
- fix: improve PT-BR translation in br.js by @TeetOBeard in #1568
- fix: add Japanese translations (#1519) by @dtakahashi333 in #1570
- Complete Missing Hungarian Translations in hu.js by @iamJ3 in #1572
- Make templates non blocking by @jelveh in #1573
- dev: preflightless stat/readdir/drivercalls by @ProgrammerIn-wonderland in #1561
- doc: added missing Dutch translations by @meezumi in #1575
- added missing values by @Amritpandey5 in #1577
- Cache is king baby! Let's go 🚀 by @jelveh in #1574
- fix: get rid of preflight for non-apifs readdir/stat by @ProgrammerIn-wonderland in #1578
- build(deps): bump form-data from 4.0.2 to 4.0.4 in /test/integration by @dependabot[bot] in #1580
- build(deps): bump braces from 3.0.2 to 3.0.3 in /src/terminal by @dependabot[bot] in #1581
- build(deps): bump multer from 1.4.5-lts.2 to 2.0.2 by @dependabot[bot] in #1582
- build(deps-dev): bump rollup from 3.21.4 to 3.29.5 in /src/phoenix by @dependabot[bot] in #1583
- build(deps): bump serialize-javascript and mocha in /src/terminal by @dependabot[bot] in #1585
- Add missing polish translation by @kamilkulczyk in #1584
- Refactor file system operations in GUI and puter.js to use eventual consistency by @jelveh in #1579
- ci: drop support and testing for node 18 by @Salazareo in #1587
- tweak: update and complete translation of it.js by @coluccifrancesco in #1588
- add apitest to github actions by @XiaochenCui in #1591
- test: add puterjs test to apiteste by @XiaochenCui in #1590
- npm: release to npm by @Salazareo in #1592
- fix: package name by @Salazareo in #1593
- build(deps): bump serialize-javascript from 6.0.1 to 6.0.2 in /src/puter-js by @dependabot[bot] in #1594
- npm: fix publish by @Salazareo in #1595
- Add context menu to apps in the start menu by @bomberfish in #1487
- build(deps): bump requests from 2.32.3 to 2.32.4 in /tools/api-tester/ci by @dependabot[bot] in #1598
- Enhance login GUI: improve layout and add show/hide password by @SaifAttar003 in #1599
- Revert "Enhance login GUI: improve layout and add show/hide password" by @jelveh in #1600
- build(deps): bump webpack from 5.89.0 to 5.101.3 in /src/puter-js by @dependabot[bot] in #1601
- Don't raise window to the foreground if close or minimize button is clicked by @bomberfish in #1589
- feat: allow setting puter origin via globalThis variables by @Salazareo in #1606
- chore: add jsdoc typings for KV interface by @Salazareo in #1607
- Add Bahasa Malaysia (Malay) i18n Support by @infienite in #1609
- client-cache: update cache-invalidation policy to ts-based comparison by @XiaochenCui in #1611
- feat: Add missing Urdu translations by @Azazel7Kuro in #1618
- fix puterjs throwing errors after consuming message events not meant for it by @velzie in #1612
- feat: Add missing Portuguese translations by @Onitsag in #1615
- dep: updating node dep version to one that supports modules by @Salazareo in #1621
- client-cache: remove pulling by @XiaochenCui in #1620
- feat: DAV Locks support + refactor of DAV method handler by @Salazareo in #1486
- revert: eslint config rules by @Salazareo in #1625
- chore: update @heyputer/kv.js dependency to version 0.2.0 and initial… by @jelveh in #1623
- update client-cache logic by @XiaochenCui in #1626
- feat: add missing Persian and Finnish translations by @mrtbgau in #1614
- feat: Complete missing Ukrainian, Turkish and Thai translations by @Haitam6 in #1616
- fix a typo by @XiaochenCui in #1627
- Added more reference docs to backend by @onel in #1540
- perf: flatten permissions checks for user_to_user perms by @Salazareo in #1562
- Add 'Set as Desktop Background' context menu item to images by @bomberfish in #1635
- Fix bug with context menu positioning on page load by @bomberfish in #1636
- added missing hebrew translations + fixed some existing translation + changed he.js export variable from en to he by @biranzegelman97 in #1634
- fix: permission batch get dedup by @Salazareo in #1637
- Update Indonesian (Bahasa Indonesia) translation of Puter by @skeith in #1638
- feat: metering service by @Salazareo in #1630
- feat: Add missing Vietnamese translations by @hungdannt in #1641
- fix: increment for non-existent keys by @Salazareo in #1649
- Disable browser context menu on launcher popover by @bomberfish in #1648
- Puter types streaming ai by @ProgrammerIn-wonderland in #1667
puter.ui.getLanguage()should always return a promise by @jelveh in #1668- Replace "Save As..." with
i18n('Save As…')by @jelveh in #1670 - Closes #1669 by @jelveh in #1671
- Remove
package-lock.json, then update it on x64 and arm64. by @KernelDeimos in #1672 - empty: testing pull on deploy server by @KernelDeimos in #1674
- style: small change to test deploy by @KernelDeimos in #1675
- Update ku.js by @gulizar-elhalil in #1677
- add option to automatically set window title to opened file's name by @jelveh in #1678
- I18n for sys dirs by @jelveh in #1679
- Update UIDesktop.js by @jelveh in #1682
- Safari fix for TLS connections in puter by @ProgrammerIn-wonderland in #1683
- feat(Translation): added support for Armenian and also added Bulgarian (Closes #1523) by @Raj4478 in #1676
- fix: preflight issue with protected endpoints by @KernelDeimos in #1688
- fix: options.no_options_auth should be optional chained by @ProgrammerIn-wonderland in #1689
- feat: extract and centralize cost maps for metering service by @Salazareo in #1691
- test: vitest tests for puter js by @Salazareo in #1693
- Sidepanel by @jelveh in #1694
- fix: remove verbose parameters log by @KernelDeimos in #1695
- fix: backward compatibility for puter kv incr/decr by @Salazareo in #1697
- chore: publish npm by @Salazareo in #1698
- feat: manage permission for user to user and dev to app file sharing by @Salazareo in #1567
- Update helpers.js by @jelveh in #1701
- Update globals.js by @jelveh in #1702
- feat: meter open ai by @Salazareo in #1703
- fix: undefined alias array by @Salazareo in #1709
- Added refence documentation by @onel in #1690
- feat: immprove
UIPopoverandUIWindowbehavior for sidepanel visibility by @jelveh in #1711 - First steps towards init log reduction by @KernelDeimos in #1699
- fix: broken open ai moderation by @Salazareo in #1714
- ci: fix failure by upgrading library by @XiaochenCui in #1713
- feat: meter claude ai by @Salazareo in #1716
- fix: metering service global write and open ai default model by @Salazareo in #1717
- chore: add http-server as a dev dependency and update package scripts by @jelveh in #1718
- Npm run test puterjs by @jelveh in #1719
- Update UIWindow.js by @jelveh in #1720
- fix: bad boolean check by @Salazareo in #1721
- Add in events for thumbnails by @ProgrammerIn-wonderland in #1700
- feat: add openrouter metering by @Salazareo in #1724
- Logs Update by @KernelDeimos in #1723
- fix: openrouter usage calculator by @Salazareo in #1725
- revert: revert devex changes by @Salazareo in #1728
- Revert "revert: revert devex changes " by @Salazareo in #1729
- cleanup: remove auxilary return for now by @Salazareo in #1727
- Revert "Logs Update" by @ProgrammerIn-wonderland in #1730
- fix: adjust toolbar positioning for sidepanel based on taskbar location by @jelveh in #1731
- Fix missing check for
dev-consoleservice (which is disabled in prod) by @KernelDeimos in #1734 - Taskbar pos by @jelveh in #1735
- metering: rest of ai by @Salazareo in #1736
- Update UITaskbar.js by @jelveh in #1737
- Improve puterjs caching by @jelveh in #1739
- fix npm package not importing init.cjs by @ProgrammerIn-wonderland in #1743
- add guard around sending thumbnail event if thumbnail url is blank or falsey by @ProgrammerIn-wonderland in #1744
- improve caching mechanism by deleting specific caches on item addition in FileSystem module by @jelveh in #1745
- metering: new usage endpoint + puter-js changes for it by @Salazareo in #1738
- feat: metering service allowence checks and subscription integration 🚀 by @Salazareo in #1749
- fix: typos by @Salazareo in #1754
- feat: add alarms to meteringService if cost for service is unexpectedly 0 by @Salazareo in #1755
- fix: alowance typo by @Salazareo in #1756
- Detailed usage report by @jelveh in #1752
- adjust usage table styling by @jelveh in #1759
- Add refresh button for updating usage data in Settings by @jelveh in #1760
- fix: app monthly usage details error by @Salazareo in #1761
- feat: enforce new metering + get rid of old methods by @Salazareo in #1762
- feat: purchase addons logic in metering by @Salazareo in #1765
- Improve usage report UI by @jelveh in #1766
- fix: NaN value for consumedPurchaseCredits accounting by @Salazareo in #1767
- fix: bad math check for max consumed credits by @Salazareo in #1769
- fix: bad null check for subs by @Salazareo in #1770
- cleanup usage reporting by @jelveh in #1771
- further devex/log changes by @KernelDeimos in #1758
- cleanup usage reporting by @jelveh in #1772
- devex: remove verbose logging on copy and paste by @KernelDeimos in #1773
- fix: permission writeback to flat kv perissions by @Salazareo in #1774
- implement an extension event for IPC messages coming in by @jelveh in #1776
- devex: use 'stars' style for webserver notice by @KernelDeimos in #1775
- ci: add timeout for api-test by @XiaochenCui in #1768
- Remove fixed width in publish website input by @reynaldichernando in #1747
- implement stat request dedupe to improve performance by @jelveh in #1753
- ci: avoid potential hanging via hard limit by @XiaochenCui in #1778
- add puter.workers.getLoggingHandle by @ProgrammerIn-wonderland in #1779
- feat: introduce
PANEL_WIDTHconstant and refactorUIWindowfor pa… by @jelveh in #1780 - feat: alert when going over usage limits significantly + egress metering by @Salazareo in #1782
- Revert "feat: alert when going over usage limits significantly + egress metering" by @Salazareo in #1785
- Revert "Revert "feat: alert when going over usage limits significantly + egress metering"" by @Salazareo in #1786
- Revert "Revert "Revert "feat: alert when going over usage limits significantly + egress metering""" by @Salazareo in #1787
- 4x revert "feat: alert when going over usage limits significantly + egress metering" by @Salazareo in #1788
- fix: bad acl check returning early by @Salazareo in #1789
- Revert: fs metering by @Salazareo in #1790
- revert: fs metering revertion + fix what was broken by @Salazareo in #1795
- feat: limit alerting to only once per multiple of allowed usage by @Salazareo in #1798
- feat: shard apps as well to avoid hot partitions by @Salazareo in #1799
- feat: rename meteringAndBilling to metering by @Salazareo in #1800
- docs: metering and examples by @Salazareo in #1803
- Update putility to MIT by @KernelDeimos in #1805
- putility license headers update by @KernelDeimos in #1807
- chore: putility patch version 1.1.1 by @KernelDeimos in #1808
- chore: puter.js version 2.1.1 by @KernelDeimos in #1809
- doc: dependencies when moving PuterFS to extension by @KernelDeimos in #1801
- Throw error on moderation, fix OpenAI config by @KernelDeimos in #1802
- fix: usage limited issue whens treaming by @Salazareo in #1806
- feat: route for global usage aggregate by @Salazareo in #1810
- remove progwin for desktop mkdir by @jelveh in #1814
- ci: capture the error during setup by @XiaochenCui in #1811
- feat: allow for unlimitedAllowList + typedefs snuck in by accident by @Salazareo in #1813
- dev: add event to mutate app origin by @KernelDeimos in #1823
- fix: simplify export import typedef by @Salazareo in #1818
- optimization: change moderation time from O(n) to O(1) by @ProgrammerIn-wonderland in #1825
- fix: Switch to new OpenAI Moderation model by @ProgrammerIn-wonderland in #1826
- i18n(ig): translate missing entries in src/gui/src/i18n/translations/… by @harsha08-2k6 in #1820
- Add
dedupeNametoCreateAppOptionsby @reynaldichernando in #1783 - chore: update phrasing based on review by @Savithru7142 in #1821
- more reliable suspended by @KernelDeimos in #1696
- Add sora 2 support by @jelveh in #1834
- fix: lessen alert triggering for metering by @Salazareo in #1837
- Improved public folder file links by @bomberfish in #1687
- Expose MemoryFS from extension as
testfsby @KernelDeimos in #1817 - chore: update typedefs and fix dbkv issue by @Salazareo in #1840
- Add
UploadOptionsfor Puter.js types by @reynaldichernando in #1832 - fix: dbkv raw import by @Salazareo in #1848
- Fix testMode for
txt2vidby @jelveh in #1849 - feat: devCenter open ui message by @Salazareo in #1850
- simple thumbnail update endpoint by @KernelDeimos in #1794
- ci: init e2e test for browser env, tidy other tests by @XiaochenCui in #1796
- feat: meter ll_read for the person reading by @Salazareo in #1854
- add OpenAI support to
txt2speechby @jelveh in #1853 - Complete Traditional Chinese translations (#1501) by @Arun24-8 in #1822
- Revert "Complete Traditional Chinese translations (#1501)" by @jelveh in #1856
- feat: add speech2text by @jelveh in #1855
- ai: return reasoning tokens in the streaming mode by @XiaochenCui in #1356
- Update files.js and deleteUser to use ll_read by @KernelDeimos in #1839
- fix: do not animate non-existing captcha modal by @KernelDeimos in #1869
- Small cleanup for recent fix in createTempUser by @KernelDeimos in #1870
- Update Norwegian Nynorsk translations in nn.js by @Gnanasaikiran in #1859
- Revert "Update Norwegian Nynorsk translations in nn.js" by @jelveh in #1874
- better path resolve errors by @KernelDeimos in #1710
- feat: ui for dev account + util decorators for controllers in extension by @Salazareo in #1864
- ci: disable job "puterjs (browser env, playwright)" by @XiaochenCui in #1871
- ci: expose server logs by @XiaochenCui in #1860
- fix: allow stripe header and commit db migration by @Salazareo in #1877
- fix: bad naming by @Salazareo in #1878
- fix: bad amount of sql params by @Salazareo in #1879
- fix: stringify metadata object by @Salazareo in #1880
- fix: don't set metadata until migration by @Salazareo in #1886
- Revert: commits for user metadata changes by @Salazareo in #1887
- fix: add back non-functional changes by @Salazareo in #1888
- cleanup: more benign changes by @Salazareo in #1889
- fix: ts issue when building for deploy by @Salazareo in #1890
- fix: adding more benign changes by @Salazareo in #1891
- Add monthly and detailed app usage types by @reynaldichernando in #1843
- fix(i18n): complete and clean up German translation by @Aravind30648 in #1893
- Revert "fix(i18n): complete and clean up German translation" by @jelveh in #1898
- Add cache_control support and haiku 4.5 by @ProgrammerIn-wonderland in #1897
- make together.ai image and video models work! by @jelveh in #1881
- filesystem refactoring efforts toward eventually moving to extension (1/unknown) by @KernelDeimos in #1868
- fix: access internal ID without assuming fetch by @KernelDeimos in #1872
- fix: also check this.entry.id when checking mysql_id by @KernelDeimos in #1906
- feat: rawBody parser, user metadata column + other misc fixes by @Salazareo in #1904
- PuterFS extension proxy by @KernelDeimos in #1875
- fix: check if system_prompts is an empty array by @KernelDeimos in #1907
- fix: bad wrapper wrap by @Salazareo in #1908
- Move
rmdirto extension and remove#rmnodefrom PuterFSProvider by @KernelDeimos in #1916 - fix: error calling .startsWith on null mime_type by @KernelDeimos in #1917
- fix: allow mysql json object response by @Salazareo in #1918
- Move operations (quick_check, mkdir, read) to extension by @KernelDeimos in #1919
- chore: type fixes by @Salazareo in #1920
- Move ACL to ll_mkdir, and move operations (stat, copy_tree) to
puterfsextension by @KernelDeimos in #1921 - Add hindi readme by @parth-117 in #1927
- Revert "Add hindi readme" by @jelveh in #1928
- Revert "Add hindi readme (#1927)" by @jelveh in #1929
- Add missing puter env enums by @reynaldichernando in #1926
- Fix formatting: Add space after slash in German translation by @2400032286 in #1925
- feat: Settings and modal UI/UX improvements by @utkubakir in #1828
- Revert "feat: Settings and modal UI/UX improvements" by @jelveh in #1931
- performance: batch metering service usage increments when relevant by @Salazareo in #1930
- Move
readdirandmovetoputerfsextension by @KernelDeimos in #1932 - Use standard color picker in theme dialog by @KernelDeimos in #1933
- chore: ts lint stuff by @Salazareo in #1934
- added complete French translation of README by @vipul264og in #1936
- docs: prefix together ai model by @Salazareo in #1939
- chore: remove rollup, always use webpack by @KernelDeimos in #1942
- Revert "docs: add complete French translation of README (#1936)" by @KernelDeimos in #1943
- Re-add direct download via URL parameter by @bomberfish in #1914
- tweak(apitest): reduce benchmark size by @KernelDeimos in #1949
- Add Punjabi (ਪੰਜਾਬੀ) translation README by @vipul264og in #1944
- Openrouter reasoning fixes by @ProgrammerIn-wonderland in #1951
- Autodiscover ollama support by @ProgrammerIn-wonderland in #1953
- Max token failsafe by @ProgrammerIn-wonderland in #1954
- Fix: missing published/attached website icon for folder on different views (#1764) by @Hetsavani in #1945
- [puterfs] move write operations to extension by @KernelDeimos in #1940
- fix: references to
global_configin puterfs by @KernelDeimos in #1958 - Add Mistral OCR support and imrpove
img2txtAPI by @jelveh in #1957 - PuterFSProvider cleanup and removal of core copy by @KernelDeimos in #1956
- fix: explicit actor not passed to fs provider by @KernelDeimos in #1960
- change claude service max_tokens calculation by @ProgrammerIn-wonderland in #1962
- fix: x86 not booting locally by @r58Playz in #1959
- Add support for GPT-5.1 model and reasoning controls by @jelveh in #1967
- add puter.tools by @ProgrammerIn-wonderland in #1973
- Move thumbnail mutation to getSafeEntry by @ProgrammerIn-wonderland in #1980
- PuterFSProvider decoupling by @KernelDeimos in #1961
- new gemini models by @ProgrammerIn-wonderland in #1986
- puterfs decoupling continued by @KernelDeimos in #1963
- PuterFS - Move storage into filesystem provider by @KernelDeimos in #1982
- disable memoryfs test (for now) and fix package issue for LocalDiskStorage by @KernelDeimos in #1987
- doc: update documentation for TestKernel by @KernelDeimos in #1990
- Fix gemini when tools are null by @ProgrammerIn-wonderland in #1992
- id2path fix by @KernelDeimos in #1994
- fix: open router cache token metering by @Salazareo in #1988
- Fix undefined variables and make it impossible to have them by @KernelDeimos in #1995
- fix: Add debounce to toolbar reveal when dragging windows to prevent accidental activation by @JohnBoulanger in #1989
- fix: only fallback to models that are the same by @Salazareo in #2001
- fix: eslint autofixable errors by @Salazareo in #2002
- Add ElevenLabs TTS provider integration by @jelveh in #2004
- Add missing together image model prefixes by @reynaldichernando in #1972
- fix: fallback models by @Salazareo in #2005
- Add 11labs speech-to-speech voice changer integration by @jelveh in #2006
- i18n(nn): finalize Norwegian Nynorsk translation fixes (Fixes #1514) by @eswarseeram in #2007
- fix: openrouter missing usage by @Salazareo in #2008
- Docs: improve clarity in README introduction by @bangarumahesh22 in #2010
- Add missing Traditional Chinese translations to zhtw.js by @SuryaGanesh284 in #2013
- 2025 11 gemini OpenAI refactor by @ProgrammerIn-wonderland in #2014
- Gemini nano banana pro updated by @ProgrammerIn-wonderland in #2015
- docs: add Punjabi translation link to README by @krishna3324 in #2020
- fix(puterfs): use node
cryptoinstead of Web API by @KernelDeimos in #2022 - test: add test infra to run vitest on all of backend wip by @Salazareo in #2023
- Use aliases when calculating max_tokens in ClaudeService by @ProgrammerIn-wonderland in #2046
- fix: oss boot error fixes by @Salazareo in #2039
- dev(test): enable use of TestKernel in unit tests by @KernelDeimos in #2024
- fix: tsconfig to ignore vite config files by @Salazareo in #2048
- test: migrate _test tests to vitest tests by @KernelDeimos in #2047
- Update tsconfig.json by @2400060033 in #2035
- Add Traditional Chinese (繁體中文) Translation for Issue #1501 by @parth-117 in #2032
- Create README.tel.md by @rajucreate in #2045
- Revert "Create README.tel.md" by @jelveh in #2049
- feat: MeteringService test fixes for now by @Salazareo in #2050
- Worker + NodeJS support for puter.ai.txt2img and puter.ai.txt2vid by @ProgrammerIn-wonderland in #2051
- feat: meteringService test suite by @Salazareo in #2052
- refactor: introduce TestCoreModule for test kernel by @KernelDeimos in #2053
- fix: metering service alerts + missing claude costs by @Salazareo in #2058
- test: add tests for services in CoreModule by @KernelDeimos in #2059
- feat: KV testing by @Salazareo in #2061
- Email read permission for whoami by @ProgrammerIn-wonderland in #2064
- chore: some type and eslint fixes for tests by @Salazareo in #2065
- fix: typo in dbkvStore by @Salazareo in #2066
- fix: backend tests breaking with permision + together ai missing costs for non-streamed requests by @Salazareo in #2067
- Working main 2025 11 29 by @ProgrammerIn-wonderland in #2068
- chore: various test related changes by @Salazareo in #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.permsby @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.requestEmailby @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.spanby @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
DevConsoleServiceand 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.siteorwww.puter.siteto informational page by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2244 - Fix
shortcutToinputer.fs.mkdirby @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 🚀 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
/writeFileby @KernelDeimos in https://github.com/HeyPuter/puter/pull/2282 - Prevent
puter.fs.writefrom 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
appsdriver (replacement fores: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.readfromapp:estoapp(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 🐛 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 🚀 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.authenticateWithPuterby @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
statoperation. 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 #1155
- @ntwari-bruce made their first contribution in #1156
- @acordero4852 made their first contribution in #1161
- @sashpawar11 made their first contribution in #1170
- @Gautam7352 made their first contribution in #1168
- @purohitamann made their first contribution in #1175
- @tanveer-brar made their first contribution in #1177
- @arunabhcode made their first contribution in #1184
- @Awnder made their first contribution in #1182
- @ajaykrishnaswamy made their first contribution in #1164
- @Hetsavani made their first contribution in #1191
- @FCzajkowski made their first contribution in #1193
- @anuja12mishra made their first contribution in #1195
- @kira-offgrid made their first contribution in #1200
- @hisham-maarraoui made their first contribution in #1190
- @gautamkapoor1709 made their first contribution in #1204
- @kristavlastou made their first contribution in #1214
- @Jomaguy made their first contribution in #1174
- @EvaNtziou made their first contribution in #1246
- @shushannap made their first contribution in #1169
- @Niveditarani made their first contribution in #1250
- @TanCodeX made their first contribution in #1281
- @krikera made their first contribution in #1295
- @atagtm made their first contribution in #1261
- @Rohanpawar9921 made their first contribution in #1311
- @bilalkhantanoli made their first contribution in #1314
- @rodrick-mpofu made their first contribution in #1219
- @Krisss46 made their first contribution in #1319
- @IgorJFS made their first contribution in #1363
- @JoshJoseph1234 made their first contribution in #1350
- @GitHubliuzhijie made their first contribution in #1365
- @Yasir-Rafique made their first contribution in #1347
- @GlennDmello17 made their first contribution in #1381
- @emmanuel-ferdman made their first contribution in #1378
- @karan1205 made their first contribution in #1382
- @rohanrawat09 made their first contribution in #1402
- @Prathameshw4 made their first contribution in #1404
- @anderlli0053 made their first contribution in #1445
- @pranav200408 made their first contribution in #1443
- @Shahidpathan22 made their first contribution in #1447
- @onel made their first contribution in #1432
- @ParkourKarthik made their first contribution in #1460
- @Nikhil-Gautam-dev made their first contribution in #1463
- @DHANUSHRAJA22 made their first contribution in #1465
- @tarunsaini04 made their first contribution in #1478
- @bomberfish made their first contribution in #1477
- @rajanarahul93 made their first contribution in #1491
- @imrozkhan205 made their first contribution in #1438
- @Deepam02 made their first contribution in #1534
- @RicJDev made their first contribution in #1536
- @shadow-taw made their first contribution in #1538
- @Sabbir256 made their first contribution in #1537
- @sidshas03 made their first contribution in #1541
- @dependabot[bot] made their first contribution in #1547
- @AlfreThiago made their first contribution in #1554
- @Webb321 made their first contribution in #1559
- @tanso0126 made their first contribution in #1558
- @Aryan01b made their first contribution in #1557
- @RudareanuLeonard made their first contribution in #1565
- @union-galactic made their first contribution in #1566
- @TeetOBeard made their first contribution in #1568
- @dtakahashi333 made their first contribution in #1570
- @iamJ3 made their first contribution in #1572
- @meezumi made their first contribution in #1575
- @Amritpandey5 made their first contribution in #1577
- @kamilkulczyk made their first contribution in #1584
- @coluccifrancesco made their first contribution in #1588
- @SaifAttar003 made their first contribution in #1599
- @infienite made their first contribution in #1609
- @Azazel7Kuro made their first contribution in #1618
- @Onitsag made their first contribution in #1615
- @mrtbgau made their first contribution in #1614
- @Haitam6 made their first contribution in #1616
- @biranzegelman97 made their first contribution in #1634
- @skeith made their first contribution in #1638
- @hungdannt made their first contribution in #1641
- @gulizar-elhalil made their first contribution in #1677
- @Raj4478 made their first contribution in #1676
- @reynaldichernando made their first contribution in #1747
- @harsha08-2k6 made their first contribution in #1820
- @Savithru7142 made their first contribution in #1821
- @Arun24-8 made their first contribution in #1822
- @Gnanasaikiran made their first contribution in #1859
- @Aravind30648 made their first contribution in #1893
- @parth-117 made their first contribution in #1927
- @2400032286 made their first contribution in #1925
- @utkubakir made their first contribution in #1828
- @vipul264og made their first contribution in #1936
- @r58Playz made their first contribution in #1959
- @JohnBoulanger made their first contribution in #1989
- @eswarseeram made their first contribution in #2007
- @bangarumahesh22 made their first contribution in #2010
- @SuryaGanesh284 made their first contribution in #2013
- @krishna3324 made their first contribution in #2020
- @2400060033 made their first contribution in #2035
- @rajucreate made their first contribution in #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