版本发布 8
## What's Changed * fix Uncaught TypeError: Cannot read properties of undefined (reading … by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1116 * Update fr.js by @Zac0511 in https://github.com/HeyPuter/puter/pull/1119 * Fix : the issue with the success message not displaying after deployment by @mariatouil in https://github.com/HeyPuter/puter/pull/1072 * Revert "Fix : the issue with the success message not displaying after deployment" by @jelveh in https://github.com/HeyPuter/puter/pull/1121 * #1123: add temperature and max_tokens to completion requests by @brauliopf in https://github.com/HeyPuter/puter/pull/1155 * Enhanced ai command to perfom other commands by @ntwari-bruce in https://github.com/HeyPuter/puter/pull/1156 * Fix the color of the UI on dark mode (e.g. windows control, active sidebar) by @acordero4852 in https://github.com/HeyPuter/puter/pull/1161 * fix: made protocol dynamic in the publishURL displayed on 'Publish As Website' dialogbox by @sashpawar11 in https://github.com/HeyPuter/puter/pull/1170 * Update README.md by @Gautam7352 in https://github.com/HeyPuter/puter/pull/1168 * dev: moved current datetime to toolbar as a widget by @sashpawar11 in https://github.com/HeyPuter/puter/pull/1172 * tweak : moved clock to right between profile and search by @sashpawar11 in https://github.com/HeyPuter/puter/pull/1181 * UIAlert with dynamic icon types and default button configurations by @purohitamann in https://github.com/HeyPuter/puter/pull/1175 * GUI Permission Dialog by @tanveer-brar in https://github.com/HeyPuter/puter/pull/1177 * upgrade node version to 23.9 by @arunabhcode in https://github.com/HeyPuter/puter/pull/1184 * feat: create and export UsageLimitedChatService by @Awnder in https://github.com/HeyPuter/puter/pull/1182 * add API to get a list of all available models by @arunabhcode in https://github.com/HeyPuter/puter/pull/1160 * Update events docs by @ajaykrishnaswamy in https://github.com/HeyPuter/puter/pull/1164 * [BUG] : fixed-sidebar-headings-contrast by @Hetsavani in https://github.com/HeyPuter/puter/pull/1191 * Polish Translation fix by @FCzajkowski in https://github.com/HeyPuter/puter/pull/1193 * Standardized OpenAI config format and updated documentation issue #1180 by @anuja12mishra in https://github.com/HeyPuter/puter/pull/1195 * Fix generic.secrets.security.detected-aws-account-id.detected-aws-account-id by @kira-offgrid in https://github.com/HeyPuter/puter/pull/1200 * feat: hide icons/show icons feature added to the right-click/secondary click menu on the desktop by @hisham-maarraoui in https://github.com/HeyPuter/puter/pull/1190 * Make it easier to add file extensions to an app in bulk by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1205 * fix: update check_usage_ to only consider past month usage by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1209 * feat: add costly model to FakeChatService by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1211 * fix: clarify variable names in puter.ai.chat method by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1213 * Improve PuterAI module documentation structure by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1216 * tweak: Documentation for Email Testing by @gautamkapoor1709 in https://github.com/HeyPuter/puter/pull/1204 * Fix npm install error on Windows (spawn EINVAL) (#1203) by @kristavlastou in https://github.com/HeyPuter/puter/pull/1214 * Ai command tool function by @ntwari-bruce in https://github.com/HeyPuter/puter/pull/1194 * feat: add public endpoint for models list by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1228 * Split middleware into two different components by @Jomaguy in https://github.com/HeyPuter/puter/pull/1174 * Refactor: Migrate interfaces.js to new registration mechanism by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1239 * Add Remove profile picture button #1245 by @EvaNtziou in https://github.com/HeyPuter/puter/pull/1246 * tweak: reorder and fix Farsi translation of i18n keys by @shushannap in https://github.com/HeyPuter/puter/pull/1169 * fix/bug#1233-iframe-overlap-issue by @Niveditarani in https://github.com/HeyPuter/puter/pull/1250 * Add reauthentication for unauthenticated web clients when Socket api is called by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1267 * change initialization order to make wisp socket on first use of network by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1268 * Puter.net.fetch -- cors exempt wisp based fetch by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1269 * fix accidental checking of requestHead when responseHead should be checked by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1270 * Add support for chunked encoding in puter.net.fetch by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1271 * fix TLS stream premature close issue by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1272 * Housekeeping: Get rid of puter.http/puter.https by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1273 * docs: sync extension events documentation with backendChanges by @TanCodeX in https://github.com/HeyPuter/puter/pull/1281 * make auth UI not required for now by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1283 * Networking: dont sent authentication header if puter.authToken is undefined by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1284 * support for request bodies by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1286 * [docs]: clarify CostService usage and improve metered services discoverability by @TanCodeX in https://github.com/HeyPuter/puter/pull/1287 * fix: enable and fix date command tests (#796) by @krikera in https://github.com/HeyPuter/puter/pull/1295 * Update first-run-issues.md by @atagtm in https://github.com/HeyPuter/puter/pull/1261 * docs(i18n): update Hindi translation of README by @Rohanpawar9921 in https://github.com/HeyPuter/puter/pull/1311 * fix(i18n): Complete Norwegian Nynorsk translation by @bilalkhantanoli in https://github.com/HeyPuter/puter/pull/1314 * feat: add desktop link shortcuts (refs #682) by @rodrick-mpofu in https://github.com/HeyPuter/puter/pull/1219 * dev: extension prefix update, doc helper & docs update by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1318 * fix: arrow key navigation in Explorer (#1089) by @Krisss46 in https://github.com/HeyPuter/puter/pull/1319 * Dynamic toolbar by @jelveh in https://github.com/HeyPuter/puter/pull/1324 * Don't hide the toolbar on mobile and tablet by @jelveh in https://github.com/HeyPuter/puter/pull/1328 * Dynamic toolbar: allow users to customize toolbar sticky by @jelveh in https://github.com/HeyPuter/puter/pull/1330 * Add preliminary support for different voices to `puter.ai.txt2speech()` by @jelveh in https://github.com/HeyPuter/puter/pull/1325 * fix: return proper error message when the model is not found by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1331 * Remove captcha from frontend by @jelveh in https://github.com/HeyPuter/puter/pull/1335 * Puter Worker support in backend and nodejs support + service worker support + web worker support in puterjs by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1316 * Add a basic Firebase Studio config file by @Zac0511 in https://github.com/HeyPuter/puter/pull/1338 * Puter.js workers api by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1339 * aws/polly: add new apis to puter-js, add new args to txt2speech by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1337 * mkdir: return 403 error for mkdir action in the root dir by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1351 * event.puter//user puter and automatic cors exemption handling in puter workers by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1342 * Update Portuguese and Spanish translation README by @IgorJFS in https://github.com/HeyPuter/puter/pull/1363 * Fixed issue: #1033 (Added app category display in Dev Center in main app list) by @JoshJoseph1234 in https://github.com/HeyPuter/puter/pull/1350 * Support streaming drivers in XMLHTTPRequest-less platforms (nodejs, serviceworker) by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1364 * feat(gui): Add animation effects to the taskbar by @GitHubliuzhijie in https://github.com/HeyPuter/puter/pull/1365 * Revert "feat(gui): Add animation effects to the taskbar" by @jelveh in https://github.com/HeyPuter/puter/pull/1366 * Allow multipage apps in puterjs by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1368 * fs: adapt to different mkdir api, block write to root dir, add tests by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1369 * Configurable taskbar position by @jelveh in https://github.com/HeyPuter/puter/pull/1372 * chore: apply Prettier formatting and add formatting config by @Yasir-Rafique in https://github.com/HeyPuter/puter/pull/1347 * fix failed tests in apitest (`move_cart` and `stat`) by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1376 * fix: issue #542 , add missing Norwegian Bokmål translations based on English file by @GlennDmello17 in https://github.com/HeyPuter/puter/pull/1381 * Puter workers FS based backend by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1383 * Puter workers exec by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1384 * fs: ll_mkdir/write -> provider.mkdir/write by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1362 * Puter workers fix URL by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1385 * Fix issue in invalid social media url by @emmanuel-ferdman in https://github.com/HeyPuter/puter/pull/1378 * dev: Replaced human-readable text with i18n keys by @karan1205 in https://github.com/HeyPuter/puter/pull/1382 * worker global s2w -> router by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1386 * Allow - in worker name by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1388 * Puter workers ask for auth if no token by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1389 * hotfix: emit the missing event, fix check condition by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1390 * Make worker names global && return improve error handling for APIError by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1393 * Add coersion to JSON response in workers by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1394 * improve error handling, user specific worker limit by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1396 * Support a few more incoming and global objects in workers by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1401 * docs: added utils.js build script documentation by @rohanrawat09 in https://github.com/HeyPuter/puter/pull/1402 * Update worker limit by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1405 * Update nb.js by @Prathameshw4 in https://github.com/HeyPuter/puter/pull/1404 * remove sessionStorage params by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1408 * Gui deploy workers by @jelveh in https://github.com/HeyPuter/puter/pull/1409 * Worker api change by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1411 * dev: query backend for workers.list() and workers.get() now to get path too by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1412 * dev: expose file_uid in worker calls by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1413 * dev: workers, return iso timestamp instead by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1414 * fix: return "null" for file_path and file_uid if backing file is none… by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1418 * dev: migrate away from puter.drivers.call() by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1419 * Workers and websites in dev center by @jelveh in https://github.com/HeyPuter/puter/pull/1417 * remove driver lsmod check by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1421 * Worker app sandboxing by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1422 * filter workers from hosting list by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1426 * fs/event: consolidate fs.written to fs.write by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1392 * Feat/custom domains by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1440 * send source app data to opened app by @jelveh in https://github.com/HeyPuter/puter/pull/1441 * puter.js & gui changes required for cool app by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1425 * Update sl.js by @anderlli0053 in https://github.com/HeyPuter/puter/pull/1445 * fix(desktop): prevent horizontal scrolling by constraining window drag (#710) by @pranav200408 in https://github.com/HeyPuter/puter/pull/1443 * Revert "fix(desktop): prevent horizontal scrolling by constraining window drag (#710)" by @jelveh in https://github.com/HeyPuter/puter/pull/1446 * Added Norwegian Bokmål translations for missing keys by @Shahidpathan22 in https://github.com/HeyPuter/puter/pull/1447 * Dav by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1450 * Reference documention by @onel in https://github.com/HeyPuter/puter/pull/1432 * Reference docs - putility by @onel in https://github.com/HeyPuter/puter/pull/1433 * feat: add 'path' option to showOpenFileDialog by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1453 * fix wrong return value on file cache service by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1455 * Fix: Microsoft office Bearer issue & Allow cors webdav by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1461 * Fix tamil language selection text by @ParkourKarthik in https://github.com/HeyPuter/puter/pull/1460 * macOS webdav pollution fix by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1462 * feat: update Norwegian Nynorsk (nn.js) translations by @Nikhil-Gautam-dev in https://github.com/HeyPuter/puter/pull/1463 * feat: improve 404 error handling in Puter sites with custom page support by @jelveh in https://github.com/HeyPuter/puter/pull/1466 * fix: remove unnecessary scrollbar from Account page (#1307)fix: remove unnecessary scrollbar from Account page (#1307)Fix account scrollbar issue by changing overflow:hidden to overflow:v… by @DHANUSHRAJA22 in https://github.com/HeyPuter/puter/pull/1465 * test: fix apitest, add new unit tests and benchmarks, normalize output by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1467 * fs/memory-provider by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1400 * captcha: add captcha widget to the signup window by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1468 * fs: improve get/set_storage api by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1471 * captcha: imporve condition checks for cloudflare turnstile by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1469 * docs: Add documentation for Entity Storage internals by @tarunsaini04 in https://github.com/HeyPuter/puter/pull/1478 * Revert "docs: Add documentation for Entity Storage internals" by @jelveh in https://github.com/HeyPuter/puter/pull/1479 * fix: puter workers url 🐛 by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1480 * Fix buggy arrow key navigation in start menu by @bomberfish in https://github.com/HeyPuter/puter/pull/1477 * Reduce bottom bound on dragging UIItems by @bomberfish in https://github.com/HeyPuter/puter/pull/1485 * fix(gui): prevent background apps from stealing focus by @rajanarahul93 in https://github.com/HeyPuter/puter/pull/1491 * Fix mac setup bug by @pranav200408 in https://github.com/HeyPuter/puter/pull/1449 * Revert "Fix mac setup bug" by @jelveh in https://github.com/HeyPuter/puter/pull/1492 * Update fr.js by @Zac0511 in https://github.com/HeyPuter/puter/pull/1493 * Create BUG-BOUNTY.md by @jelveh in https://github.com/HeyPuter/puter/pull/1483 * captcha: complete the docs by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1494 * Refactor GeminiService for modularity, error handling, and readability by @imrozkhan205 in https://github.com/HeyPuter/puter/pull/1438 * Revert "Refactor GeminiService for modularity, error handling, and readability" by @jelveh in https://github.com/HeyPuter/puter/pull/1496 * feat(UI): Differentiate tablet UI based on pointer capabilities by @tarunsaini04 in https://github.com/HeyPuter/puter/pull/1482 * feat(i18n): add missing Hindi translations (#1525) by @Deepam02 in https://github.com/HeyPuter/puter/pull/1534 * feat: add expiry support to DBKV, and eslint config by @Salazareo in https://github.com/HeyPuter/puter/pull/1497 * Adding missing Spanish translations by @RicJDev in https://github.com/HeyPuter/puter/pull/1536 * the Arabic (العربية) translation of Puter is Completed by @shadow-taw in https://github.com/HeyPuter/puter/pull/1538 * Complete the Bengali translation of Puter by @Sabbir256 in https://github.com/HeyPuter/puter/pull/1537 * i18n(ta): complete missing Tamil translations in ta.js by @sidshas03 in https://github.com/HeyPuter/puter/pull/1541 * New image models by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1542 * feat: support Gemini imagegen service by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1544 * Updating the Arabic (العربية) translation by @shadow-taw in https://github.com/HeyPuter/puter/pull/1543 * build(deps): bump form-data from 4.0.0 to 4.0.4 in /tools/api-tester by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1547 * build(deps): bump axios from 1.4.0 to 1.12.0 in /tools/api-tester by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1548 * build(deps): bump get-func-name from 2.0.0 to 2.0.2 in /tools/api-tester by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1549 * build(deps): bump serialize-javascript and mocha in /src/phoenix by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1550 * build(deps): bump braces from 3.0.2 to 3.0.3 in /src/phoenix by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1551 * build(deps): bump path-to-regexp from 6.2.1 to 6.3.0 in /src/phoenix by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1552 * build(deps-dev): bump rollup from 3.23.0 to 3.29.5 in /src/terminal by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1553 * Adding missing translations for Brazilian Portuguese. by @AlfreThiago in https://github.com/HeyPuter/puter/pull/1554 * feat: logging for queries in puter js by @Salazareo in https://github.com/HeyPuter/puter/pull/1484 * fix: br.js transaltions by @Salazareo in https://github.com/HeyPuter/puter/pull/1555 * fix: add Chinese transaltions by @Webb321 in https://github.com/HeyPuter/puter/pull/1559 * Update ko.js with full Korean translations by @tanso0126 in https://github.com/HeyPuter/puter/pull/1558 * Translate and improve emojis by @Aryan01b in https://github.com/HeyPuter/puter/pull/1557 * refactor: make theme service non-blocking and fix captcha issues by @jelveh in https://github.com/HeyPuter/puter/pull/1564 * Romanian Translation Done by @RudareanuLeonard in https://github.com/HeyPuter/puter/pull/1565 * fix: expiry time for dbkv by @Salazareo in https://github.com/HeyPuter/puter/pull/1560 * Updating ru.js by @union-galactic in https://github.com/HeyPuter/puter/pull/1566 * fix: improve PT-BR translation in br.js by @TeetOBeard in https://github.com/HeyPuter/puter/pull/1568 * fix: add Japanese translations (#1519) by @dtakahashi333 in https://github.com/HeyPuter/puter/pull/1570 * Complete Missing Hungarian Translations in hu.js by @iamJ3 in https://github.com/HeyPuter/puter/pull/1572 * Make templates non blocking by @jelveh in https://github.com/HeyPuter/puter/pull/1573 * dev: preflightless stat/readdir/drivercalls by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1561 * doc: added missing Dutch translations by @meezumi in https://github.com/HeyPuter/puter/pull/1575 * added missing values by @Amritpandey5 in https://github.com/HeyPuter/puter/pull/1577 * Cache is king baby! Let's go 🚀 by @jelveh in https://github.com/HeyPuter/puter/pull/1574 * fix: get rid of preflight for non-apifs readdir/stat by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1578 * build(deps): bump form-data from 4.0.2 to 4.0.4 in /test/integration by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1580 * build(deps): bump braces from 3.0.2 to 3.0.3 in /src/terminal by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1581 * build(deps): bump multer from 1.4.5-lts.2 to 2.0.2 by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1582 * build(deps-dev): bump rollup from 3.21.4 to 3.29.5 in /src/phoenix by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1583 * build(deps): bump serialize-javascript and mocha in /src/terminal by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1585 * Add missing polish translation by @kamilkulczyk in https://github.com/HeyPuter/puter/pull/1584 * Refactor file system operations in GUI and puter.js to use eventual consistency by @jelveh in https://github.com/HeyPuter/puter/pull/1579 * ci: drop support and testing for node 18 by @Salazareo in https://github.com/HeyPuter/puter/pull/1587 * tweak: update and complete translation of it.js by @coluccifrancesco in https://github.com/HeyPuter/puter/pull/1588 * add apitest to github actions by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1591 * test: add puterjs test to apiteste by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1590 * npm: release to npm by @Salazareo in https://github.com/HeyPuter/puter/pull/1592 * fix: package name by @Salazareo in https://github.com/HeyPuter/puter/pull/1593 * build(deps): bump serialize-javascript from 6.0.1 to 6.0.2 in /src/puter-js by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1594 * npm: fix publish by @Salazareo in https://github.com/HeyPuter/puter/pull/1595 * Add context menu to apps in the start menu by @bomberfish in https://github.com/HeyPuter/puter/pull/1487 * build(deps): bump requests from 2.32.3 to 2.32.4 in /tools/api-tester/ci by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1598 * Enhance login GUI: improve layout and add show/hide password by @SaifAttar003 in https://github.com/HeyPuter/puter/pull/1599 * Revert "Enhance login GUI: improve layout and add show/hide password" by @jelveh in https://github.com/HeyPuter/puter/pull/1600 * build(deps): bump webpack from 5.89.0 to 5.101.3 in /src/puter-js by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/1601 * Don't raise window to the foreground if close or minimize button is clicked by @bomberfish in https://github.com/HeyPuter/puter/pull/1589 * feat: allow setting puter origin via globalThis variables by @Salazareo in https://github.com/HeyPuter/puter/pull/1606 * chore: add jsdoc typings for KV interface by @Salazareo in https://github.com/HeyPuter/puter/pull/1607 * Add Bahasa Malaysia (Malay) i18n Support by @infienite in https://github.com/HeyPuter/puter/pull/1609 * client-cache: update cache-invalidation policy to ts-based comparison by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1611 * feat: Add missing Urdu translations by @Azazel7Kuro in https://github.com/HeyPuter/puter/pull/1618 * fix puterjs throwing errors after consuming message events not meant for it by @velzie in https://github.com/HeyPuter/puter/pull/1612 * feat: Add missing Portuguese translations by @Onitsag in https://github.com/HeyPuter/puter/pull/1615 * dep: updating node dep version to one that supports modules by @Salazareo in https://github.com/HeyPuter/puter/pull/1621 * client-cache: remove pulling by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1620 * feat: DAV Locks support + refactor of DAV method handler by @Salazareo in https://github.com/HeyPuter/puter/pull/1486 * revert: eslint config rules by @Salazareo in https://github.com/HeyPuter/puter/pull/1625 * chore: update @heyputer/kv.js dependency to version 0.2.0 and initial… by @jelveh in https://github.com/HeyPuter/puter/pull/1623 * update client-cache logic by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1626 * feat: add missing Persian and Finnish translations by @mrtbgau in https://github.com/HeyPuter/puter/pull/1614 * feat: Complete missing Ukrainian, Turkish and Thai translations by @Haitam6 in https://github.com/HeyPuter/puter/pull/1616 * fix a typo by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1627 * Added more reference docs to backend by @onel in https://github.com/HeyPuter/puter/pull/1540 * perf: flatten permissions checks for user_to_user perms by @Salazareo in https://github.com/HeyPuter/puter/pull/1562 * Add 'Set as Desktop Background' context menu item to images by @bomberfish in https://github.com/HeyPuter/puter/pull/1635 * Fix bug with context menu positioning on page load by @bomberfish in https://github.com/HeyPuter/puter/pull/1636 * added missing hebrew translations + fixed some existing translation + changed he.js export variable from en to he by @biranzegelman97 in https://github.com/HeyPuter/puter/pull/1634 * fix: permission batch get dedup by @Salazareo in https://github.com/HeyPuter/puter/pull/1637 * Update Indonesian (Bahasa Indonesia) translation of Puter by @skeith in https://github.com/HeyPuter/puter/pull/1638 * feat: metering service by @Salazareo in https://github.com/HeyPuter/puter/pull/1630 * feat: Add missing Vietnamese translations by @hungdannt in https://github.com/HeyPuter/puter/pull/1641 * fix: increment for non-existent keys by @Salazareo in https://github.com/HeyPuter/puter/pull/1649 * Disable browser context menu on launcher popover by @bomberfish in https://github.com/HeyPuter/puter/pull/1648 * Puter types streaming ai by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1667 * `puter.ui.getLanguage()` should always return a promise by @jelveh in https://github.com/HeyPuter/puter/pull/1668 * Replace "Save As..." with `i18n('Save As…')` by @jelveh in https://github.com/HeyPuter/puter/pull/1670 * Closes #1669 by @jelveh in https://github.com/HeyPuter/puter/pull/1671 * Remove `package-lock.json`, then update it on x64 and arm64. by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1672 * empty: testing pull on deploy server by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1674 * style: small change to test deploy by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1675 * Update ku.js by @gulizar-elhalil in https://github.com/HeyPuter/puter/pull/1677 * add option to automatically set window title to opened file's name by @jelveh in https://github.com/HeyPuter/puter/pull/1678 * I18n for sys dirs by @jelveh in https://github.com/HeyPuter/puter/pull/1679 * Update UIDesktop.js by @jelveh in https://github.com/HeyPuter/puter/pull/1682 * Safari fix for TLS connections in puter by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1683 * feat(Translation): added support for Armenian and also added Bulgarian (Closes #1523) by @Raj4478 in https://github.com/HeyPuter/puter/pull/1676 * fix: preflight issue with protected endpoints by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1688 * fix: options.no_options_auth should be optional chained by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1689 * feat: extract and centralize cost maps for metering service by @Salazareo in https://github.com/HeyPuter/puter/pull/1691 * test: vitest tests for puter js by @Salazareo in https://github.com/HeyPuter/puter/pull/1693 * Sidepanel by @jelveh in https://github.com/HeyPuter/puter/pull/1694 * fix: remove verbose parameters log by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1695 * fix: backward compatibility for puter kv incr/decr by @Salazareo in https://github.com/HeyPuter/puter/pull/1697 * chore: publish npm by @Salazareo in https://github.com/HeyPuter/puter/pull/1698 * feat: manage permission for user to user and dev to app file sharing by @Salazareo in https://github.com/HeyPuter/puter/pull/1567 * Update helpers.js by @jelveh in https://github.com/HeyPuter/puter/pull/1701 * Update globals.js by @jelveh in https://github.com/HeyPuter/puter/pull/1702 * feat: meter open ai by @Salazareo in https://github.com/HeyPuter/puter/pull/1703 * fix: undefined alias array by @Salazareo in https://github.com/HeyPuter/puter/pull/1709 * Added refence documentation by @onel in https://github.com/HeyPuter/puter/pull/1690 * feat: immprove `UIPopover` and `UIWindow` behavior for sidepanel visibility by @jelveh in https://github.com/HeyPuter/puter/pull/1711 * First steps towards init log reduction by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1699 * fix: broken open ai moderation by @Salazareo in https://github.com/HeyPuter/puter/pull/1714 * ci: fix failure by upgrading library by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1713 * feat: meter claude ai by @Salazareo in https://github.com/HeyPuter/puter/pull/1716 * fix: metering service global write and open ai default model by @Salazareo in https://github.com/HeyPuter/puter/pull/1717 * chore: add http-server as a dev dependency and update package scripts by @jelveh in https://github.com/HeyPuter/puter/pull/1718 * Npm run test puterjs by @jelveh in https://github.com/HeyPuter/puter/pull/1719 * Update UIWindow.js by @jelveh in https://github.com/HeyPuter/puter/pull/1720 * fix: bad boolean check by @Salazareo in https://github.com/HeyPuter/puter/pull/1721 * Add in events for thumbnails by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1700 * feat: add openrouter metering by @Salazareo in https://github.com/HeyPuter/puter/pull/1724 * Logs Update by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1723 * fix: openrouter usage calculator by @Salazareo in https://github.com/HeyPuter/puter/pull/1725 * revert: revert devex changes by @Salazareo in https://github.com/HeyPuter/puter/pull/1728 * Revert "revert: revert devex changes " by @Salazareo in https://github.com/HeyPuter/puter/pull/1729 * cleanup: remove auxilary return for now by @Salazareo in https://github.com/HeyPuter/puter/pull/1727 * Revert "Logs Update" by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1730 * fix: adjust toolbar positioning for sidepanel based on taskbar location by @jelveh in https://github.com/HeyPuter/puter/pull/1731 * Fix missing check for `dev-console` service (which is disabled in prod) by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1734 * Taskbar pos by @jelveh in https://github.com/HeyPuter/puter/pull/1735 * metering: rest of ai by @Salazareo in https://github.com/HeyPuter/puter/pull/1736 * Update UITaskbar.js by @jelveh in https://github.com/HeyPuter/puter/pull/1737 * Improve puterjs caching by @jelveh in https://github.com/HeyPuter/puter/pull/1739 * fix npm package not importing init.cjs by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1743 * add guard around sending thumbnail event if thumbnail url is blank or falsey by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1744 * improve caching mechanism by deleting specific caches on item addition in FileSystem module by @jelveh in https://github.com/HeyPuter/puter/pull/1745 * metering: new usage endpoint + puter-js changes for it by @Salazareo in https://github.com/HeyPuter/puter/pull/1738 * feat: metering service allowence checks and subscription integration 🚀 by @Salazareo in https://github.com/HeyPuter/puter/pull/1749 * fix: typos by @Salazareo in https://github.com/HeyPuter/puter/pull/1754 * feat: add alarms to meteringService if cost for service is unexpectedly 0 by @Salazareo in https://github.com/HeyPuter/puter/pull/1755 * fix: alowance typo by @Salazareo in https://github.com/HeyPuter/puter/pull/1756 * Detailed usage report by @jelveh in https://github.com/HeyPuter/puter/pull/1752 * adjust usage table styling by @jelveh in https://github.com/HeyPuter/puter/pull/1759 * Add refresh button for updating usage data in Settings by @jelveh in https://github.com/HeyPuter/puter/pull/1760 * fix: app monthly usage details error by @Salazareo in https://github.com/HeyPuter/puter/pull/1761 * feat: enforce new metering + get rid of old methods by @Salazareo in https://github.com/HeyPuter/puter/pull/1762 * feat: purchase addons logic in metering by @Salazareo in https://github.com/HeyPuter/puter/pull/1765 * Improve usage report UI by @jelveh in https://github.com/HeyPuter/puter/pull/1766 * fix: NaN value for consumedPurchaseCredits accounting by @Salazareo in https://github.com/HeyPuter/puter/pull/1767 * fix: bad math check for max consumed credits by @Salazareo in https://github.com/HeyPuter/puter/pull/1769 * fix: bad null check for subs by @Salazareo in https://github.com/HeyPuter/puter/pull/1770 * cleanup usage reporting by @jelveh in https://github.com/HeyPuter/puter/pull/1771 * further devex/log changes by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1758 * cleanup usage reporting by @jelveh in https://github.com/HeyPuter/puter/pull/1772 * devex: remove verbose logging on copy and paste by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1773 * fix: permission writeback to flat kv perissions by @Salazareo in https://github.com/HeyPuter/puter/pull/1774 * implement an extension event for IPC messages coming in by @jelveh in https://github.com/HeyPuter/puter/pull/1776 * devex: use 'stars' style for webserver notice by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1775 * ci: add timeout for api-test by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1768 * Remove fixed width in publish website input by @reynaldichernando in https://github.com/HeyPuter/puter/pull/1747 * implement stat request dedupe to improve performance by @jelveh in https://github.com/HeyPuter/puter/pull/1753 * ci: avoid potential hanging via hard limit by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1778 * add puter.workers.getLoggingHandle by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1779 * feat: introduce `PANEL_WIDTH` constant and refactor `UIWindow` for pa… by @jelveh in https://github.com/HeyPuter/puter/pull/1780 * feat: alert when going over usage limits significantly + egress metering by @Salazareo in https://github.com/HeyPuter/puter/pull/1782 * Revert "feat: alert when going over usage limits significantly + egress metering" by @Salazareo in https://github.com/HeyPuter/puter/pull/1785 * Revert "Revert "feat: alert when going over usage limits significantly + egress metering"" by @Salazareo in https://github.com/HeyPuter/puter/pull/1786 * Revert "Revert "Revert "feat: alert when going over usage limits significantly + egress metering""" by @Salazareo in https://github.com/HeyPuter/puter/pull/1787 * 4x revert "feat: alert when going over usage limits significantly + egress metering" by @Salazareo in https://github.com/HeyPuter/puter/pull/1788 * fix: bad acl check returning early by @Salazareo in https://github.com/HeyPuter/puter/pull/1789 * Revert: fs metering by @Salazareo in https://github.com/HeyPuter/puter/pull/1790 * revert: fs metering revertion + fix what was broken by @Salazareo in https://github.com/HeyPuter/puter/pull/1795 * feat: limit alerting to only once per multiple of allowed usage by @Salazareo in https://github.com/HeyPuter/puter/pull/1798 * feat: shard apps as well to avoid hot partitions by @Salazareo in https://github.com/HeyPuter/puter/pull/1799 * feat: rename meteringAndBilling to metering by @Salazareo in https://github.com/HeyPuter/puter/pull/1800 * docs: metering and examples by @Salazareo in https://github.com/HeyPuter/puter/pull/1803 * Update putility to MIT by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1805 * putility license headers update by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1807 * chore: putility patch version 1.1.1 by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1808 * chore: puter.js version 2.1.1 by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1809 * doc: dependencies when moving PuterFS to extension by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1801 * Throw error on moderation, fix OpenAI config by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1802 * fix: usage limited issue whens treaming by @Salazareo in https://github.com/HeyPuter/puter/pull/1806 * feat: route for global usage aggregate by @Salazareo in https://github.com/HeyPuter/puter/pull/1810 * remove progwin for desktop mkdir by @jelveh in https://github.com/HeyPuter/puter/pull/1814 * ci: capture the error during setup by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1811 * feat: allow for unlimitedAllowList + typedefs snuck in by accident by @Salazareo in https://github.com/HeyPuter/puter/pull/1813 * dev: add event to mutate app origin by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1823 * fix: simplify export import typedef by @Salazareo in https://github.com/HeyPuter/puter/pull/1818 * optimization: change moderation time from O(n) to O(1) by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1825 * fix: Switch to new OpenAI Moderation model by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1826 * i18n(ig): translate missing entries in src/gui/src/i18n/translations/… by @harsha08-2k6 in https://github.com/HeyPuter/puter/pull/1820 * Add `dedupeName` to `CreateAppOptions` by @reynaldichernando in https://github.com/HeyPuter/puter/pull/1783 * chore: update phrasing based on review by @Savithru7142 in https://github.com/HeyPuter/puter/pull/1821 * more reliable suspended by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1696 * Add sora 2 support by @jelveh in https://github.com/HeyPuter/puter/pull/1834 * fix: lessen alert triggering for metering by @Salazareo in https://github.com/HeyPuter/puter/pull/1837 * Improved public folder file links by @bomberfish in https://github.com/HeyPuter/puter/pull/1687 * Expose MemoryFS from extension as `testfs` by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1817 * chore: update typedefs and fix dbkv issue by @Salazareo in https://github.com/HeyPuter/puter/pull/1840 * Add `UploadOptions` for Puter.js types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/1832 * fix: dbkv raw import by @Salazareo in https://github.com/HeyPuter/puter/pull/1848 * Fix testMode for `txt2vid` by @jelveh in https://github.com/HeyPuter/puter/pull/1849 * feat: devCenter open ui message by @Salazareo in https://github.com/HeyPuter/puter/pull/1850 * simple thumbnail update endpoint by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1794 * ci: init e2e test for browser env, tidy other tests by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1796 * feat: meter ll_read for the person reading by @Salazareo in https://github.com/HeyPuter/puter/pull/1854 * add OpenAI support to `txt2speech` by @jelveh in https://github.com/HeyPuter/puter/pull/1853 * Complete Traditional Chinese translations (#1501) by @Arun24-8 in https://github.com/HeyPuter/puter/pull/1822 * Revert "Complete Traditional Chinese translations (#1501)" by @jelveh in https://github.com/HeyPuter/puter/pull/1856 * feat: add speech2text by @jelveh in https://github.com/HeyPuter/puter/pull/1855 * ai: return reasoning tokens in the streaming mode by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1356 * Update files.js and deleteUser to use ll_read by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1839 * fix: do not animate non-existing captcha modal by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1869 * Small cleanup for recent fix in createTempUser by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1870 * Update Norwegian Nynorsk translations in nn.js by @Gnanasaikiran in https://github.com/HeyPuter/puter/pull/1859 * Revert "Update Norwegian Nynorsk translations in nn.js" by @jelveh in https://github.com/HeyPuter/puter/pull/1874 * better path resolve errors by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1710 * feat: ui for dev account + util decorators for controllers in extension by @Salazareo in https://github.com/HeyPuter/puter/pull/1864 * ci: disable job "puterjs (browser env, playwright)" by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1871 * ci: expose server logs by @XiaochenCui in https://github.com/HeyPuter/puter/pull/1860 * fix: allow stripe header and commit db migration by @Salazareo in https://github.com/HeyPuter/puter/pull/1877 * fix: bad naming by @Salazareo in https://github.com/HeyPuter/puter/pull/1878 * fix: bad amount of sql params by @Salazareo in https://github.com/HeyPuter/puter/pull/1879 * fix: stringify metadata object by @Salazareo in https://github.com/HeyPuter/puter/pull/1880 * fix: don't set metadata until migration by @Salazareo in https://github.com/HeyPuter/puter/pull/1886 * Revert: commits for user metadata changes by @Salazareo in https://github.com/HeyPuter/puter/pull/1887 * fix: add back non-functional changes by @Salazareo in https://github.com/HeyPuter/puter/pull/1888 * cleanup: more benign changes by @Salazareo in https://github.com/HeyPuter/puter/pull/1889 * fix: ts issue when building for deploy by @Salazareo in https://github.com/HeyPuter/puter/pull/1890 * fix: adding more benign changes by @Salazareo in https://github.com/HeyPuter/puter/pull/1891 * Add monthly and detailed app usage types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/1843 * fix(i18n): complete and clean up German translation by @Aravind30648 in https://github.com/HeyPuter/puter/pull/1893 * Revert "fix(i18n): complete and clean up German translation" by @jelveh in https://github.com/HeyPuter/puter/pull/1898 * Add cache_control support and haiku 4.5 by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1897 * make together.ai image and video models work! by @jelveh in https://github.com/HeyPuter/puter/pull/1881 * filesystem refactoring efforts toward eventually moving to extension (1/unknown) by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1868 * fix: access internal ID without assuming fetch by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1872 * fix: also check this.entry.id when checking mysql_id by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1906 * feat: rawBody parser, user metadata column + other misc fixes by @Salazareo in https://github.com/HeyPuter/puter/pull/1904 * PuterFS extension proxy by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1875 * fix: check if system_prompts is an empty array by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1907 * fix: bad wrapper wrap by @Salazareo in https://github.com/HeyPuter/puter/pull/1908 * Move `rmdir` to extension and remove `#rmnode` from PuterFSProvider by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1916 * fix: error calling .startsWith on null mime_type by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1917 * fix: allow mysql json object response by @Salazareo in https://github.com/HeyPuter/puter/pull/1918 * Move operations (quick_check, mkdir, read) to extension by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1919 * chore: type fixes by @Salazareo in https://github.com/HeyPuter/puter/pull/1920 * Move ACL to ll_mkdir, and move operations (stat, copy_tree) to `puterfs` extension by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1921 * Add hindi readme by @parth-117 in https://github.com/HeyPuter/puter/pull/1927 * Revert "Add hindi readme" by @jelveh in https://github.com/HeyPuter/puter/pull/1928 * Revert "Add hindi readme (#1927)" by @jelveh in https://github.com/HeyPuter/puter/pull/1929 * Add missing puter env enums by @reynaldichernando in https://github.com/HeyPuter/puter/pull/1926 * Fix formatting: Add space after slash in German translation by @2400032286 in https://github.com/HeyPuter/puter/pull/1925 * feat: Settings and modal UI/UX improvements by @utkubakir in https://github.com/HeyPuter/puter/pull/1828 * Revert "feat: Settings and modal UI/UX improvements" by @jelveh in https://github.com/HeyPuter/puter/pull/1931 * performance: batch metering service usage increments when relevant by @Salazareo in https://github.com/HeyPuter/puter/pull/1930 * Move `readdir` and `move` to `puterfs` extension by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1932 * Use standard color picker in theme dialog by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1933 * chore: ts lint stuff by @Salazareo in https://github.com/HeyPuter/puter/pull/1934 * added complete French translation of README by @vipul264og in https://github.com/HeyPuter/puter/pull/1936 * docs: prefix together ai model by @Salazareo in https://github.com/HeyPuter/puter/pull/1939 * chore: remove rollup, always use webpack by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1942 * Revert "docs: add complete French translation of README (#1936)" by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1943 * Re-add direct download via URL parameter by @bomberfish in https://github.com/HeyPuter/puter/pull/1914 * tweak(apitest): reduce benchmark size by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1949 * Add Punjabi (ਪੰਜਾਬੀ) translation README by @vipul264og in https://github.com/HeyPuter/puter/pull/1944 * Openrouter reasoning fixes by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1951 * Autodiscover ollama support by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1953 * Max token failsafe by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1954 * Fix: missing published/attached website icon for folder on different views (#1764) by @Hetsavani in https://github.com/HeyPuter/puter/pull/1945 * [puterfs] move write operations to extension by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1940 * fix: references to `global_config` in puterfs by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1958 * Add Mistral OCR support and imrpove `img2txt` API by @jelveh in https://github.com/HeyPuter/puter/pull/1957 * PuterFSProvider cleanup and removal of core copy by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1956 * fix: explicit actor not passed to fs provider by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1960 * change claude service max_tokens calculation by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1962 * fix: x86 not booting locally by @r58Playz in https://github.com/HeyPuter/puter/pull/1959 * Add support for GPT-5.1 model and reasoning controls by @jelveh in https://github.com/HeyPuter/puter/pull/1967 * add puter.tools by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1973 * Move thumbnail mutation to getSafeEntry by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1980 * PuterFSProvider decoupling by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1961 * new gemini models by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1986 * puterfs decoupling continued by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1963 * PuterFS - Move storage into filesystem provider by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1982 * disable memoryfs test (for now) and fix package issue for LocalDiskStorage by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1987 * doc: update documentation for TestKernel by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1990 * Fix gemini when tools are null by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1992 * id2path fix by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1994 * fix: open router cache token metering by @Salazareo in https://github.com/HeyPuter/puter/pull/1988 * Fix undefined variables and make it impossible to have them by @KernelDeimos in https://github.com/HeyPuter/puter/pull/1995 * fix: Add debounce to toolbar reveal when dragging windows to prevent accidental activation by @JohnBoulanger in https://github.com/HeyPuter/puter/pull/1989 * fix: only fallback to models that are the same by @Salazareo in https://github.com/HeyPuter/puter/pull/2001 * fix: eslint autofixable errors by @Salazareo in https://github.com/HeyPuter/puter/pull/2002 * Add ElevenLabs TTS provider integration by @jelveh in https://github.com/HeyPuter/puter/pull/2004 * Add missing together image model prefixes by @reynaldichernando in https://github.com/HeyPuter/puter/pull/1972 * fix: fallback models by @Salazareo in https://github.com/HeyPuter/puter/pull/2005 * Add 11labs speech-to-speech voice changer integration by @jelveh in https://github.com/HeyPuter/puter/pull/2006 * i18n(nn): finalize Norwegian Nynorsk translation fixes (Fixes #1514) by @eswarseeram in https://github.com/HeyPuter/puter/pull/2007 * fix: openrouter missing usage by @Salazareo in https://github.com/HeyPuter/puter/pull/2008 * Docs: improve clarity in README introduction by @bangarumahesh22 in https://github.com/HeyPuter/puter/pull/2010 * Add missing Traditional Chinese translations to zhtw.js by @SuryaGanesh284 in https://github.com/HeyPuter/puter/pull/2013 * 2025 11 gemini OpenAI refactor by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2014 * Gemini nano banana pro updated by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2015 * docs: add Punjabi translation link to README by @krishna3324 in https://github.com/HeyPuter/puter/pull/2020 * fix(puterfs): use node `crypto` instead of Web API by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2022 * test: add test infra to run vitest on all of backend wip by @Salazareo in https://github.com/HeyPuter/puter/pull/2023 * Use aliases when calculating max_tokens in ClaudeService by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2046 * fix: oss boot error fixes by @Salazareo in https://github.com/HeyPuter/puter/pull/2039 * dev(test): enable use of TestKernel in unit tests by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2024 * fix: tsconfig to ignore vite config files by @Salazareo in https://github.com/HeyPuter/puter/pull/2048 * test: migrate _test tests to vitest tests by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2047 * Update tsconfig.json by @2400060033 in https://github.com/HeyPuter/puter/pull/2035 * Add Traditional Chinese (繁體中文) Translation for Issue #1501 by @parth-117 in https://github.com/HeyPuter/puter/pull/2032 * Create README.tel.md by @rajucreate in https://github.com/HeyPuter/puter/pull/2045 * Revert "Create README.tel.md" by @jelveh in https://github.com/HeyPuter/puter/pull/2049 * feat: MeteringService test fixes for now by @Salazareo in https://github.com/HeyPuter/puter/pull/2050 * Worker + NodeJS support for puter.ai.txt2img and puter.ai.txt2vid by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2051 * feat: meteringService test suite by @Salazareo in https://github.com/HeyPuter/puter/pull/2052 * refactor: introduce TestCoreModule for test kernel by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2053 * fix: metering service alerts + missing claude costs by @Salazareo in https://github.com/HeyPuter/puter/pull/2058 * test: add tests for services in CoreModule by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2059 * feat: KV testing by @Salazareo in https://github.com/HeyPuter/puter/pull/2061 * Email read permission for whoami by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2064 * chore: some type and eslint fixes for tests by @Salazareo in https://github.com/HeyPuter/puter/pull/2065 * fix: typo in dbkvStore by @Salazareo in https://github.com/HeyPuter/puter/pull/2066 * fix: backend tests breaking with permision + together ai missing costs for non-streamed requests by @Salazareo in https://github.com/HeyPuter/puter/pull/2067 * Working main 2025 11 29 by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2068 * chore: various test related changes by @Salazareo in https://github.com/HeyPuter/puter/pull/2069 * ci: cleanup docker build by @Salazareo in https://github.com/HeyPuter/puter/pull/2070 * ci: fix docker again by @Salazareo in https://github.com/HeyPuter/puter/pull/2071 * ci: package and docker fixes by @Salazareo in https://github.com/HeyPuter/puter/pull/2072 * ci: add test coverage by @Salazareo in https://github.com/HeyPuter/puter/pull/2073 * test: claudeService by @Salazareo in https://github.com/HeyPuter/puter/pull/2074 * Add permission so apps can manage apps or subdomains of a user by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2075 * fix: TelemetryService by @Salazareo in https://github.com/HeyPuter/puter/pull/2077 * fix: wrong order for telemetery init by @Salazareo in https://github.com/HeyPuter/puter/pull/2078 * fix: stricten undef checks by @Salazareo in https://github.com/HeyPuter/puter/pull/2082 * chore: add typedefs for puter.js by @Salazareo in https://github.com/HeyPuter/puter/pull/2086 * Fix turnstile auth by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2087 * Improve error handling for `puter.perms` by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2088 * dev: add __import_identity__ to config for debug use by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2089 * types: fix puter-js type exports by @Salazareo in https://github.com/HeyPuter/puter/pull/2090 * Add flux.2 costmaps by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2092 * Add `puter.perms.requestEmail` by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2093 * Update Node.js section header in README.md by @jelveh in https://github.com/HeyPuter/puter/pull/2095 * Add methods for apps to request access to standard directories by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2096 * apps/subdomains permissions by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2097 * npm: publish new readme by @Salazareo in https://github.com/HeyPuter/puter/pull/2098 * rename: requestPermission -> request by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2101 * Dashboard by @jelveh in https://github.com/HeyPuter/puter/pull/2104 * chore: associate googlemail with gmail rules by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2106 * fix: eleven labs metering costs by @Salazareo in https://github.com/HeyPuter/puter/pull/2112 * Fix AI types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2100 * fix: pass exporter to NodeSDK constructor by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2113 * Performance sprint preparations by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2108 * fix: add simple 30s cache to /healthcheck by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2115 * fix: downgrade opentelemetry so it works again by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2118 * dev: extension.span by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2119 * feat: refactor ai to have single entry point and follow defined model structure by @Salazareo in https://github.com/HeyPuter/puter/pull/2114 * Add type for `extension.span` by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2120 * feat: rename ai models to match norm by @Salazareo in https://github.com/HeyPuter/puter/pull/2121 * fix: prevent loop if failing ai models? by @Salazareo in https://github.com/HeyPuter/puter/pull/2122 * Revert: change to ai model names by @Salazareo in https://github.com/HeyPuter/puter/pull/2123 * Add auth types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2117 * Fix ratio in TogetherImage by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2127 * fix: bad method name for together ai by @Salazareo in https://github.com/HeyPuter/puter/pull/2128 * feat: single image ai endpoint by @Salazareo in https://github.com/HeyPuter/puter/pull/2129 * fix: together ai image prices by @Salazareo in https://github.com/HeyPuter/puter/pull/2130 * Revert: single ai image entry point by @Salazareo in https://github.com/HeyPuter/puter/pull/2131 * Remove backend-core-0 and inline validation helpers by @jelveh in https://github.com/HeyPuter/puter/pull/2138 * chore: remove deprecated threads by @Salazareo in https://github.com/HeyPuter/puter/pull/2139 * Delete backend README links from README.md by @jelveh in https://github.com/HeyPuter/puter/pull/2140 * Remove terminal phoenix emulator by @jelveh in https://github.com/HeyPuter/puter/pull/2141 * cleanup: remove Library + bloated utils where possible by @Salazareo in https://github.com/HeyPuter/puter/pull/2142 * Revert "Revert: single ai image entry point (#2131)" by @Salazareo in https://github.com/HeyPuter/puter/pull/2143 * fix: bad ai calls by @Salazareo in https://github.com/HeyPuter/puter/pull/2144 * fix: batch app info referral by @Salazareo in https://github.com/HeyPuter/puter/pull/2146 * Add alias for gpt-5.2-chat by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2148 * Fix KV types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2152 * Add missing AI types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2151 * Fix FS types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2134 * Fix speech2txt options type by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2150 * Fix hosting types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2153 * several scattered performance fixes by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2154 * cleanup: remove dead cloudwatch logic by @Salazareo in https://github.com/HeyPuter/puter/pull/2155 * fix: bad usageType by @Salazareo in https://github.com/HeyPuter/puter/pull/2157 * chore: decrease uninmportant logs by @Salazareo in https://github.com/HeyPuter/puter/pull/2158 * Remove fat from puterjs by @jelveh in https://github.com/HeyPuter/puter/pull/2156 * Remove Bootstrap 5.1.3 assets from public directory by @jelveh in https://github.com/HeyPuter/puter/pull/2161 * Remove CommentService and related tests by @jelveh in https://github.com/HeyPuter/puter/pull/2160 * Remove dev-console-ui-utils and update related services by @jelveh in https://github.com/HeyPuter/puter/pull/2163 * Remove tag cache refresh logic from AppInformationService by @jelveh in https://github.com/HeyPuter/puter/pull/2166 * Remove `DevConsoleService` and related dev console widgets by @jelveh in https://github.com/HeyPuter/puter/pull/2167 * chore: continue removing extra logs by @Salazareo in https://github.com/HeyPuter/puter/pull/2159 * chore: add better logging to broadcast connections by @Salazareo in https://github.com/HeyPuter/puter/pull/2169 * cd: make our deploy reliably wait for server to be ready by @Salazareo in https://github.com/HeyPuter/puter/pull/2170 * Ds/main by @Salazareo in https://github.com/HeyPuter/puter/pull/2171 * fix: bad caching query crashing our db by @Salazareo in https://github.com/HeyPuter/puter/pull/2172 * fix: make cache calls async on boot by @Salazareo in https://github.com/HeyPuter/puter/pull/2173 * Remove unused putility features by @jelveh in https://github.com/HeyPuter/puter/pull/2168 * fix: missing video gen ai services in ai module by @Salazareo in https://github.com/HeyPuter/puter/pull/2180 * fix: add missing 'tel' runtime module by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2182 * Fix speech2speech options by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2133 * Fix more puter.js typescript types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2181 * perf: [+] readdirstat_uuid optimized implementation by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2183 * telemetry: config telemetry to run by default by @Salazareo in https://github.com/HeyPuter/puter/pull/2184 * Add usage limit dialog and integrate with driverCall_ by @jelveh in https://github.com/HeyPuter/puter/pull/2185 * App telemetry user iteration by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2188 * Add flux.2 max for together provider by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2189 * add typescript transpilation for legacy node support ☹️ by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2190 * fix: types and tests? by @Salazareo in https://github.com/HeyPuter/puter/pull/2193 * Performance Updates by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2192 * Add gemini 3 flash to models by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2191 * Improve EntityStorage Performance by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2194 * add user iteration to all methods which return an App object by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2203 * feat: dynamo in oss by @Salazareo in https://github.com/HeyPuter/puter/pull/2195 * Unit Benchmarks by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2202 * More Benchmarks by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2206 * chore: update our required node version by @Salazareo in https://github.com/HeyPuter/puter/pull/2204 * Revert 2206 eric/25 cj0 more benchmarks by @Salazareo in https://github.com/HeyPuter/puter/pull/2208 * Undo revert of benchmarks and fix imports by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2210 * Entity Refactor (part 0) by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2211 * Add `DataAccessModule` > `AppService` > `select()` (future replacement for EntityStorage+ObjectMapping) by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2212 * fix: don't load bench.js files by @Salazareo in https://github.com/HeyPuter/puter/pull/2207 * Add optional requestCallbacks options to getUser by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2186 * Fix apps types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2197 * Fix workers types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2198 * feat: support extension divs headers and tags being inserted to puter homepage load by @Salazareo in https://github.com/HeyPuter/puter/pull/2221 * fix: cache get_app result with expiry to lessen load on db by @Salazareo in https://github.com/HeyPuter/puter/pull/2229 * fix: don't cache nor fetch raw b64 url for app icons by @Salazareo in https://github.com/HeyPuter/puter/pull/2230 * perf: make app entries more scalable, avoid writing global entries since its just puter itself and isn't relevant by @Salazareo in https://github.com/HeyPuter/puter/pull/2233 * Responses API support for OpenAI by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2226 * Update first-run-issues.md with dnf5 instructions by @soumyabrata23130 in https://github.com/HeyPuter/puter/pull/2239 * Remove debug logs and improve query coalescing timeout by @jelveh in https://github.com/HeyPuter/puter/pull/2241 * Fix FS types by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2201 * Implement redirect from `puter.site` or `www.puter.site` to informational page by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2244 * Fix `shortcutTo` in ` puter.fs.mkdir` by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2246 * fix: Enable godmode for dev-center to open worker files in editor by @Omcodes23 in https://github.com/HeyPuter/puter/pull/2224 * lint: hook for precommit by @Salazareo in https://github.com/HeyPuter/puter/pull/2245 * fix: ts extensions by @Salazareo in https://github.com/HeyPuter/puter/pull/2247 * Remove flux schnell-free by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2243 * fix: add catch all for minimum usage amounts by @Salazareo in https://github.com/HeyPuter/puter/pull/2248 * fix: more strict metering limits, disable ambigious openrouter one by @Salazareo in https://github.com/HeyPuter/puter/pull/2249 * fix: broken openrouter costs by @Salazareo in https://github.com/HeyPuter/puter/pull/2250 * Fix/explorer cursor grab on click by @Hetsavani in https://github.com/HeyPuter/puter/pull/2176 * feat: method for updating users metering directly by @Salazareo in https://github.com/HeyPuter/puter/pull/2252 * chore(deps): bump jws from 4.0.0 to 4.0.1 by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/2232 * i18n(de): polish German translations & fix typos (Fixes #1532) by @eswarseeram in https://github.com/HeyPuter/puter/pull/2009 * Remove ComplainAboutVersionsService and related code by @jelveh in https://github.com/HeyPuter/puter/pull/2179 * Add 'Open in AI' option to item context menus by @jelveh in https://github.com/HeyPuter/puter/pull/1974 * doc: add README.md for GUI directory by @SuryaGanesh284 in https://github.com/HeyPuter/puter/pull/2021 * Revert "doc: add README.md for GUI directory" by @jelveh in https://github.com/HeyPuter/puter/pull/2253 * chore(deps): bump qs and express by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/2256 * feat: new kvstore operatios for more granular updates :rocket: by @Salazareo in https://github.com/HeyPuter/puter/pull/2254 * Thumbnail parameter by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2257 * chore(backend): upgrade nodemailer by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2259 * feat: kv.remove feature to remove nested elements or list indices by @Salazareo in https://github.com/HeyPuter/puter/pull/2258 * fix: husky too strict, allow failed eslint through for now by @Salazareo in https://github.com/HeyPuter/puter/pull/2260 * Model singularity by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2255 * feat: give referrals some credit too by @Salazareo in https://github.com/HeyPuter/puter/pull/2262 * fix(backend): race condition in hashing_stream by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2263 * Add automatic thumbnail generation to file uploads in GUI by @jelveh in https://github.com/HeyPuter/puter/pull/2261 * Add README for Puter localization and setup by @Talasudeepk in https://github.com/HeyPuter/puter/pull/2043 * provide safety_identifier in addition to user by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2268 * Make puter boot on windows by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2269 * Support getDeveloperProfile with no arguments by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2270 * chore(deps): bump qs and body-parser by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/2271 * Retry for openrouter on max_tokens overage by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2274 * no_extra_params in together service to prevent defaults from being sp… by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2275 * prevent signout from workers by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2276 * feat: more extension controller decorators by @Salazareo in https://github.com/HeyPuter/puter/pull/2272 * Improve UI for App Deployment Options in Dev Center by @rowin-C in https://github.com/HeyPuter/puter/pull/2266 * fix: shard app usages properly by user by @Salazareo in https://github.com/HeyPuter/puter/pull/2279 * Revise README.ro.md for updates and corrections by @sn-o-w in https://github.com/HeyPuter/puter/pull/2280 * fix: attempt coercion to fix vscode corruption by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2281 * Normalize file object in `/writeFile` by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2282 * Prevent `puter.fs.write` from failing on concurrent writes by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2287 * feat(gui): add keyboard shortcuts guide dialog by @RahulAswal01 in https://github.com/HeyPuter/puter/pull/2278 * Revert "feat(gui): add keyboard shortcuts guide dialog" by @jelveh in https://github.com/HeyPuter/puter/pull/2288 * Add GPT 5.2 Codex by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2293 * feat: paginated listing for kv items by @Salazareo in https://github.com/HeyPuter/puter/pull/2296 * OpenAI web_search support by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2299 * feat(puter.js): make home directory default cwd by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2302 * [PUT-301] feat: usage endpoints, allow appName by @Salazareo in https://github.com/HeyPuter/puter/pull/2303 * fix(puter.js): check for uuid before relative path by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2304 * gemini 2.5/3 no preview by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2306 * Fixes related to `apps` driver (replacement for `es:apps`) by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2308 * Data access simplifications (part 1: apps driver) by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2219 * perf: improve tel + decrease logs by @Salazareo in https://github.com/HeyPuter/puter/pull/2309 * [PUT-456] fix: delete apps from marketplace when deleting anywhere else by @Salazareo in https://github.com/HeyPuter/puter/pull/2310 * feat(data-access): move puter.js read to app driver by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2312 * Revert "feat(data-access): move puter.js read to app driver" by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2313 * fix: batch fetch get apps for launch apps and recommended apps by @Salazareo in https://github.com/HeyPuter/puter/pull/2315 * Migrate `puter.apps.read` from `app:es` to `app` (fixed) by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2316 * Revert "feat(data-access): move puter.js read to app driver" by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2318 * fix: add back test for launch apps by @Salazareo in https://github.com/HeyPuter/puter/pull/2317 * perf: dedup and cache get_apps in puter gui, also add more app batching in backend by @Salazareo in https://github.com/HeyPuter/puter/pull/2319 * add safety checks for worker updates by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2321 * fix: dedup get_apps app requests by @Salazareo in https://github.com/HeyPuter/puter/pull/2325 * fix: disable bad token checks? by @Salazareo in https://github.com/HeyPuter/puter/pull/2326 * Video model details by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2327 * fix gemini cost key by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2328 * fix: disable requests from server in two services by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2329 * perf: batch readdir suggested apps into single big query by @Salazareo in https://github.com/HeyPuter/puter/pull/2332 * fix: log format by @Salazareo in https://github.com/HeyPuter/puter/pull/2333 * Add info about usage data scope for docs by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2334 * perf: don't fetch b64 icon for apps always, and lru suggestedApps by @Salazareo in https://github.com/HeyPuter/puter/pull/2336 * fix: skip CI tests when only docs are changed (#2335) by @serilevanjalines in https://github.com/HeyPuter/puter/pull/2338 * fix: suggested apps breaking by @Salazareo in https://github.com/HeyPuter/puter/pull/2343 * Fix issues with URL fetch by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2345 * Move webdav to dav.puter.com by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2330 * Feat: Add system info (Client + Server metrics) by @llpingll in https://github.com/HeyPuter/puter/pull/2311 * fix: header resend issue by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2353 * fix: only rate limit login when failed by @Salazareo in https://github.com/HeyPuter/puter/pull/2355 * [PUT-466] fix: count request costs in openrouter models with request cost present by @Salazareo in https://github.com/HeyPuter/puter/pull/2356 * otel: add spans to all kv methods by @Salazareo in https://github.com/HeyPuter/puter/pull/2358 * docs: add example for streaming with function calling by @AryaXDG in https://github.com/HeyPuter/puter/pull/2365 * fix: app-under-user access token ACL by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2367 * fix: remove rate limit await on writes by @Salazareo in https://github.com/HeyPuter/puter/pull/2368 * [PUT-475] fix togetherai chat being broken + deprioritize them 🐛 by @Salazareo in https://github.com/HeyPuter/puter/pull/2369 * fix: cost mapping for together ai from openai sdk by @Salazareo in https://github.com/HeyPuter/puter/pull/2371 * fix: map again by @Salazareo in https://github.com/HeyPuter/puter/pull/2372 * fix(resume-analyzer): add preprocessing for DOCX and TXT files by @Devansh-18 in https://github.com/HeyPuter/puter/pull/2359 * fix: match override properly by @Salazareo in https://github.com/HeyPuter/puter/pull/2373 * Add canonical puterId to image provider models by @velzie in https://github.com/HeyPuter/puter/pull/2322 * cleanup: remove informationService in favour of existing helper methods and logic by @Salazareo in https://github.com/HeyPuter/puter/pull/2374 * puter x-expected-entity-length for site by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2379 * video model costs by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2383 * [PUT-487] fix: set max-min on app-user-count queries :bug: by @Salazareo in https://github.com/HeyPuter/puter/pull/2384 * fix: expose getUserService in extension typings by @Salazareo in https://github.com/HeyPuter/puter/pull/2385 * getAuthToken on node package by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2388 * fix typo gemini service by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2389 * OpenAI chat interface API concept by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2390 * Fix tests for ChatAPIService and add Anthropic tool call coersions by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2391 * More Anthropic tool calling coercions by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2392 * fix: ai metering by @Salazareo in https://github.com/HeyPuter/puter/pull/2393 * Add back worker redeploy notification by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2394 * Add more coersions to responses toolcalling support by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2395 * Add X-EXPECTED-ENTITY-LENGTH for HTTP/2 connections on webdav for predictive file length by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2396 * WebDAV post migration fixes by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2398 * fix: alerting for metering by @Salazareo in https://github.com/HeyPuter/puter/pull/2399 * fix: range headers in file.js by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2400 * feat: replace serializible caches with redis instead of kvjs :rocket: by @Salazareo in https://github.com/HeyPuter/puter/pull/2381 * fix: missing redis changes by @Salazareo in https://github.com/HeyPuter/puter/pull/2401 * Revert "feat: replace serializible caches with redis instead of kvjs 🚀 by @Salazareo in https://github.com/HeyPuter/puter/pull/2402 * Reapply: reverted redis migration changes by @Salazareo in https://github.com/HeyPuter/puter/pull/2403 * Ability to revoke access tokens by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2404 * dav.puter.com CORS headers by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2406 * fix: limit open router expensive models for now by @Salazareo in https://github.com/HeyPuter/puter/pull/2407 * dev(backend): add broadcast webhook endpoint by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2380 * fix: redis cache for user by @Salazareo in https://github.com/HeyPuter/puter/pull/2409 * Separate subdomains from readir by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2346 * feat: add alerting for usage abuse by @Salazareo in https://github.com/HeyPuter/puter/pull/2413 * web-cdn-test by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2414 * Ns/opus 4.6 by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2420 * opus 4.6 fix billing by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2422 * Document getAuthToken for web based login by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2418 * fix: usage limited error handling by @Salazareo in https://github.com/HeyPuter/puter/pull/2423 * fix: don't use ai aggregators if we have the model ourselves by @Salazareo in https://github.com/HeyPuter/puter/pull/2424 * Update puter-js readme for getAuthToken by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2417 * fix: auto-collapse playground menu on mobile (#2430) by @sanjeevafk in https://github.com/HeyPuter/puter/pull/2431 * chat_completions tool call fixes by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2434 * Restrict apps from using /puterai/openai/v1 by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2435 * fix: ensure cache invalidation when verifying OTP by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2437 * Increase opus 4.6 max tokens by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2439 * Ns/service guard by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2440 * ai email verification by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2441 * email confirmation error api error update by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2442 * fix: gemini via openrouter models by @Salazareo in https://github.com/HeyPuter/puter/pull/2438 * Update french translations by @Zac0511 in https://github.com/HeyPuter/puter/pull/2445 * chore: fix eslint issues by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2436 * added install.md by @stuffbymax in https://github.com/HeyPuter/puter/pull/2405 * fix: dev center emails by @Salazareo in https://github.com/HeyPuter/puter/pull/2447 * Add shell reload instructions for nvm setup by @stuffbymax in https://github.com/HeyPuter/puter/pull/2446 * fix: axiosRequest log dumping b64 urls by @Salazareo in https://github.com/HeyPuter/puter/pull/2448 * fix: decrease log usage by @Salazareo in https://github.com/HeyPuter/puter/pull/2449 * Fix gemini 3 pro image model name by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2450 * fix: add explicit handling for access token in ACL by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2451 * add configurable backend by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2452 * Fix auth type typo by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2454 * [PUT-471] feat: estimate and bill input for gemini imgaes :dev: by @Salazareo in https://github.com/HeyPuter/puter/pull/2453 * allow empty message by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2455 * fix: decrease large error log from wrong model by @Salazareo in https://github.com/HeyPuter/puter/pull/2456 * Revert "allow empty message" by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2457 * fix tool call blank content by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2458 * Ns/web dav range fixes by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2459 * feat: app icons in subdomain by @Salazareo in https://github.com/HeyPuter/puter/pull/2461 * Worker badge and info by @miikakuisma in https://github.com/HeyPuter/puter/pull/2462 * feat: remove file cache service by @Salazareo in https://github.com/HeyPuter/puter/pull/2464 * add extra model details, update grok models by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2465 * fix: metering alerts for missing costs by @Salazareo in https://github.com/HeyPuter/puter/pull/2466 * Add cache tokens for grok 3 mini fast by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2469 * fix: false alarm from openrouter by @Salazareo in https://github.com/HeyPuter/puter/pull/2470 * cleanup: remove thumbnail service for client side thumbnails by @Salazareo in https://github.com/HeyPuter/puter/pull/2468 * feat(start-menu): add "Add to Desktop" option for all apps by @Hetsavani in https://github.com/HeyPuter/puter/pull/2386 * dedup image models by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2475 * Ns/workers in stat attempt 2 by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2476 * fix: app icons saving by @Salazareo in https://github.com/HeyPuter/puter/pull/2477 * fix: app icon again by @Salazareo in https://github.com/HeyPuter/puter/pull/2478 * fix: app-icons protocol by @Salazareo in https://github.com/HeyPuter/puter/pull/2480 * feat: subdomain error redirect by @Salazareo in https://github.com/HeyPuter/puter/pull/2483 * add sandboxing by default in god mode created workers by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2481 * fix: do not await for puter icon write in db by @Salazareo in https://github.com/HeyPuter/puter/pull/2485 * fix: don't stream back bytes for icons by @Salazareo in https://github.com/HeyPuter/puter/pull/2486 * Bundle docs CDN assets locally for full offline support by @iamJ3 in https://github.com/HeyPuter/puter/pull/2473 * Add workers AI image model support by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2489 * add more aliases for cloudflare image provider by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2491 * fix stat options when stat(path, options) by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2492 * workers ai realias - to dot by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2493 * patch(puterfs): limit directory depth to 35 by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2494 * perf: improve app open time by @Salazareo in https://github.com/HeyPuter/puter/pull/2490 * fix: app icon origin by @Salazareo in https://github.com/HeyPuter/puter/pull/2500 * fix: allow b64 srings without mime type for app icons by @Salazareo in https://github.com/HeyPuter/puter/pull/2502 * add extra permission check for granted apps by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2503 * WebDAV don't fetch subdomains by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2504 * also don't fetch thumbs or associated apps by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2505 * Files tab for dashboard view by @miikakuisma in https://github.com/HeyPuter/puter/pull/2331 * feat: sonnet-4.6 support by @Salazareo in https://github.com/HeyPuter/puter/pull/2506 * Add permission requests for directories of subdomains associated with apps owned by the user by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2507 * Dashboard: Files tab fixes by @miikakuisma in https://github.com/HeyPuter/puter/pull/2508 * make image models case insensitive for backwards compatibility reasons by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2512 * feat: cleanup cache invalidation and pull out keys to be easily used in other places that need the same cache by @Salazareo in https://github.com/HeyPuter/puter/pull/2515 * fix: redis cache deletions by @Salazareo in https://github.com/HeyPuter/puter/pull/2518 * Login/Signup with OIDC by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2460 * Dashboard dark mode fixes by @miikakuisma in https://github.com/HeyPuter/puter/pull/2516 * fix: don't await for cache writes by @Salazareo in https://github.com/HeyPuter/puter/pull/2519 * lint: fix eslint indentation for switch cases by @Salazareo in https://github.com/HeyPuter/puter/pull/2520 * perf: batching get_apps cache look ups by @Salazareo in https://github.com/HeyPuter/puter/pull/2521 * fix: don't call stat on each file in dir by @Salazareo in https://github.com/HeyPuter/puter/pull/2522 * fix: wrong icon for workers by @Salazareo in https://github.com/HeyPuter/puter/pull/2524 * fix: cleanup some app es and app service validation by @Salazareo in https://github.com/HeyPuter/puter/pull/2523 * Clarify expiration time unit in getReadURL.md by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2525 * fix: bad copy with reference in UIItem by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2526 * implement keyboard shortcuts guide UI (#2037) by @samarthmishra46 in https://github.com/HeyPuter/puter/pull/2484 * fix nano banana pro pricing and resolutions by @P3il4 in https://github.com/HeyPuter/puter/pull/2501 * fix: stricter invalidation for 2fa and confirm email codes by @Salazareo in https://github.com/HeyPuter/puter/pull/2528 * fix: default timeout on user caches of 15 min by @Salazareo in https://github.com/HeyPuter/puter/pull/2530 * dev(oidc): redirect to login/signup on error by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2531 * WIP: use cors proxy for outbound requests by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2533 * cache: extend cache invalidation to emit events out too by @Salazareo in https://github.com/HeyPuter/puter/pull/2532 * dont forward data urls through cors proxy and fix core.validation by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2537 * fix desktop gui error handling for workers by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2538 * Fix OIDC in popups by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2539 * cleanup: remove debugger calls in our code by @Salazareo in https://github.com/HeyPuter/puter/pull/2535 * fix: make invalidations more robust by @Salazareo in https://github.com/HeyPuter/puter/pull/2529 * fix(backend): invalidate app permission debounce by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2541 * fix: remove broadcast for cache updates by @Salazareo in https://github.com/HeyPuter/puter/pull/2542 * fix: app icons via subdomain on localhost by @Salazareo in https://github.com/HeyPuter/puter/pull/2544 * fix(gui): defer login event until listener registered by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2547 * feat: add is_private to apps by @Salazareo in https://github.com/HeyPuter/puter/pull/2546 * feat: type extension cache update events by @Salazareo in https://github.com/HeyPuter/puter/pull/2548 * fix: don't await cache invalidation for grant app permission by @Salazareo in https://github.com/HeyPuter/puter/pull/2551 * perf: delete keys in parallel from redis by @Salazareo in https://github.com/HeyPuter/puter/pull/2552 * feat: add private app asset token auth helpers by @Salazareo in https://github.com/HeyPuter/puter/pull/2555 * feat: add private app access extension event contract by @Salazareo in https://github.com/HeyPuter/puter/pull/2556 * perf:remove recents cache by @Salazareo in https://github.com/HeyPuter/puter/pull/2558 * feat: enforce private app hosting access gate by @Salazareo in https://github.com/HeyPuter/puter/pull/2557 * Add nano banana 2 by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2562 * fix: corrected service reference by @4nshuman in https://github.com/HeyPuter/puter/pull/2559 * fix(backend): default rate-limit scope instead of error by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2564 * feat: add private access rollout gate and auditing by @Salazareo in https://github.com/HeyPuter/puter/pull/2560 * dev(oidc): switch login/signup flows where applicable by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2550 * [OIDC] allow user deletion for accounts without a password by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2567 * chore: switch private hosting domain to puter.dev by @Salazareo in https://github.com/HeyPuter/puter/pull/2565 * feat: add private app direct-login bootstrap page by @Salazareo in https://github.com/HeyPuter/puter/pull/2566 * fix: hardcode default perm by @Salazareo in https://github.com/HeyPuter/puter/pull/2570 * fix: redis startup by @Salazareo in https://github.com/HeyPuter/puter/pull/2571 * fix(oidc): bring "Add Existing User" to working state by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2572 * Permission Request Modal Update by @miikakuisma in https://github.com/HeyPuter/puter/pull/2499 * Fix: When a maximized window gets resized, Puter apps should be resized as well by @miikakuisma in https://github.com/HeyPuter/puter/pull/2498 * fix(auth): add explicit check for access token suspension by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2576 * fix(ai): additional auth guard by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2577 * Eric/26323 revert 26322 by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2578 * Revert "fix(auth): add explicit check for access token suspension (#2… by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2579 * Revert "fix(ai): additional auth guard (#2577)" by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2580 * Reapply "fix(auth): add explicit check for access token suspension (#… by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2581 * fix(ai): additional auth guard (corrected 676b6c3) by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2582 * feat: resolve private app hosts by index_url fallback by @Salazareo in https://github.com/HeyPuter/puter/pull/2583 * fix: private app config to use app urls by @Salazareo in https://github.com/HeyPuter/puter/pull/2586 * fix(oidc): login flow with `puter.ui.authenticateWithPuter` by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2588 * feat: private app config to use app urls + app routing by @Salazareo in https://github.com/HeyPuter/puter/pull/2587 * docs : udpdate current year #2584 by @Babali42 in https://github.com/HeyPuter/puter/pull/2585 * fix: remove redis cache scan in favour of direct key invalidation by @Salazareo in https://github.com/HeyPuter/puter/pull/2589 * dev(oidc): hide unnecessary div by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2592 * feat: add subdomain to private asset tokens by @Salazareo in https://github.com/HeyPuter/puter/pull/2591 * fix: reset subdomain if empty by @Salazareo in https://github.com/HeyPuter/puter/pull/2593 * fix: puter app middleware host in token by @Salazareo in https://github.com/HeyPuter/puter/pull/2594 * fix: bad token generation for private apps by @Salazareo in https://github.com/HeyPuter/puter/pull/2596 * fix: origin canonization by @Salazareo in https://github.com/HeyPuter/puter/pull/2597 * fix(oidc): request object reference in oidc signup by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2598 * fix: prioritize new token thant anything outdated stored in localstorage for private apps by @Salazareo in https://github.com/HeyPuter/puter/pull/2600 * dev(apps): add configuration to not use app icon subdomain by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2603 * fix: add logs to debug on prod by @Salazareo in https://github.com/HeyPuter/puter/pull/2604 * feat: more robust error logs by @Salazareo in https://github.com/HeyPuter/puter/pull/2605 * fix: fetching user from session token by @Salazareo in https://github.com/HeyPuter/puter/pull/2607 * Make credentialless false by default by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2608 * feat: redirect away cookie for private apps by @Salazareo in https://github.com/HeyPuter/puter/pull/2609 * clean: remove a log by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2610 * Fix border colors in Settings panel by @miikakuisma in https://github.com/HeyPuter/puter/pull/2595 * chore: typeFixes by @Salazareo in https://github.com/HeyPuter/puter/pull/2615 * add gpt 5.3 codex and gpt 5.4 by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2618 * fix(puterfs): await queue items for fsentry action by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2616 * clean(apps): merge fns only called by get_app_icon_url by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2617 * use openrouter provided USD cost when present by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2619 * fix gemini image provider implementation by @P3il4 in https://github.com/HeyPuter/puter/pull/2569 * Add Networking examples to docs index page by @theluckystrike in https://github.com/HeyPuter/puter/pull/2613 * Update Hosting API description #2612 by @eshwar-artyz in https://github.com/HeyPuter/puter/pull/2620 * fix: private app token by @Salazareo in https://github.com/HeyPuter/puter/pull/2623 * feat: phase 1 canonical app origin resolution by @Salazareo in https://github.com/HeyPuter/puter/pull/2624 * Ns/configurable gui bundle by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2629 * perf(core): LRU cache PuterHomepageService by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2627 * revert puterjs gui ordering by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2631 * Fix missing password entry by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2632 * devex(core): avoid email verification on dev by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2634 * add support for building with custom icons by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2635 * s/icons/assets/ for building GUI by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2636 * s/mv/cp/ for gui buildstep by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2637 * fix assets_url bug in GUI buildstep by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2638 * feat: limit concurrent request for ai chat by @Salazareo in https://github.com/HeyPuter/puter/pull/2640 * feat: phase 2 enforce index url ownership and uniqueness by @Salazareo in https://github.com/HeyPuter/puter/pull/2625 * perf(core): very simplistic minifier for homepage by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2630 * Revert "perf(core): very simplistic minifier for homepage (#2630)" by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2641 * fix(core): handling of refer code storage add by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2642 * feat: checkName api for puter apps by @Salazareo in https://github.com/HeyPuter/puter/pull/2643 * dev(fs): add move command to batch executor by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2646 * dev: get system user from SUService in AppIconService by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2601 * dev(extension): [+] test-actions by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2575 * fix: keep bootstrap in url for app to do whatever by @Salazareo in https://github.com/HeyPuter/puter/pull/2648 * feat: phase 3 public hosted actor cookie bootstrap by @Salazareo in https://github.com/HeyPuter/puter/pull/2626 * dev(fs): fetch subdomains using join in readdir by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2647 * fix(fs) optimize `stat` operation. by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2649 * feat: scope index_url uniqueness to hosted domains by @Salazareo in https://github.com/HeyPuter/puter/pull/2644 * Ns/worker global public fetch by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2652 * feat(puter-js): add Batch builder class by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2651 * fix: app merging by @Salazareo in https://github.com/HeyPuter/puter/pull/2654 * mute puterjs error by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2657 * fix: tests oom breaking by @Salazareo in https://github.com/HeyPuter/puter/pull/2661 * fix(security): shell escape paths in HostDiskUsageService; null-prototype objects in batch parser by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2659 * Use ClickHouse for app open stats by @jelveh in https://github.com/HeyPuter/puter/pull/2662 * fix coercion service not selecting correct rule by @P3il4 in https://github.com/HeyPuter/puter/pull/2660 * fix flash image quality level by @P3il4 in https://github.com/HeyPuter/puter/pull/2665 * Interpret mpga as mp3 for OpenAI transcriptions by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2666 * chore: update package-lock.json by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2667 * add x-puter-no-auth option to puter.workers.exec by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2668 * fix: limit referralCodeService by @Salazareo in https://github.com/HeyPuter/puter/pull/2670 * feat: add hook on merge for deployments by @Salazareo in https://github.com/HeyPuter/puter/pull/2673 * darkmode fix by @miikakuisma in https://github.com/HeyPuter/puter/pull/2675 * add reasoning to claude models by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2676 * Manual package updates, `npm audit --force`, etc by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2669 * fix: add console log to webhook for debugging by @Salazareo in https://github.com/HeyPuter/puter/pull/2677 * fix: log webhook message to peer for now by @Salazareo in https://github.com/HeyPuter/puter/pull/2678 * feat: notify prod by @Salazareo in https://github.com/HeyPuter/puter/pull/2679 * fix: change_email and user-protected endpoints by @KernelDeimos in https://github.com/HeyPuter/puter/pull/2680 * feat: redis pubsub for multiple connected clients in broadcast service and webhook fixes by @Salazareo in https://github.com/HeyPuter/puter/pull/2681 * feat: add puter.peer to sdk, create PeerService in backend by @velzie in https://github.com/HeyPuter/puter/pull/2664 * change capitalization of inviteCode by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2683 * change turn customIdentifier seperator by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2684 * Change turn customIdentifier fully by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2685 * fix: websocket credentials by @Salazareo in https://github.com/HeyPuter/puter/pull/2687 * turn metering support by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2689 * fix: tighten cors logic for socket io by @Salazareo in https://github.com/HeyPuter/puter/pull/2688 * Revert "fix: tighten cors logic for socket io" by @Salazareo in https://github.com/HeyPuter/puter/pull/2694 * fix: broadcast pubsub + cleanup old code by @Salazareo in https://github.com/HeyPuter/puter/pull/2695 * fix: socket io sockets by @Salazareo in https://github.com/HeyPuter/puter/pull/2696 * chore: decrease uneeded logging by @Salazareo in https://github.com/HeyPuter/puter/pull/2697 * fix(gui): account for iOS safe area inset on taskbar/dock in https://github.com/HeyPuter/puter/pull/2682 * Peer docs by @jelveh in https://github.com/HeyPuter/puter/pull/2699 * fix: ws double messages by @Salazareo in https://github.com/HeyPuter/puter/pull/2700 * Fix double slash in canonical URL #2672 by @nandinikashyap1902 in https://github.com/HeyPuter/puter/pull/2690 * docs: fix 404 in CreateAppResult documentation due to case sensitivity by @huseynovvusal in https://github.com/HeyPuter/puter/pull/2702 * docs: add ai-voice-changer playground example by @Dailin521 in https://github.com/HeyPuter/puter/pull/2708 * chore: remove dead code and docs by @Salazareo in https://github.com/HeyPuter/puter/pull/2705 * fix: issue with tokens not being received by puter app by @Salazareo in https://github.com/HeyPuter/puter/pull/2713 * refactor ai video gen by @P3il4 in https://github.com/HeyPuter/puter/pull/2711 * feat: Add Anthropic Messages API compatibility layer by @iamsrishanth in https://github.com/HeyPuter/puter/pull/2704 * WIP openai responses support by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2715 * feat: root level kv accesses, and installed app listing + server health check fix by @Salazareo in https://github.com/HeyPuter/puter/pull/2719 * fix: bad esm issue by @Salazareo in https://github.com/HeyPuter/puter/pull/2720 * fix: letter case issue by @Salazareo in https://github.com/HeyPuter/puter/pull/2721 * fix: init installed apps controller by @Salazareo in https://github.com/HeyPuter/puter/pull/2722 * fix: extension type import by @Salazareo in https://github.com/HeyPuter/puter/pull/2723 * fix: installed apps api by @Salazareo in https://github.com/HeyPuter/puter/pull/2725 * fix: healtcheck improvements by @Salazareo in https://github.com/HeyPuter/puter/pull/2726 * fix: remove flaky event loop check by @Salazareo in https://github.com/HeyPuter/puter/pull/2727 * fix case sensitive together video model ids by @P3il4 in https://github.com/HeyPuter/puter/pull/2728 * fix: remove last opened by @Salazareo in https://github.com/HeyPuter/puter/pull/2729 * fix: syntax issue with sql by @Salazareo in https://github.com/HeyPuter/puter/pull/2730 * fix: return fallback icons if no icon present for installed apps by @Salazareo in https://github.com/HeyPuter/puter/pull/2731 * Small tweaks to puter.peer by @velzie in https://github.com/HeyPuter/puter/pull/2734 * Add claude cache control docs by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2737 * fix: handle closing server nicer on shutdown signal by @Salazareo in https://github.com/HeyPuter/puter/pull/2741 * fix: health checks by @Salazareo in https://github.com/HeyPuter/puter/pull/2743 * Display logged-in banner on homepage by @jelveh in https://github.com/HeyPuter/puter/pull/2742 * fix: incrememnt ddb sharding to 10k by @Salazareo in https://github.com/HeyPuter/puter/pull/2744 * fix: remove recommended app caching in favour of stronger caching at app fetch layer by @Salazareo in https://github.com/HeyPuter/puter/pull/2748 * docs: update code examples from gpt-5-nano to gpt-5.4-nano by @LeC-D in https://github.com/HeyPuter/puter/pull/2738 * Fix prompt caching example broken character by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2750 * support video inputs in .chat by @P3il4 in https://github.com/HeyPuter/puter/pull/2740 * Getting rid of Endpoint by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2732 * Add context field to OpenRouter, MistralAI, and OpenAI models by @costajohnt in https://github.com/HeyPuter/puter/pull/2653 * feat: signed upload urls by @Salazareo in https://github.com/HeyPuter/puter/pull/2753 * feat: thumbnail event for gui by @Salazareo in https://github.com/HeyPuter/puter/pull/2754 * docs(kv): add sorting section with examples to list() API reference by @RaffyLeong in https://github.com/HeyPuter/puter/pull/2739 * Update prompt caching example by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2758 * feat: s3 fs in oss by @Salazareo in https://github.com/HeyPuter/puter/pull/2761 * fix: no shutdown outside of puter servers by @Salazareo in https://github.com/HeyPuter/puter/pull/2762 * add google video native provider, imagen models by @P3il4 in https://github.com/HeyPuter/puter/pull/2759 * Add kv.list() pagination playground example by @tmchow in https://github.com/HeyPuter/puter/pull/2760 * feat: enable singed uploads on oss and fix broken migration by @Salazareo in https://github.com/HeyPuter/puter/pull/2765 * fix: app id shortcut when creating apps by @Salazareo in https://github.com/HeyPuter/puter/pull/2768 * Ns/simplify 1 by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2764 * fix: missing subdomains and worker flags in readdir by @Salazareo in https://github.com/HeyPuter/puter/pull/2772 * Fix openrouter enumeration by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2780 * chore: delete remaining "command" service by @Salazareo in https://github.com/HeyPuter/puter/pull/2781 * fix: delete command service files? by @Salazareo in https://github.com/HeyPuter/puter/pull/2782 * derive aliases from puterid for video models by @P3il4 in https://github.com/HeyPuter/puter/pull/2777 * fix: add showSpinner() and hideSpinner() to docs sidebar by @subhp03 in https://github.com/HeyPuter/puter/pull/2779 * Close #2718 : added querying with prefix patterns example and documentation by @hemant838 in https://github.com/HeyPuter/puter/pull/2778 * better error reports for chat fallbacks by @P3il4 in https://github.com/HeyPuter/puter/pull/2783 * fix: dynamodb health checks and client recreation by @Salazareo in https://github.com/HeyPuter/puter/pull/2789 * Minor fix docs and update puter resource unit by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2792 * fix: redis max retries and fail fast timeouts by @Salazareo in https://github.com/HeyPuter/puter/pull/2793 * cleanup: batcher to batch more appropriately by @Salazareo in https://github.com/HeyPuter/puter/pull/2794 * fix veo video with proxy link by @P3il4 in https://github.com/HeyPuter/puter/pull/2799 * fix: app canonization for puter.com apps by @Salazareo in https://github.com/HeyPuter/puter/pull/2800 * fix: origin app Ids by @Salazareo in https://github.com/HeyPuter/puter/pull/2801 * add gemini image models in .chat by @P3il4 in https://github.com/HeyPuter/puter/pull/2771 * Ns/simplify 2 by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2790 * Add WSL support for signed uploads by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2809 * add replicate image provider by @P3il4 in https://github.com/HeyPuter/puter/pull/2806 * remove glitched submodule by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2810 * Dashboard Update by @miikakuisma in https://github.com/HeyPuter/puter/pull/2788 * add opus 4.7, adjust thinking by @P3il4 in https://github.com/HeyPuter/puter/pull/2813 * fix: close start menu popover on repeated click by @tmchow in https://github.com/HeyPuter/puter/pull/2784 * fix: update knowledge date for Claude Opus 4.7 model by @subhp03 in https://github.com/HeyPuter/puter/pull/2816 * adjust and refactor together models costs by @P3il4 in https://github.com/HeyPuter/puter/pull/2811 * fix: cdn cache invalidation by @Salazareo in https://github.com/HeyPuter/puter/pull/2826 * add gpt image 2 by @P3il4 in https://github.com/HeyPuter/puter/pull/2829 * shrink redis failure by @Salazareo in https://github.com/HeyPuter/puter/pull/2831 * fix: anticsrf to store tokens in redis by @Salazareo in https://github.com/HeyPuter/puter/pull/2834 * Revert "fix: anticsrf to store tokens in redis (#2834)" by @Salazareo in https://github.com/HeyPuter/puter/pull/2835 * fix: AIChatService.ts by @Salazareo in https://github.com/HeyPuter/puter/pull/2836 * add gpt 5.5 by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2841 * add gpt 5.5-pro by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2843 * GUI cleanup by @jelveh in https://github.com/HeyPuter/puter/pull/2842 * Improve validation error messages for better UX by @shubthenub in https://github.com/HeyPuter/puter/pull/2833 * Puter JS - Web Components for UI API by @miikakuisma in https://github.com/HeyPuter/puter/pull/2808 * Update docs setMenubar by @reynaldichernando in https://github.com/HeyPuter/puter/pull/2845 * Fixing issues with mobile contextMenu by @miikakuisma in https://github.com/HeyPuter/puter/pull/2848 * Remove file sharing UI and related code by @jelveh in https://github.com/HeyPuter/puter/pull/2817 * fix: oidc errors by @Salazareo in https://github.com/HeyPuter/puter/pull/2852 * fix: oidc errors again by @Salazareo in https://github.com/HeyPuter/puter/pull/2853 * rework: change backend and backend extensions to use simpler code structure and patterns by @Salazareo in https://github.com/HeyPuter/puter/pull/2815 * fix: bad ai endpoint by @Salazareo in https://github.com/HeyPuter/puter/pull/2856 * fix: ai driver errors by @Salazareo in https://github.com/HeyPuter/puter/pull/2857 * fix: no default gemini image quality by @Salazareo in https://github.com/HeyPuter/puter/pull/2858 * fix: harden some gemini image errors by @Salazareo in https://github.com/HeyPuter/puter/pull/2859 * fix: fail unauthed sessions nicely by @Salazareo in https://github.com/HeyPuter/puter/pull/2860 * backport devwatcher by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2861 * fix: auth checks by @Salazareo in https://github.com/HeyPuter/puter/pull/2862 * fix: signup event by @Salazareo in https://github.com/HeyPuter/puter/pull/2863 * fix: more clean ip for signup validation by @Salazareo in https://github.com/HeyPuter/puter/pull/2864 * fix: sync ips for validation by @Salazareo in https://github.com/HeyPuter/puter/pull/2865 * fix: oidc and chat validation events by @Salazareo in https://github.com/HeyPuter/puter/pull/2866 * fix: send right error codes by @Salazareo in https://github.com/HeyPuter/puter/pull/2867 * fix: dbConfigs and ai routes by @Salazareo in https://github.com/HeyPuter/puter/pull/2868 * puter models list fix by @Salazareo in https://github.com/HeyPuter/puter/pull/2869 * fix: app autocreation by @Salazareo in https://github.com/HeyPuter/puter/pull/2872 * Add z.ai chat completions by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/2874 * Remove gross 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 ## New Contributors * @brauliopf made their first contribution in https://github.com/HeyPuter/puter/pull/1155 * @ntwari-bruce made their first contribution in https://github.com/HeyPuter/puter/pull/1156 * @acordero4852 made their first contribution in https://github.com/HeyPuter/puter/pull/1161 * @sashpawar11 made their first contribution in https://github.com/HeyPuter/puter/pull/1170 * @Gautam7352 made their first contribution in https://github.com/HeyPuter/puter/pull/1168 * @purohitamann made their first contribution in https://github.com/HeyPuter/puter/pull/1175 * @tanveer-brar made their first contribution in https://github.com/HeyPuter/puter/pull/1177 * @arunabhcode made their first contribution in https://github.com/HeyPuter/puter/pull/1184 * @Awnder made their first contribution in https://github.com/HeyPuter/puter/pull/1182 * @ajaykrishnaswamy made their first contribution in https://github.com/HeyPuter/puter/pull/1164 * @Hetsavani made their first contribution in https://github.com/HeyPuter/puter/pull/1191 * @FCzajkowski made their first contribution in https://github.com/HeyPuter/puter/pull/1193 * @anuja12mishra made their first contribution in https://github.com/HeyPuter/puter/pull/1195 * @kira-offgrid made their first contribution in https://github.com/HeyPuter/puter/pull/1200 * @hisham-maarraoui made their first contribution in https://github.com/HeyPuter/puter/pull/1190 * @gautamkapoor1709 made their first contribution in https://github.com/HeyPuter/puter/pull/1204 * @kristavlastou made their first contribution in https://github.com/HeyPuter/puter/pull/1214 * @Jomaguy made their first contribution in https://github.com/HeyPuter/puter/pull/1174 * @EvaNtziou made their first contribution in https://github.com/HeyPuter/puter/pull/1246 * @shushannap made their first contribution in https://github.com/HeyPuter/puter/pull/1169 * @Niveditarani made their first contribution in https://github.com/HeyPuter/puter/pull/1250 * @TanCodeX made their first contribution in https://github.com/HeyPuter/puter/pull/1281 * @krikera made their first contribution in https://github.com/HeyPuter/puter/pull/1295 * @atagtm made their first contribution in https://github.com/HeyPuter/puter/pull/1261 * @Rohanpawar9921 made their first contribution in https://github.com/HeyPuter/puter/pull/1311 * @bilalkhantanoli made their first contribution in https://github.com/HeyPuter/puter/pull/1314 * @rodrick-mpofu made their first contribution in https://github.com/HeyPuter/puter/pull/1219 * @Krisss46 made their first contribution in https://github.com/HeyPuter/puter/pull/1319 * @IgorJFS made their first contribution in https://github.com/HeyPuter/puter/pull/1363 * @JoshJoseph1234 made their first contribution in https://github.com/HeyPuter/puter/pull/1350 * @GitHubliuzhijie made their first contribution in https://github.com/HeyPuter/puter/pull/1365 * @Yasir-Rafique made their first contribution in https://github.com/HeyPuter/puter/pull/1347 * @GlennDmello17 made their first contribution in https://github.com/HeyPuter/puter/pull/1381 * @emmanuel-ferdman made their first contribution in https://github.com/HeyPuter/puter/pull/1378 * @karan1205 made their first contribution in https://github.com/HeyPuter/puter/pull/1382 * @rohanrawat09 made their first contribution in https://github.com/HeyPuter/puter/pull/1402 * @Prathameshw4 made their first contribution in https://github.com/HeyPuter/puter/pull/1404 * @anderlli0053 made their first contribution in https://github.com/HeyPuter/puter/pull/1445 * @pranav200408 made their first contribution in https://github.com/HeyPuter/puter/pull/1443 * @Shahidpathan22 made their first contribution in https://github.com/HeyPuter/puter/pull/1447 * @onel made their first contribution in https://github.com/HeyPuter/puter/pull/1432 * @ParkourKarthik made their first contribution in https://github.com/HeyPuter/puter/pull/1460 * @Nikhil-Gautam-dev made their first contribution in https://github.com/HeyPuter/puter/pull/1463 * @DHANUSHRAJA22 made their first contribution in https://github.com/HeyPuter/puter/pull/1465 * @tarunsaini04 made their first contribution in https://github.com/HeyPuter/puter/pull/1478 * @bomberfish made their first contribution in https://github.com/HeyPuter/puter/pull/1477 * @rajanarahul93 made their first contribution in https://github.com/HeyPuter/puter/pull/1491 * @imrozkhan205 made their first contribution in https://github.com/HeyPuter/puter/pull/1438 * @Deepam02 made their first contribution in https://github.com/HeyPuter/puter/pull/1534 * @RicJDev made their first contribution in https://github.com/HeyPuter/puter/pull/1536 * @shadow-taw made their first contribution in https://github.com/HeyPuter/puter/pull/1538 * @Sabbir256 made their first contribution in https://github.com/HeyPuter/puter/pull/1537 * @sidshas03 made their first contribution in https://github.com/HeyPuter/puter/pull/1541 * @dependabot[bot] made their first contribution in https://github.com/HeyPuter/puter/pull/1547 * @AlfreThiago made their first contribution in https://github.com/HeyPuter/puter/pull/1554 * @Webb321 made their first contribution in https://github.com/HeyPuter/puter/pull/1559 * @tanso0126 made their first contribution in https://github.com/HeyPuter/puter/pull/1558 * @Aryan01b made their first contribution in https://github.com/HeyPuter/puter/pull/1557 * @RudareanuLeonard made their first contribution in https://github.com/HeyPuter/puter/pull/1565 * @union-galactic made their first contribution in https://github.com/HeyPuter/puter/pull/1566 * @TeetOBeard made their first contribution in https://github.com/HeyPuter/puter/pull/1568 * @dtakahashi333 made their first contribution in https://github.com/HeyPuter/puter/pull/1570 * @iamJ3 made their first contribution in https://github.com/HeyPuter/puter/pull/1572 * @meezumi made their first contribution in https://github.com/HeyPuter/puter/pull/1575 * @Amritpandey5 made their first contribution in https://github.com/HeyPuter/puter/pull/1577 * @kamilkulczyk made their first contribution in https://github.com/HeyPuter/puter/pull/1584 * @coluccifrancesco made their first contribution in https://github.com/HeyPuter/puter/pull/1588 * @SaifAttar003 made their first contribution in https://github.com/HeyPuter/puter/pull/1599 * @infienite made their first contribution in https://github.com/HeyPuter/puter/pull/1609 * @Azazel7Kuro made their first contribution in https://github.com/HeyPuter/puter/pull/1618 * @Onitsag made their first contribution in https://github.com/HeyPuter/puter/pull/1615 * @mrtbgau made their first contribution in https://github.com/HeyPuter/puter/pull/1614 * @Haitam6 made their first contribution in https://github.com/HeyPuter/puter/pull/1616 * @biranzegelman97 made their first contribution in https://github.com/HeyPuter/puter/pull/1634 * @skeith made their first contribution in https://github.com/HeyPuter/puter/pull/1638 * @hungdannt made their first contribution in https://github.com/HeyPuter/puter/pull/1641 * @gulizar-elhalil made their first contribution in https://github.com/HeyPuter/puter/pull/1677 * @Raj4478 made their first contribution in https://github.com/HeyPuter/puter/pull/1676 * @reynaldichernando made their first contribution in https://github.com/HeyPuter/puter/pull/1747 * @harsha08-2k6 made their first contribution in https://github.com/HeyPuter/puter/pull/1820 * @Savithru7142 made their first contribution in https://github.com/HeyPuter/puter/pull/1821 * @Arun24-8 made their first contribution in https://github.com/HeyPuter/puter/pull/1822 * @Gnanasaikiran made their first contribution in https://github.com/HeyPuter/puter/pull/1859 * @Aravind30648 made their first contribution in https://github.com/HeyPuter/puter/pull/1893 * @parth-117 made their first contribution in https://github.com/HeyPuter/puter/pull/1927 * @2400032286 made their first contribution in https://github.com/HeyPuter/puter/pull/1925 * @utkubakir made their first contribution in https://github.com/HeyPuter/puter/pull/1828 * @vipul264og made their first contribution in https://github.com/HeyPuter/puter/pull/1936 * @r58Playz made their first contribution in https://github.com/HeyPuter/puter/pull/1959 * @JohnBoulanger made their first contribution in https://github.com/HeyPuter/puter/pull/1989 * @eswarseeram made their first contribution in https://github.com/HeyPuter/puter/pull/2007 * @bangarumahesh22 made their first contribution in https://github.com/HeyPuter/puter/pull/2010 * @SuryaGanesh284 made their first contribution in https://github.com/HeyPuter/puter/pull/2013 * @krishna3324 made their first contribution in https://github.com/HeyPuter/puter/pull/2020 * @2400060033 made their first contribution in https://github.com/HeyPuter/puter/pull/2035 * @rajucreate made their first contribution in https://github.com/HeyPuter/puter/pull/2045 * @soumyabrata23130 made their first contribution in https://github.com/HeyPuter/puter/pull/2239 * @Omcodes23 made their first contribution in https://github.com/HeyPuter/puter/pull/2224 * @Talasudeepk made their first contribution in https://github.com/HeyPuter/puter/pull/2043 * @sn-o-w made their first contribution in https://github.com/HeyPuter/puter/pull/2280 * @RahulAswal01 made their first contribution in https://github.com/HeyPuter/puter/pull/2278 * @serilevanjalines made their first contribution in https://github.com/HeyPuter/puter/pull/2338 * @llpingll made their first contribution in https://github.com/HeyPuter/puter/pull/2311 * @AryaXDG made their first contribution in https://github.com/HeyPuter/puter/pull/2365 * @Devansh-18 made their first contribution in https://github.com/HeyPuter/puter/pull/2359 * @sanjeevafk made their first contribution in https://github.com/HeyPuter/puter/pull/2431 * @stuffbymax made their first contribution in https://github.com/HeyPuter/puter/pull/2405 * @miikakuisma made their first contribution in https://github.com/HeyPuter/puter/pull/2462 * @samarthmishra46 made their first contribution in https://github.com/HeyPuter/puter/pull/2484 * @P3il4 made their first contribution in https://github.com/HeyPuter/puter/pull/2501 * @Babali42 made their first contribution in https://github.com/HeyPuter/puter/pull/2585 * @theluckystrike made their first contribution in https://github.com/HeyPuter/puter/pull/2613 * @eshwar-artyz made their first contribution in https://github.com/HeyPuter/puter/pull/2620 * @nandinikashyap1902 made their first contribution in https://github.com/HeyPuter/puter/pull/2690 * @huseynovvusal made their first contribution in https://github.com/HeyPuter/puter/pull/2702 * @Dailin521 made their first contribution in https://github.com/HeyPuter/puter/pull/2708 * @iamsrishanth made their first contribution in https://github.com/HeyPuter/puter/pull/2704 * @LeC-D made their first contribution in https://github.com/HeyPuter/puter/pull/2738 * @costajohnt made their first contribution in https://github.com/HeyPuter/puter/pull/2653 * @RaffyLeong made their first contribution in https://github.com/HeyPuter/puter/pull/2739 * @tmchow made their first contribution in https://github.com/HeyPuter/puter/pull/2760 * @subhp03 made their first contribution in https://github.com/HeyPuter/puter/pull/2779 * @hemant838 made their first contribution in https://github.com/HeyPuter/puter/pull/2778 * @shubthenub made their first contribution in https://github.com/HeyPuter/puter/pull/2833 **Full Changelog**: https://github.com/HeyPuter/puter/compare/v2.5.1...v2.6.0
This changelog was generated by GitHub. We've also generated [our own changelog](https://github.com/HeyPuter/puter/blob/0cb1ca7989000ddd3b37c2bad344a26a38706e52/CHANGELOG.md) which might be easier to follow. ## What's Changed * networking API beginnings by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1085 * Add Feature Flags to Disable Temporary Users and User Signup by @Raiu in https://github.com/HeyPuter/puter/pull/1086 * add close to psocket by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1088 * TLS Support through rustls-wasm by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1090 * add 0x01 and 0x03 wisp messages by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1091 * move try-catch outside of loop in TLS readstream by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1092 * more socket fixes by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1094 * Complete the Norwegian Bokmål (Norsk Bokmål) translation of Puter by @AryanTavish in https://github.com/HeyPuter/puter/pull/1093 * Update fr.js by @Zac0511 in https://github.com/HeyPuter/puter/pull/1100 * Create TRADEMARK.md by @jelveh in https://github.com/HeyPuter/puter/pull/1037 * new API puter.net.generateWispV1URL() by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1104 * TLS Socket fix: only close TLS socket once by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1105 * PDE command provider by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1110 * Added Browser IDEs by @mojafa in https://github.com/HeyPuter/puter/pull/1109 * Revert "Added Browser IDEs" by @jelveh in https://github.com/HeyPuter/puter/pull/1111 * Added tab completion to PDEs by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/1113 ## New Contributors * @Raiu made their first contribution in https://github.com/HeyPuter/puter/pull/1086 * @AryanTavish made their first contribution in https://github.com/HeyPuter/puter/pull/1093 * @mojafa made their first contribution in https://github.com/HeyPuter/puter/pull/1109 **Full Changelog**: https://github.com/HeyPuter/puter/compare/v2.5.0...v2.5.1
This changelog was generated by GitHub. We've also generated [our own changelog](https://github.com/HeyPuter/puter/blob/0cb1ca7989000ddd3b37c2bad344a26a38706e52/CHANGELOG.md) which might be easier to follow. ## What's Changed * Create config.yml to add Puter Discord to the issue screen by @Zac0511 in https://github.com/HeyPuter/puter/pull/631 * Add issue template for meta suggestions by @secondtruth in https://github.com/HeyPuter/puter/pull/619 * Update README.md by @Zac0511 in https://github.com/HeyPuter/puter/pull/632 * Add badges by @Zac0511 in https://github.com/HeyPuter/puter/pull/633 * Traits, and Services as Drivers by @KernelDeimos in https://github.com/HeyPuter/puter/pull/607 * Add Indonesian Translation for i18n by @fauzipadlaw in https://github.com/HeyPuter/puter/pull/638 * Update Kurdish language template by @BryarGh in https://github.com/HeyPuter/puter/pull/640 * Eric/test drivers by @KernelDeimos in https://github.com/HeyPuter/puter/pull/647 * Update Dutch translations by @RandomStrangerOnTheInternet in https://github.com/HeyPuter/puter/pull/646 * Complete Korean translation #541 by @ljyamada in https://github.com/HeyPuter/puter/pull/648 * Updated Korean translation file by @de1eb in https://github.com/HeyPuter/puter/pull/650 * Hebrew translation by @Razy-F in https://github.com/HeyPuter/puter/pull/654 * `puterai` module by @KernelDeimos in https://github.com/HeyPuter/puter/pull/653 * broadcast message encryption by @KernelDeimos in https://github.com/HeyPuter/puter/pull/656 * Completed Translation of English To Portuguese(Portugal) by @NGunjyal01 in https://github.com/HeyPuter/puter/pull/657 * completed translation english to danish in da.js by @NGunjyal01 in https://github.com/HeyPuter/puter/pull/658 * completed translation english to swedish in sv.js by @JoelSjogren in https://github.com/HeyPuter/puter/pull/659 * Added Finnish translations related to issue #536 by @Ranegg in https://github.com/HeyPuter/puter/pull/661 * Add security email to contact section by @looz0 in https://github.com/HeyPuter/puter/pull/662 * Add Danish translation of README.en.md by @JesHansen in https://github.com/HeyPuter/puter/pull/679 * 672 Adding readme portuguese translation by @TatianaMagnus in https://github.com/HeyPuter/puter/pull/680 * added readme translation into Russian by @NFFY88 in https://github.com/HeyPuter/puter/pull/681 * fix broken links in readme by @NFFY88 in https://github.com/HeyPuter/puter/pull/683 * Add feature flags by @KernelDeimos in https://github.com/HeyPuter/puter/pull/686 * translate README.md to spanish by @juank0205 in https://github.com/HeyPuter/puter/pull/685 * chore: update SystemFSEntryService.js by @eltociear in https://github.com/HeyPuter/puter/pull/689 * added readme translation into hindi by @abhishekpaturkar in https://github.com/HeyPuter/puter/pull/690 * Translate README.md to japanese by @calreed-prof in https://github.com/HeyPuter/puter/pull/691 * Created Read.me in Turkish. by @emrhngngr in https://github.com/HeyPuter/puter/pull/695 * Create README in Korean by @jsdmas in https://github.com/HeyPuter/puter/pull/698 * Require verified email to enable 2FA by @KernelDeimos in https://github.com/HeyPuter/puter/pull/699 * Added Readme in Vietnamese by @Priyanshu1035 in https://github.com/HeyPuter/puter/pull/700 * add Chinese, add language tag by @Sam-SSTU in https://github.com/HeyPuter/puter/pull/702 * added readme file in Italian by @FabioDePalma in https://github.com/HeyPuter/puter/pull/703 * AI Streaming + Claude + puter.drivers by @KernelDeimos in https://github.com/HeyPuter/puter/pull/704 * Added README.bn.md by @Priyanshu1035 in https://github.com/HeyPuter/puter/pull/705 * feat(readme): add french readme respecting format and styling by @Morraycage in https://github.com/HeyPuter/puter/pull/707 * Add Tamil readme file by @yanniro2 in https://github.com/HeyPuter/puter/pull/706 * Add README.id.md by @fauzipadlaw in https://github.com/HeyPuter/puter/pull/708 * Add link to Indonesian in main readme by @fauzipadlaw in https://github.com/HeyPuter/puter/pull/709 * Added the README.ro.md file by @Atharva089 in https://github.com/HeyPuter/puter/pull/711 * Fixes issue #677: Translate README.md from English to Romanian by @catalin-lungu in https://github.com/HeyPuter/puter/pull/712 * Create README.th.md by @Panyakornk in https://github.com/HeyPuter/puter/pull/717 * Added README.ar.md by @yomalbalooshi in https://github.com/HeyPuter/puter/pull/718 * translated README.en.md from English to Polish by @VinayakPaka in https://github.com/HeyPuter/puter/pull/719 * Update README.md by @Zac0511 in https://github.com/HeyPuter/puter/pull/726 * Translated README section to Urdu with correct clickable links by @EngrAdnanAhmad in https://github.com/HeyPuter/puter/pull/727 * dev: launchApp as registered ipc handler by @KernelDeimos in https://github.com/HeyPuter/puter/pull/724 * chore: rename putil by @KernelDeimos in https://github.com/HeyPuter/puter/pull/729 * GUI bundle update by @KernelDeimos in https://github.com/HeyPuter/puter/pull/730 * translate README.md to finnish by @Pulkitxm in https://github.com/HeyPuter/puter/pull/740 * No need word repetition for gambar in Indonesian by @fauzipadlaw in https://github.com/HeyPuter/puter/pull/746 * Create README.he.md by @OrelsProjects in https://github.com/HeyPuter/puter/pull/747 * README.en.md translated to Farsi and added to project by @Sky-De in https://github.com/HeyPuter/puter/pull/748 * dev: update ipc ready and app launched events by @KernelDeimos in https://github.com/HeyPuter/puter/pull/749 * Create README.hy.md by @gng92 in https://github.com/HeyPuter/puter/pull/751 * Add Swedish Readme content by @Pulkitxm in https://github.com/HeyPuter/puter/pull/742 * Add Dutch Readme content by @Pulkitxm in https://github.com/HeyPuter/puter/pull/743 * translate README.md to Ukrainian by @Pulkitxm in https://github.com/HeyPuter/puter/pull/741 * Add Malayalam translation to README.md by @rinogodson in https://github.com/HeyPuter/puter/pull/753 * Ukrainian Translation added by @SergiyZyuzko in https://github.com/HeyPuter/puter/pull/757 * feat: hungarian readme translation by @gyarfasB in https://github.com/HeyPuter/puter/pull/760 * Update README.ko.md to fix phrasing issues by @the-heidi in https://github.com/HeyPuter/puter/pull/762 * Issue670/english to german by @bibekp-dev in https://github.com/HeyPuter/puter/pull/763 * Added Swedish translation | Other fixes by @4nshuman in https://github.com/HeyPuter/puter/pull/765 * feat: translate README.md to Dutch by @ruthwikchikoti in https://github.com/HeyPuter/puter/pull/770 * dev: update v86, switch twisp to epoxy-server with twisp feature by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/788 * v86 9p server by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/794 * change PWD to not use prompt-path and fix unicode issues by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/800 * switch ne2k_pci to virtio by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/801 * [WIP] Puter client-side filesystem caching by @KernelDeimos in https://github.com/HeyPuter/puter/pull/795 * added telugu language translation by @lohitkotni in https://github.com/HeyPuter/puter/pull/803 * Update the "bug report" issue template to an issue form by @Zac0511 in https://github.com/HeyPuter/puter/pull/802 * CI: Add a simple test workflow by @bitsnaps in https://github.com/HeyPuter/puter/pull/782 * Update README.te.md by @lohitkotni in https://github.com/HeyPuter/puter/pull/805 * v86 persistence by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/807 * Preparation for adding a service manager to puter.js by @KernelDeimos in https://github.com/HeyPuter/puter/pull/810 * Issue/zip operation by @4nshuman in https://github.com/HeyPuter/puter/pull/787 * WIP symlink, net_device virtio, move fixes, upload binary fixes by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/814 * minor documentation fixes by @djelacik in https://github.com/HeyPuter/puter/pull/817 * Edit "Puter version" title and description in the bug report template by @Zac0511 in https://github.com/HeyPuter/puter/pull/816 * Update README.fr.md by @Zac0511 in https://github.com/HeyPuter/puter/pull/830 * Added a chime to play on user's first interaction by @4nshuman in https://github.com/HeyPuter/puter/pull/831 * Revert "Added a chime to play on user's first interaction" by @KernelDeimos in https://github.com/HeyPuter/puter/pull/837 * Update es.js by @Abhinav-Bansal751 in https://github.com/HeyPuter/puter/pull/882 * Filled the missing Bengali translation and updated the old translation by @FahimFBA in https://github.com/HeyPuter/puter/pull/885 * fixixng arabic translation by @NadaAly56 in https://github.com/HeyPuter/puter/pull/888 * Update bn.js by @kazi331 in https://github.com/HeyPuter/puter/pull/887 * issue #842 by @Barkatzx in https://github.com/HeyPuter/puter/pull/889 * Added missing translations for Bengali localization (#842) by @motabbirhossain in https://github.com/HeyPuter/puter/pull/886 * Revert "Added missing translations for Bengali localization (#842)" by @jelveh in https://github.com/HeyPuter/puter/pull/890 * Translate completed to Portuguese-BR by @LuizGribner in https://github.com/HeyPuter/puter/pull/891 * finish translation for vi.js by @tien0412 in https://github.com/HeyPuter/puter/pull/894 * Update zhtw.js by @kiwipix in https://github.com/HeyPuter/puter/pull/895 * fix french missing translations by @nlaburu in https://github.com/HeyPuter/puter/pull/892 * feat(i18n): update Urdu localization with missing translations by @afaq-karim in https://github.com/HeyPuter/puter/pull/896 * Update th.js by @mark10112 in https://github.com/HeyPuter/puter/pull/897 * Fix: Resolved issue #848 - Ukrainian translation by @pashak1207 in https://github.com/HeyPuter/puter/pull/899 * Added installation instructions for public hosting to readme by @decipher2k in https://github.com/HeyPuter/puter/pull/715 * Revert "Added installation instructions for public hosting to readme" by @jelveh in https://github.com/HeyPuter/puter/pull/900 * Turkish translations completed and missing parts fixed (Issue #849) by @kemal-akar in https://github.com/HeyPuter/puter/pull/898 * Improved Work Overlay Behavior by @DavidReque in https://github.com/HeyPuter/puter/pull/902 * Add missing tamil translations; issue #851 by @Kumara2mahe in https://github.com/HeyPuter/puter/pull/903 * Update ro.js by @saltimbanc in https://github.com/HeyPuter/puter/pull/904 * Complete the Hungarian (Magyar) translation of Puter (Issue #867) by @PeterZsigmond in https://github.com/HeyPuter/puter/pull/906 * update ru.js by @yeldynov in https://github.com/HeyPuter/puter/pull/905 * Update pt.js by @rsdribeiroIT in https://github.com/HeyPuter/puter/pull/907 * Update fa.js by @AmirH-Sal in https://github.com/HeyPuter/puter/pull/908 * Update fr.js by @Zac0511 in https://github.com/HeyPuter/puter/pull/909 * Fix missing Hindi translations in hi.js by @monish-j in https://github.com/HeyPuter/puter/pull/910 * Updated nl.js with missing translations by @mardax007 in https://github.com/HeyPuter/puter/pull/911 * update issues/#845 by @SoarUI in https://github.com/HeyPuter/puter/pull/913 * Update zh.js by @BertramYe in https://github.com/HeyPuter/puter/pull/912 * Update Swedish translations in sv.js by @JessicaFredin in https://github.com/HeyPuter/puter/pull/914 * Fix: Japanese Translation for i18n (Issue 862) by @bestlucky123 in https://github.com/HeyPuter/puter/pull/915 * new transulations are added by @DigitalGenius-ui in https://github.com/HeyPuter/puter/pull/916 * Improve your word choice to make it easier for Indonesians to underst… by @rhecustein in https://github.com/HeyPuter/puter/pull/917 * Revert "Improve your word choice to make it easier for Indonesians to underst…" by @jelveh in https://github.com/HeyPuter/puter/pull/918 * "Complete Kurdish Translation for ku.js"Completed missing Kurdish translations in ku.js by @Rebandradha in https://github.com/HeyPuter/puter/pull/919 * Update hy.js by @gng92 in https://github.com/HeyPuter/puter/pull/920 * Update id.js #865 by @junian in https://github.com/HeyPuter/puter/pull/921 * Update zh translations by @monyxie in https://github.com/HeyPuter/puter/pull/923 * update id.js by @denisugiarto in https://github.com/HeyPuter/puter/pull/924 * added Korean translations by @anapimolodec in https://github.com/HeyPuter/puter/pull/922 * KOREAN-000861: Missing translations done by @hpark75 in https://github.com/HeyPuter/puter/pull/926 * Update ig.js by @Fumnanya92 in https://github.com/HeyPuter/puter/pull/925 * Issues #861-Add missing Korean translations by @keimindev in https://github.com/HeyPuter/puter/pull/927 * Update Igbo translation of words #864 by @Nathaniyell in https://github.com/HeyPuter/puter/pull/928 * Update he.js by @AmitMaymon in https://github.com/HeyPuter/puter/pull/930 * Added German translation by @ahamiltonnn in https://github.com/HeyPuter/puter/pull/929 * Added missing Polish translation by @kingflamez in https://github.com/HeyPuter/puter/pull/932 * Enable Save button in Dev Center only when settings change and add a Reset button by @ria147 in https://github.com/HeyPuter/puter/pull/934 * Update Italian translations by @RidvanPlluzhina in https://github.com/HeyPuter/puter/pull/935 * Revert "Update Italian translations" by @jelveh in https://github.com/HeyPuter/puter/pull/936 * PR_836_italian translation by @puyab91 in https://github.com/HeyPuter/puter/pull/937 * Update it.js by @danielpetrica in https://github.com/HeyPuter/puter/pull/939 * #871 added missing Finnish translations in fi.js by @mkalevo in https://github.com/HeyPuter/puter/pull/940 * Review Undefined Words and Correct it by @Aliieeee in https://github.com/HeyPuter/puter/pull/942 * Update ig.js by @enweazudaniel in https://github.com/HeyPuter/puter/pull/943 * Fixes issue #871 by @mithunmunsi in https://github.com/HeyPuter/puter/pull/938 * Update hy.js by @MherFrangyan in https://github.com/HeyPuter/puter/pull/945 * doc: ai generated comments by @KernelDeimos in https://github.com/HeyPuter/puter/pull/941 * File association format by @rowin-C in https://github.com/HeyPuter/puter/pull/946 * Revert "File association format" by @jelveh in https://github.com/HeyPuter/puter/pull/947 * Added the warning dialog by @paulinezhanghh in https://github.com/HeyPuter/puter/pull/980 * Add missing turkish translations by @ulaski in https://github.com/HeyPuter/puter/pull/984 * tweak: added missing hindi translation by @rowin-C in https://github.com/HeyPuter/puter/pull/982 * Translate billing-related strings to Persian in fa.js by @Agastya18 in https://github.com/HeyPuter/puter/pull/985 * Translated to Chinese by @githubalexliu in https://github.com/HeyPuter/puter/pull/986 * feat: added tagify in Filetype-Association input in dev center by @rowin-C in https://github.com/HeyPuter/puter/pull/981 * Added new Dutch translation by @arthur-adriansens in https://github.com/HeyPuter/puter/pull/989 * Update ur.js by @ICODER32 in https://github.com/HeyPuter/puter/pull/990 * sync(i18n): add Polish translations for billing-related terms by @paulinek13 in https://github.com/HeyPuter/puter/pull/993 * feat: add brazillian translations for billing-related terms in br.js by @samueldev900 in https://github.com/HeyPuter/puter/pull/994 * Japanese translation issue number 967 by @hutajoullach in https://github.com/HeyPuter/puter/pull/996 * japanese translations by @kirney23 in https://github.com/HeyPuter/puter/pull/995 * add translation for missing sentancies by @smikayel in https://github.com/HeyPuter/puter/pull/998 * Update ro.js by @bertsrl in https://github.com/HeyPuter/puter/pull/997 * Fixes issue [#976]: Add missing Finnish translations. by @JJooaa in https://github.com/HeyPuter/puter/pull/999 * Issue #961, filled missing translations, Updating ru.js by @HeorhiiPavlovskyi in https://github.com/HeyPuter/puter/pull/1001 * Update he.js by @Tristramit in https://github.com/HeyPuter/puter/pull/1002 * feat: added a few Korean translatations by @sumi1239 in https://github.com/HeyPuter/puter/pull/1003 * Close apps by clicking on icons (issue #944) + awesome animations! by @arthur-adriansens in https://github.com/HeyPuter/puter/pull/1005 * Fix issue #970 by @arrafi-ahmed in https://github.com/HeyPuter/puter/pull/1006 * update id translations by @wildanhkm in https://github.com/HeyPuter/puter/pull/1004 * Update id.js by @zefta27 in https://github.com/HeyPuter/puter/pull/1007 * Revert "Update id.js" by @jelveh in https://github.com/HeyPuter/puter/pull/1008 * Created test cases for issue #878 by @joeni21 in https://github.com/HeyPuter/puter/pull/1009 * Revert "Created test cases for issue #878 " by @jelveh in https://github.com/HeyPuter/puter/pull/1011 * Update it.js by @danielpetrica in https://github.com/HeyPuter/puter/pull/1012 * Added missing Italian translations (#968) by @CriDM in https://github.com/HeyPuter/puter/pull/1013 * Complete the Ukrainian (Українська) translation of Puter · Issue #956 · HeyPuter/puter by @gwyneblaidd in https://github.com/HeyPuter/puter/pull/1014 * Add Bengali translations for billing module strings by @nafisa45 in https://github.com/HeyPuter/puter/pull/1015 * Completed Arabic translations for issue #948 by @hasanayoub in https://github.com/HeyPuter/puter/pull/1016 * Update Arabic translations for issue #948 by @RamiIbrahim2002 in https://github.com/HeyPuter/puter/pull/1017 * tweak: update ua translations; by @dmytro-nesteruk in https://github.com/HeyPuter/puter/pull/1018 * Added Traditional Chinese translations by @Elisassa in https://github.com/HeyPuter/puter/pull/1019 * Added to new Tamil Words to the ta.js file. by @cprogrammer1209 in https://github.com/HeyPuter/puter/pull/1010 * feat: Complete the German (Deutsch) translation of Puter #952 by @akuumaa in https://github.com/HeyPuter/puter/pull/1022 * feat: (#954) Add Vietnamese translations for billing-related terms by @lvluu in https://github.com/HeyPuter/puter/pull/1020 * feat: add Vietnamese translations for billing in vi.js by @vulct174 in https://github.com/HeyPuter/puter/pull/1021 * (#954) Add Vietnamese translations for billing-related terms by @lephuongnam22 in https://github.com/HeyPuter/puter/pull/1023 * feat: Complete the Vietnamese translation of Puter #954 by @hoursing in https://github.com/HeyPuter/puter/pull/1025 * Update th.js by @nathnapa88 in https://github.com/HeyPuter/puter/pull/1026 * portuguese translations for #963 issue added by @loismbferraz in https://github.com/HeyPuter/puter/pull/1028 * feat: set max token to 8096 by @devanenWl in https://github.com/HeyPuter/puter/pull/1031 * Complete Igbo translations for missing keys (#969) by @Victor-Evogor in https://github.com/HeyPuter/puter/pull/1034 * Update missing translations for Igbo by @Nathaniyell in https://github.com/HeyPuter/puter/pull/1035 * Revert "Update missing translations for Igbo" by @jelveh in https://github.com/HeyPuter/puter/pull/1036 * fixed "Complete the Igbo translation of Puter #969" issue by @Exclusiveideas in https://github.com/HeyPuter/puter/pull/1038 * Add missing Thai translations in th.js by @twuttiwat in https://github.com/HeyPuter/puter/pull/1040 * feat: add Escape key functionality to UIPrompt for closing the prompt by @Agastya18 in https://github.com/HeyPuter/puter/pull/1039 * Update Swedish translations in sv.js by @saud-saeed in https://github.com/HeyPuter/puter/pull/1042 * refactor: adjust max_tokens for specific models by @KenKout in https://github.com/HeyPuter/puter/pull/1041 * Added Spanish translations for all the missing translations. by @rdsingh120 in https://github.com/HeyPuter/puter/pull/1045 * kurdish translate ismailix by @ismailix in https://github.com/HeyPuter/puter/pull/1044 * Korean translation improvement (#966) by @nicola-laura in https://github.com/HeyPuter/puter/pull/1046 * Complete Hungarian translation of Puter #972 by @phellinger in https://github.com/HeyPuter/puter/pull/1048 * Add Hungarian translations by @vasarmilan in https://github.com/HeyPuter/puter/pull/1052 * fix: resolve issue #983 - Stuck on Creating new app loading screen by @mariatouil in https://github.com/HeyPuter/puter/pull/1051 * Revert "fix: resolve issue #983 - Stuck on Creating new app loading s… by @jelveh in https://github.com/HeyPuter/puter/pull/1053 * Fix languages orders in translations.js by @landof in https://github.com/HeyPuter/puter/pull/1054 * Update dev-center.js to improve UX by @alizargit in https://github.com/HeyPuter/puter/pull/1056 * Resolved Issue #965: Completed Kurdish Translations by @Abdulbasit0123 in https://github.com/HeyPuter/puter/pull/1043 * Revert "Resolved Issue #965: Completed Kurdish Translations" by @jelveh in https://github.com/HeyPuter/puter/pull/1057 * Complete Korean translation for ko.js (#966) by @dev-wonny in https://github.com/HeyPuter/puter/pull/1047 * Add missing French translations (#975) by @hexsproductions in https://github.com/HeyPuter/puter/pull/1058 * feature(issue #975) finish French translations by @themermabrouk in https://github.com/HeyPuter/puter/pull/1055 * add missing danish translations by @lauritsbonde in https://github.com/HeyPuter/puter/pull/1062 * #875 Complete the Danish (Dansk) translation of Puter by @MPiya in https://github.com/HeyPuter/puter/pull/1061 * Finish Danish translation, resolve issue #875 by @biocyberman in https://github.com/HeyPuter/puter/pull/1060 * Update da.js #875 by @charlottekatzmann in https://github.com/HeyPuter/puter/pull/1063 * Update README.zh.md by @bestlaw66 in https://github.com/HeyPuter/puter/pull/1065 * Fix explorer table extra white space on right by @bill-c-law in https://github.com/HeyPuter/puter/pull/1067 * Complete Malayalam translation based on English file #754 by @joswin18 in https://github.com/HeyPuter/puter/pull/1075 * feat: Complete the French (Français) translation of Puter #975 by @HatemLamia in https://github.com/HeyPuter/puter/pull/1024 * Create devcontainer.json by @akamas in https://github.com/HeyPuter/puter/pull/1076 * Revert "Create devcontainer.json" by @jelveh in https://github.com/HeyPuter/puter/pull/1078 * Fix: drag-and-drop issue: files not appearing on desktop automatically by @mariatouil in https://github.com/HeyPuter/puter/pull/1050 * Revert "Fix: drag-and-drop issue: files not appearing on desktop automatically" by @jelveh in https://github.com/HeyPuter/puter/pull/1079 * English README translated to Persian language by @ahmadkani in https://github.com/HeyPuter/puter/pull/1082 ## New Contributors * @fauzipadlaw made their first contribution in https://github.com/HeyPuter/puter/pull/638 * @BryarGh made their first contribution in https://github.com/HeyPuter/puter/pull/640 * @RandomStrangerOnTheInternet made their first contribution in https://github.com/HeyPuter/puter/pull/646 * @ljyamada made their first contribution in https://github.com/HeyPuter/puter/pull/648 * @de1eb made their first contribution in https://github.com/HeyPuter/puter/pull/650 * @Razy-F made their first contribution in https://github.com/HeyPuter/puter/pull/654 * @NGunjyal01 made their first contribution in https://github.com/HeyPuter/puter/pull/657 * @JoelSjogren made their first contribution in https://github.com/HeyPuter/puter/pull/659 * @Ranegg made their first contribution in https://github.com/HeyPuter/puter/pull/661 * @looz0 made their first contribution in https://github.com/HeyPuter/puter/pull/662 * @JesHansen made their first contribution in https://github.com/HeyPuter/puter/pull/679 * @TatianaMagnus made their first contribution in https://github.com/HeyPuter/puter/pull/680 * @NFFY88 made their first contribution in https://github.com/HeyPuter/puter/pull/681 * @juank0205 made their first contribution in https://github.com/HeyPuter/puter/pull/685 * @abhishekpaturkar made their first contribution in https://github.com/HeyPuter/puter/pull/690 * @calreed-prof made their first contribution in https://github.com/HeyPuter/puter/pull/691 * @emrhngngr made their first contribution in https://github.com/HeyPuter/puter/pull/695 * @jsdmas made their first contribution in https://github.com/HeyPuter/puter/pull/698 * @Priyanshu1035 made their first contribution in https://github.com/HeyPuter/puter/pull/700 * @Sam-SSTU made their first contribution in https://github.com/HeyPuter/puter/pull/702 * @FabioDePalma made their first contribution in https://github.com/HeyPuter/puter/pull/703 * @Morraycage made their first contribution in https://github.com/HeyPuter/puter/pull/707 * @yanniro2 made their first contribution in https://github.com/HeyPuter/puter/pull/706 * @Atharva089 made their first contribution in https://github.com/HeyPuter/puter/pull/711 * @catalin-lungu made their first contribution in https://github.com/HeyPuter/puter/pull/712 * @Panyakornk made their first contribution in https://github.com/HeyPuter/puter/pull/717 * @yomalbalooshi made their first contribution in https://github.com/HeyPuter/puter/pull/718 * @VinayakPaka made their first contribution in https://github.com/HeyPuter/puter/pull/719 * @EngrAdnanAhmad made their first contribution in https://github.com/HeyPuter/puter/pull/727 * @Pulkitxm made their first contribution in https://github.com/HeyPuter/puter/pull/740 * @OrelsProjects made their first contribution in https://github.com/HeyPuter/puter/pull/747 * @Sky-De made their first contribution in https://github.com/HeyPuter/puter/pull/748 * @gng92 made their first contribution in https://github.com/HeyPuter/puter/pull/751 * @rinogodson made their first contribution in https://github.com/HeyPuter/puter/pull/753 * @SergiyZyuzko made their first contribution in https://github.com/HeyPuter/puter/pull/757 * @gyarfasB made their first contribution in https://github.com/HeyPuter/puter/pull/760 * @the-heidi made their first contribution in https://github.com/HeyPuter/puter/pull/762 * @bibekp-dev made their first contribution in https://github.com/HeyPuter/puter/pull/763 * @4nshuman made their first contribution in https://github.com/HeyPuter/puter/pull/765 * @ruthwikchikoti made their first contribution in https://github.com/HeyPuter/puter/pull/770 * @ProgrammerIn-wonderland made their first contribution in https://github.com/HeyPuter/puter/pull/788 * @lohitkotni made their first contribution in https://github.com/HeyPuter/puter/pull/803 * @bitsnaps made their first contribution in https://github.com/HeyPuter/puter/pull/782 * @djelacik made their first contribution in https://github.com/HeyPuter/puter/pull/817 * @Abhinav-Bansal751 made their first contribution in https://github.com/HeyPuter/puter/pull/882 * @FahimFBA made their first contribution in https://github.com/HeyPuter/puter/pull/885 * @NadaAly56 made their first contribution in https://github.com/HeyPuter/puter/pull/888 * @kazi331 made their first contribution in https://github.com/HeyPuter/puter/pull/887 * @Barkatzx made their first contribution in https://github.com/HeyPuter/puter/pull/889 * @motabbirhossain made their first contribution in https://github.com/HeyPuter/puter/pull/886 * @LuizGribner made their first contribution in https://github.com/HeyPuter/puter/pull/891 * @tien0412 made their first contribution in https://github.com/HeyPuter/puter/pull/894 * @kiwipix made their first contribution in https://github.com/HeyPuter/puter/pull/895 * @nlaburu made their first contribution in https://github.com/HeyPuter/puter/pull/892 * @afaq-karim made their first contribution in https://github.com/HeyPuter/puter/pull/896 * @mark10112 made their first contribution in https://github.com/HeyPuter/puter/pull/897 * @pashak1207 made their first contribution in https://github.com/HeyPuter/puter/pull/899 * @decipher2k made their first contribution in https://github.com/HeyPuter/puter/pull/715 * @kemal-akar made their first contribution in https://github.com/HeyPuter/puter/pull/898 * @DavidReque made their first contribution in https://github.com/HeyPuter/puter/pull/902 * @Kumara2mahe made their first contribution in https://github.com/HeyPuter/puter/pull/903 * @saltimbanc made their first contribution in https://github.com/HeyPuter/puter/pull/904 * @PeterZsigmond made their first contribution in https://github.com/HeyPuter/puter/pull/906 * @yeldynov made their first contribution in https://github.com/HeyPuter/puter/pull/905 * @rsdribeiroIT made their first contribution in https://github.com/HeyPuter/puter/pull/907 * @AmirH-Sal made their first contribution in https://github.com/HeyPuter/puter/pull/908 * @monish-j made their first contribution in https://github.com/HeyPuter/puter/pull/910 * @mardax007 made their first contribution in https://github.com/HeyPuter/puter/pull/911 * @SoarUI made their first contribution in https://github.com/HeyPuter/puter/pull/913 * @BertramYe made their first contribution in https://github.com/HeyPuter/puter/pull/912 * @JessicaFredin made their first contribution in https://github.com/HeyPuter/puter/pull/914 * @bestlucky123 made their first contribution in https://github.com/HeyPuter/puter/pull/915 * @DigitalGenius-ui made their first contribution in https://github.com/HeyPuter/puter/pull/916 * @rhecustein made their first contribution in https://github.com/HeyPuter/puter/pull/917 * @Rebandradha made their first contribution in https://github.com/HeyPuter/puter/pull/919 * @junian made their first contribution in https://github.com/HeyPuter/puter/pull/921 * @monyxie made their first contribution in https://github.com/HeyPuter/puter/pull/923 * @denisugiarto made their first contribution in https://github.com/HeyPuter/puter/pull/924 * @anapimolodec made their first contribution in https://github.com/HeyPuter/puter/pull/922 * @hpark75 made their first contribution in https://github.com/HeyPuter/puter/pull/926 * @Fumnanya92 made their first contribution in https://github.com/HeyPuter/puter/pull/925 * @keimindev made their first contribution in https://github.com/HeyPuter/puter/pull/927 * @Nathaniyell made their first contribution in https://github.com/HeyPuter/puter/pull/928 * @AmitMaymon made their first contribution in https://github.com/HeyPuter/puter/pull/930 * @ahamiltonnn made their first contribution in https://github.com/HeyPuter/puter/pull/929 * @kingflamez made their first contribution in https://github.com/HeyPuter/puter/pull/932 * @ria147 made their first contribution in https://github.com/HeyPuter/puter/pull/934 * @RidvanPlluzhina made their first contribution in https://github.com/HeyPuter/puter/pull/935 * @puyab91 made their first contribution in https://github.com/HeyPuter/puter/pull/937 * @danielpetrica made their first contribution in https://github.com/HeyPuter/puter/pull/939 * @mkalevo made their first contribution in https://github.com/HeyPuter/puter/pull/940 * @Aliieeee made their first contribution in https://github.com/HeyPuter/puter/pull/942 * @mithunmunsi made their first contribution in https://github.com/HeyPuter/puter/pull/938 * @MherFrangyan made their first contribution in https://github.com/HeyPuter/puter/pull/945 * @rowin-C made their first contribution in https://github.com/HeyPuter/puter/pull/946 * @paulinezhanghh made their first contribution in https://github.com/HeyPuter/puter/pull/980 * @ulaski made their first contribution in https://github.com/HeyPuter/puter/pull/984 * @Agastya18 made their first contribution in https://github.com/HeyPuter/puter/pull/985 * @githubalexliu made their first contribution in https://github.com/HeyPuter/puter/pull/986 * @arthur-adriansens made their first contribution in https://github.com/HeyPuter/puter/pull/989 * @ICODER32 made their first contribution in https://github.com/HeyPuter/puter/pull/990 * @paulinek13 made their first contribution in https://github.com/HeyPuter/puter/pull/993 * @samueldev900 made their first contribution in https://github.com/HeyPuter/puter/pull/994 * @hutajoullach made their first contribution in https://github.com/HeyPuter/puter/pull/996 * @kirney23 made their first contribution in https://github.com/HeyPuter/puter/pull/995 * @smikayel made their first contribution in https://github.com/HeyPuter/puter/pull/998 * @bertsrl made their first contribution in https://github.com/HeyPuter/puter/pull/997 * @JJooaa made their first contribution in https://github.com/HeyPuter/puter/pull/999 * @HeorhiiPavlovskyi made their first contribution in https://github.com/HeyPuter/puter/pull/1001 * @Tristramit made their first contribution in https://github.com/HeyPuter/puter/pull/1002 * @sumi1239 made their first contribution in https://github.com/HeyPuter/puter/pull/1003 * @arrafi-ahmed made their first contribution in https://github.com/HeyPuter/puter/pull/1006 * @wildanhkm made their first contribution in https://github.com/HeyPuter/puter/pull/1004 * @zefta27 made their first contribution in https://github.com/HeyPuter/puter/pull/1007 * @joeni21 made their first contribution in https://github.com/HeyPuter/puter/pull/1009 * @CriDM made their first contribution in https://github.com/HeyPuter/puter/pull/1013 * @gwyneblaidd made their first contribution in https://github.com/HeyPuter/puter/pull/1014 * @nafisa45 made their first contribution in https://github.com/HeyPuter/puter/pull/1015 * @hasanayoub made their first contribution in https://github.com/HeyPuter/puter/pull/1016 * @RamiIbrahim2002 made their first contribution in https://github.com/HeyPuter/puter/pull/1017 * @dmytro-nesteruk made their first contribution in https://github.com/HeyPuter/puter/pull/1018 * @Elisassa made their first contribution in https://github.com/HeyPuter/puter/pull/1019 * @cprogrammer1209 made their first contribution in https://github.com/HeyPuter/puter/pull/1010 * @akuumaa made their first contribution in https://github.com/HeyPuter/puter/pull/1022 * @lvluu made their first contribution in https://github.com/HeyPuter/puter/pull/1020 * @vulct174 made their first contribution in https://github.com/HeyPuter/puter/pull/1021 * @lephuongnam22 made their first contribution in https://github.com/HeyPuter/puter/pull/1023 * @hoursing made their first contribution in https://github.com/HeyPuter/puter/pull/1025 * @nathnapa88 made their first contribution in https://github.com/HeyPuter/puter/pull/1026 * @loismbferraz made their first contribution in https://github.com/HeyPuter/puter/pull/1028 * @devanenWl made their first contribution in https://github.com/HeyPuter/puter/pull/1031 * @Victor-Evogor made their first contribution in https://github.com/HeyPuter/puter/pull/1034 * @Exclusiveideas made their first contribution in https://github.com/HeyPuter/puter/pull/1038 * @twuttiwat made their first contribution in https://github.com/HeyPuter/puter/pull/1040 * @saud-saeed made their first contribution in https://github.com/HeyPuter/puter/pull/1042 * @KenKout made their first contribution in https://github.com/HeyPuter/puter/pull/1041 * @rdsingh120 made their first contribution in https://github.com/HeyPuter/puter/pull/1045 * @ismailix made their first contribution in https://github.com/HeyPuter/puter/pull/1044 * @nicola-laura made their first contribution in https://github.com/HeyPuter/puter/pull/1046 * @phellinger made their first contribution in https://github.com/HeyPuter/puter/pull/1048 * @vasarmilan made their first contribution in https://github.com/HeyPuter/puter/pull/1052 * @mariatouil made their first contribution in https://github.com/HeyPuter/puter/pull/1051 * @landof made their first contribution in https://github.com/HeyPuter/puter/pull/1054 * @alizargit made their first contribution in https://github.com/HeyPuter/puter/pull/1056 * @Abdulbasit0123 made their first contribution in https://github.com/HeyPuter/puter/pull/1043 * @dev-wonny made their first contribution in https://github.com/HeyPuter/puter/pull/1047 * @hexsproductions made their first contribution in https://github.com/HeyPuter/puter/pull/1058 * @themermabrouk made their first contribution in https://github.com/HeyPuter/puter/pull/1055 * @lauritsbonde made their first contribution in https://github.com/HeyPuter/puter/pull/1062 * @MPiya made their first contribution in https://github.com/HeyPuter/puter/pull/1061 * @biocyberman made their first contribution in https://github.com/HeyPuter/puter/pull/1060 * @charlottekatzmann made their first contribution in https://github.com/HeyPuter/puter/pull/1063 * @bestlaw66 made their first contribution in https://github.com/HeyPuter/puter/pull/1065 * @bill-c-law made their first contribution in https://github.com/HeyPuter/puter/pull/1067 * @joswin18 made their first contribution in https://github.com/HeyPuter/puter/pull/1075 * @HatemLamia made their first contribution in https://github.com/HeyPuter/puter/pull/1024 * @akamas made their first contribution in https://github.com/HeyPuter/puter/pull/1076 * @ahmadkani made their first contribution in https://github.com/HeyPuter/puter/pull/1082 **Full Changelog**: https://github.com/HeyPuter/puter/compare/v2.4.2...v2.5.0
## What's Changed ### Features * JSON support for kv driver by @KernelDeimos in https://github.com/HeyPuter/puter/pull/562 * Default groups @KernelDeimos in https://github.com/HeyPuter/puter/pull/608 * Option to disable temporary users by @jelveh in https://github.com/HeyPuter/puter/pull/609 * Custom "new file" templates by @Koppeks in https://github.com/HeyPuter/puter/pull/627 ### Fixes & Dev * Template fixes by @KernelDeimos in https://github.com/HeyPuter/puter/pull/628https://github.com/HeyPuter/puter/pull/572 * refactor(backend): rename traits to features by @KernelDeimos in ### Documentation * Add documentation instructions to get started with My Websites by @micheledinelli in https://github.com/HeyPuter/puter/pull/571 * Directions for Windows / Docker Composer by @bryanthaboi in https://github.com/HeyPuter/puter/pull/597 ### Translations * Update ru.js issue #547 by @julijatol in https://github.com/HeyPuter/puter/pull/561 * Russian translation fixed by @Speedyjet in https://github.com/HeyPuter/puter/pull/560 * Russian and ukrainian by @Speedyjet in https://github.com/HeyPuter/puter/pull/564 * Update Arabic translations in ar.js by @medelm1 in https://github.com/HeyPuter/puter/pull/565 * feat: update BR translation by @matheussss1 in https://github.com/HeyPuter/puter/pull/566 * Completing Italian translation based on English file by @micheledinelli in https://github.com/HeyPuter/puter/pull/570 * Completing Arabic translation based on English file. by @abde-r in https://github.com/HeyPuter/puter/pull/567 * Add Japanese translation by @askdkc in https://github.com/HeyPuter/puter/pull/574 * Add Romanian translations by @xslendix in https://github.com/HeyPuter/puter/pull/575 * Added missing Romanian translations. by @sbondor in https://github.com/HeyPuter/puter/pull/576 * Issue#530 - Update bengali translations by @Waheed4719 in https://github.com/HeyPuter/puter/pull/579 * Update Armenian translation based on English file by @narek-gh in https://github.com/HeyPuter/puter/pull/590 * Fixed grammar issues/untranslated stings in italian translation by @LNLenost in https://github.com/HeyPuter/puter/pull/591 * Tamil translation by @Varun710 in https://github.com/HeyPuter/puter/pull/593 * Create hu.js hungarian language by @Szab54 in https://github.com/HeyPuter/puter/pull/595 * Update translations.js to Hungarian lang by @Szab54 in https://github.com/HeyPuter/puter/pull/594 * Translate en.js as of 2024-07-10 by @ohm69 in https://github.com/HeyPuter/puter/pull/598 * Translation to Spanish by @Koppeks in https://github.com/HeyPuter/puter/pull/600 * Translation improvements, mainly style and context-based by @ohm69 in https://github.com/HeyPuter/puter/pull/603 * Fixed Tamil translation by @Alfika07 in https://github.com/HeyPuter/puter/pull/611 * fix(i18n): Complete Traditional Chinese translation based on English file #550 by @mlgzackfly in https://github.com/HeyPuter/puter/pull/615 * Complete Traditional Chinese translation based on English file #550 by @stariver1862 in https://github.com/HeyPuter/puter/pull/616 * Add Vietnamese Translation for i18n by @pvhuwung in https://github.com/HeyPuter/puter/pull/620 * Update ig.js by @enweazudaniel in https://github.com/HeyPuter/puter/pull/624 ### Meta * retry npm 3 times to account for the flakiness of the process by @jelveh in https://github.com/HeyPuter/puter/pull/585 * Move `.commit` to `/tools` by @jelveh in https://github.com/HeyPuter/puter/pull/573 * Add issue template for app ideas by @secondtruth in https://github.com/HeyPuter/puter/pull/618 ## New Contributors * @julijatol made their first contribution in https://github.com/HeyPuter/puter/pull/561 * @Speedyjet made their first contribution in https://github.com/HeyPuter/puter/pull/560 * @medelm1 made their first contribution in https://github.com/HeyPuter/puter/pull/565 * @matheussss1 made their first contribution in https://github.com/HeyPuter/puter/pull/566 * @micheledinelli made their first contribution in https://github.com/HeyPuter/puter/pull/570 * @abde-r made their first contribution in https://github.com/HeyPuter/puter/pull/567 * @askdkc made their first contribution in https://github.com/HeyPuter/puter/pull/574 * @xslendix made their first contribution in https://github.com/HeyPuter/puter/pull/575 * @sbondor made their first contribution in https://github.com/HeyPuter/puter/pull/576 * @Waheed4719 made their first contribution in https://github.com/HeyPuter/puter/pull/579 * @narek-gh made their first contribution in https://github.com/HeyPuter/puter/pull/590 * @LNLenost made their first contribution in https://github.com/HeyPuter/puter/pull/591 * @Varun710 made their first contribution in https://github.com/HeyPuter/puter/pull/593 * @Szab54 made their first contribution in https://github.com/HeyPuter/puter/pull/595 * @ohm69 made their first contribution in https://github.com/HeyPuter/puter/pull/598 * @bryanthaboi made their first contribution in https://github.com/HeyPuter/puter/pull/597 * @Koppeks made their first contribution in https://github.com/HeyPuter/puter/pull/600 * @Alfika07 made their first contribution in https://github.com/HeyPuter/puter/pull/611 * @mlgzackfly made their first contribution in https://github.com/HeyPuter/puter/pull/615 * @stariver1862 made their first contribution in https://github.com/HeyPuter/puter/pull/616 * @pvhuwung made their first contribution in https://github.com/HeyPuter/puter/pull/620 **Full Changelog**: https://github.com/HeyPuter/puter/compare/v2.4.1...v2.4.2
## 2.4.0 (2024-07-08) ### Features * add (pt-br) translation for system settings. ([77211c4](https://github.com/HeyPuter/puter/commit/77211c4f71b0285fb3060f7e5c8d493b4d7c4f0c)) * add /group/list endpoint ([d55f38c](https://github.com/HeyPuter/puter/commit/d55f38ca68899c3574cfe328d2b206b1143ff0d4)) * add /share/file-by-username endpoint ([5d214c7](https://github.com/HeyPuter/puter/commit/5d214c7b52887b594af6be497f1892baf7d77679)) * add /sharelink/request endpoint ([742f625](https://github.com/HeyPuter/puter/commit/742f625309f9f4cfa70cf7d2fe5b03fd164913ea)) * add /show urls ([079e25a](https://github.com/HeyPuter/puter/commit/079e25a9fe8e179f26d72378856058eb656e2314)) * add app metadata ([f7216b9](https://github.com/HeyPuter/puter/commit/f7216b95672b38802b288ef5b022e947017ff311)) * add appdata permission (if applicable) on app share ([9751fd9](https://github.com/HeyPuter/puter/commit/9751fd92a50e75385cffed0ca847d5076ba98c92)) * add cookie for site token ([a813fbb](https://github.com/HeyPuter/puter/commit/a813fbbb88bcfb8b9a61976e2a4fc4aab943fc88)) * add cross-server event broadcasting ([1207a15](https://github.com/HeyPuter/puter/commit/1207a158bdc88a90b14d31d03387ce353c176a9c)) * add debug mod ([16b1649](https://github.com/HeyPuter/puter/commit/16b1649ff62fd87a4dda5d2e1c68941c864c5da4)) * add endpoints for share tokens ([301ffaf](https://github.com/HeyPuter/puter/commit/301ffaf61dbb4fca1a855650ab80707ae6d9f602)) * Add exit status code to apps ([7674da4](https://github.com/HeyPuter/puter/commit/7674da4cd225bcad34079251c5600fc32e32248b)) * add external mod loading ([eb05fbd](https://github.com/HeyPuter/puter/commit/eb05fbd2dc4877553b5118a069a9afdc32bea137)) * add group management endpoints ([4216346](https://github.com/HeyPuter/puter/commit/4216346384d90dcba429dbcb175e6f86482d19f4)) * add group permission endpoints ([c374b0c](https://github.com/HeyPuter/puter/commit/c374b0cbca761e7c8a47d56a09551f2e9378066a)) * add mark-read endpoint ([0101f42](https://github.com/HeyPuter/puter/commit/0101f425d480705c20df4919a76f66e987f5790f)) * add permission rewriter for app by name ([16c4907](https://github.com/HeyPuter/puter/commit/16c4907be592dae31ed3c1aa3fac3b9655255d6f)) * add protected apps ([f2f3d6f](https://github.com/HeyPuter/puter/commit/f2f3d6ff460932698fb8da7309fbce3e96132950)) * add protected subdomains ([86fca17](https://github.com/HeyPuter/puter/commit/86fca17fb17c0c24397c29b49b133deadea1de8b)) * add querystring-informed errors ([e7c0b83](https://github.com/HeyPuter/puter/commit/e7c0b8320a6829315d9154d6d513bab4491c47ea)) * add readdir delegate for shares in a user directory ([8424d44](https://github.com/HeyPuter/puter/commit/8424d446099ac30ccf829c57d43eef1f235618e4)) * add readdir delegate for sharing user homedirs ([19a5eb0](https://github.com/HeyPuter/puter/commit/19a5eb00763f3ac31df8483fb59cb7a96c448745)) * add service for notifications ([a1e6887](https://github.com/HeyPuter/puter/commit/a1e6887bf93da21b9482040b3e30ee083fb23477)) * add service to test file share logic ([332371f](https://github.com/HeyPuter/puter/commit/332371fccb198462948a440419adc7a26d671a23)) * add share list to stat ([8c49ba2](https://github.com/HeyPuter/puter/commit/8c49ba2553ce6bee20eb5b6f2721bc80f639e98a)) * add share service and share-by-email to /share ([db5990a](https://github.com/HeyPuter/puter/commit/db5990a98935817c0e16d30e921bb99c57a98fc8)) * add subdomain permission (if applicable) on app share ([13e2f72](https://github.com/HeyPuter/puter/commit/13e2f72c9f33f485570f13f45341246b1a05879f)) * add user-group permission check ([0014940](https://github.com/HeyPuter/puter/commit/00149402e041443aa3ac571fbe97a9a85f95564b)) * **backend:** add script service ([30550fc](https://github.com/HeyPuter/puter/commit/30550fcddda18469735499546de502d29b85e2ad)) * **backend:** Add tab completion to server console command arguments ([fa81dca](https://github.com/HeyPuter/puter/commit/fa81dca9507b7fa0f82099b75f2ab89c865626ac)) * **backend:** Add tab-completion to server console command names ([e1e76c6](https://github.com/HeyPuter/puter/commit/e1e76c6be71fdeb3b6246307b626734d8dc26f86)) * **backend:** add tip of day ([2d8e624](https://github.com/HeyPuter/puter/commit/2d8e6240c61dc6301f49cbdcd1c3b04736f9ca93)) * **backend:** allow services to provide user properties ([522664d](https://github.com/HeyPuter/puter/commit/522664d415c33342500defec309c2ff15bc94804)) * **backend:** allow services to provide whoami values ([fccabf1](https://github.com/HeyPuter/puter/commit/fccabf1bc0c4418f3599222616dd63bf98c14fe1)) * **backend:** improve logger and reduce logs ([4bdad75](https://github.com/HeyPuter/puter/commit/4bdad75766d0617a164024b39b79bf5373c495a6)) * Display app icon and description in embeds ([ef298ce](https://github.com/HeyPuter/puter/commit/ef298ce3aa3ce90224e883fb0ba33f9cd3a3da44)) * get first test working on share-test service ([88d6bee](https://github.com/HeyPuter/puter/commit/88d6bee9546f36d689c53ec7fe95f01f772f5211)) * **git:** Add --color and --no-color options ([d6dd1a5](https://github.com/HeyPuter/puter/commit/d6dd1a5bb0a2b2bba2cfe86d2e51ff2a6e42841c)) * **git:** Add a --debug option, which sets the DEBUG global ([fa3df72](https://github.com/HeyPuter/puter/commit/fa3df72f6ed2d45a440ebc2aacbbae67bf042478)) * **git:** Add authentication to clone, fetch, and pull. ([364d580](https://github.com/HeyPuter/puter/commit/364d580ff896691ee70d3735f495c720651a9f41)) * **git:** Add diff display to `show` and `log` subcommands ([3cad1ec](https://github.com/HeyPuter/puter/commit/3cad1ec436f99a78f782ab9576325d4341284964)) * **git:** Add start-revision and file arguments to `git log` ([49c2f16](https://github.com/HeyPuter/puter/commit/49c2f163515d2130c17a6f6a6a16bc27ea69336a)) * **git:** Allow checking out a commit instead of a branch ([057b3ac](https://github.com/HeyPuter/puter/commit/057b3acf00af49c005b9bf7069c5d22983a32e1e)) * **git:** Color output for `git status` files ([bab5204](https://github.com/HeyPuter/puter/commit/bab5204209aa2efc0c053643677a78db6ede0929)) * **git:** Display file contents as a string for `git show FILE_OID` ([a680371](https://github.com/HeyPuter/puter/commit/a68037111a04580cfa2688694a68ef6ac7a495fa)) * **git:** Display ref names in `git log` and `git show` ([45cdfcb](https://github.com/HeyPuter/puter/commit/45cdfcb5bfa66937b33054a127e0b17001f3faa4)) * **git:** Format output closer to canonical git ([60976b1](https://github.com/HeyPuter/puter/commit/60976b1ed61984d9d290f3a0ae99dd97632e9909)) * **git:** Handle detached HEAD in `git status` and `git branch --list` ([2c9b1a3](https://github.com/HeyPuter/puter/commit/2c9b1a3ffc3d5e282ffe5b83a86314e99445bbc6)) * **git:** Implement `git branch` ([ad4f132](https://github.com/HeyPuter/puter/commit/ad4f13255d52f8226f22800c16b388cf0e6384d7)) * **git:** Implement `git checkout` ([35e4453](https://github.com/HeyPuter/puter/commit/35e4453930bc4e151887f83c97efec19cc15da70)) * **git:** Implement `git cherry-pick` ([2e4259d](https://github.com/HeyPuter/puter/commit/2e4259d267b3cfafd5cefc57a02643c6432fec4d)) * **git:** Implement `git clone` ([95c8235](https://github.com/HeyPuter/puter/commit/95c8235a4a1fea39a46c40df04cb1004a2fe7b23)) * **git:** Implement `git diff` ([622b6a9](https://github.com/HeyPuter/puter/commit/622b6a9b921c3c03efc0b519c9a26c6701d80e50)) * **git:** Implement `git fetch` ([98a4b9e](https://github.com/HeyPuter/puter/commit/98a4b9ede39b94c0c6b6b8345d7551359961186a)) * **git:** Implement `git pull` ([eb2b6a0](https://github.com/HeyPuter/puter/commit/eb2b6a08b03cee0612885412cd4b03c9564044e3)) * **git:** Implement `git push` ([8c70229](https://github.com/HeyPuter/puter/commit/8c70229a188b743220db076a740a992fd7971301)) * **git:** Implement `git remote` ([43ce0d5](https://github.com/HeyPuter/puter/commit/43ce0d5b45d4eb4f296afcaaa1ecadc125c53e89)) * **git:** Implement `git restore` ([4ba8a32](https://github.com/HeyPuter/puter/commit/4ba8a32b45d395f28433572db5644d630776789e)) * **git:** Make `git add` work for deleted files ([9551544](https://github.com/HeyPuter/puter/commit/955154468f48e45028dad2e916708d6a763affad)) * **git:** Make shorten_hash() guaranteed to produce a unique hash ([dd10a37](https://github.com/HeyPuter/puter/commit/dd10a377493c0d8f10a1ac8779dc27f3f3bf6c37)) * **git:** Resolve more forms of commit reference ([b6906bb](https://github.com/HeyPuter/puter/commit/b6906bbcaaa50fc8a8c60beb6d2d38bcb7dda758)) * **git:** Understand references like `HEAD^` and `main~3` ([711dbc0](https://github.com/HeyPuter/puter/commit/711dbc0d2fde9c2ddc6c86f64fb4caa7837c9dcb)) * implicit access from apps to shared appdata dirs ([31d4eb0](https://github.com/HeyPuter/puter/commit/31d4eb090efb340fdfb7cb6b751145e859624eeb)) * introduce notification selection via driver ([c5334b0](https://github.com/HeyPuter/puter/commit/c5334b0e19cf9762f536ec482c3ff872e9c12399)) * multi-recipient multi-file share endpoint ([846fdc2](https://github.com/HeyPuter/puter/commit/846fdc20d4a887a1f8a4f3bda4fafe41efab2733)) * **parsely:** Add a fail() parser ([5656d9d](https://github.com/HeyPuter/puter/commit/5656d9d42f76202a534ad640d3a4e287e0e40418)) * **parsely:** Add stringUntil() parser ([d46b043](https://github.com/HeyPuter/puter/commit/d46b043c5d16f1205d61de3f3ba43ed8ad7bff93)) * **phoenix:** Add --dump and --file options to sed ([f250f86](https://github.com/HeyPuter/puter/commit/f250f86446a506f24fa2ad396328e3a2212a68d0)) * **phoenix:** Add more commands to sed, including labels and branching ([306014a](https://github.com/HeyPuter/puter/commit/306014adc77a7ca155feb95d1146cb46ee075b52)) * **phoenix:** Expose parsed arg tokens to apps that request them ([4067c82](https://github.com/HeyPuter/puter/commit/4067c82486c99cad20f41927ad39ebea438b717f)) * **phoenix:** Implement an `exit` builtin ([3184d34](https://github.com/HeyPuter/puter/commit/3184d3482c7b95c0fd1fc0745555ff82fc9a8c99)) * **phoenix:** Implement parsing of sed scripts ([0d4f907](https://github.com/HeyPuter/puter/commit/0d4f907b6675b15bd50a55f50aa28f0803b18b7b)) * **phoenix:** Make `clear` clear scrollback unless `-x` is given ([75a989a](https://github.com/HeyPuter/puter/commit/75a989a7b69bfdfdf69e5f0365027c5b27d8bfc6)) * **Phoenix:** Pass command line arguments and ENV when launching apps ([8f1c4fc](https://github.com/HeyPuter/puter/commit/8f1c4fcda98e72a7b970e8c6fc2fe39a5e012264)) * **phoenix:** Respond to exit status codes ([5de3052](https://github.com/HeyPuter/puter/commit/5de305202656a172b187dac87543d6c1c69a2958)) * **phoenix:** Show actual host name in prompt and neofetch ([4539408](https://github.com/HeyPuter/puter/commit/4539408a218a50244dc615cf7de56c29dcac53e6)) * rate-limit for excessive groups ([4af279a](https://github.com/HeyPuter/puter/commit/4af279a72fc9de89ddc3ba51806ca3760a36265d)) * re-send unreads on login ([02fc4d8](https://github.com/HeyPuter/puter/commit/02fc4d86b7166fb4803be5d28e2a593d6b7d9785)) * register dev center to apps ([10f4d7d](https://github.com/HeyPuter/puter/commit/10f4d7d50ce9314f9c3888c74cb17c8ebbecee98)) * send notification when file gets shared ([2f6c428](https://github.com/HeyPuter/puter/commit/2f6c428a403a006f7878861d2f0356c3294519be)) * start directory index frame ([fb1e2f2](https://github.com/HeyPuter/puter/commit/fb1e2f21fb67aefe0602f6c978199c7cd019bbf7)) * support canonical puter.js url in dev ([fd41ae2](https://github.com/HeyPuter/puter/commit/fd41ae217c7a9f7229326f62a829471580a744bd)) * **ui:** add new components ([577bd59](https://github.com/HeyPuter/puter/commit/577bd59b6cc94810e851ad544f8234e25a4e6e27)) * **ui:** add new components ([38ba425](https://github.com/HeyPuter/puter/commit/38ba42575ce9f3506f8ce219b9580202b3ed9993)) * **ui:** allow component-based settings tabs ([1245960](https://github.com/HeyPuter/puter/commit/124596058a286241b51dd87ce2fc1a68478cb5b8)) * update share endpoint to support more things ([dd5fde5](https://github.com/HeyPuter/puter/commit/dd5fde5130c1840ab598e6622766ae835142e58a)) ### Bug Fixes * add app_uid param to kv interface ([f7a0549](https://github.com/HeyPuter/puter/commit/f7a054956b8739a3bc305a49faee929ea0da1e15)) * add missing columns for public directory update ([b10302a](https://github.com/HeyPuter/puter/commit/b10302ad744fd9c58f9735743e075815183c772c)) * Add missing file extension to 0009_app-prefix-fix.sql in DB init ([a8160a8](https://github.com/HeyPuter/puter/commit/a8160a8cdcdd6aff98728a6f1643d93386e6bb5a)) * add permission implicator for file modes ([e63ab3a](https://github.com/HeyPuter/puter/commit/e63ab3a67f6555eb13d6af477a8da9f1b54d6608)) * add stream limit ([ceba309](https://github.com/HeyPuter/puter/commit/ceba309dbd4df89f310d1a530f939a5b7991f4c7)) * **backend:** remove a bad thing that really doesn't work ([8d22276](https://github.com/HeyPuter/puter/commit/8d22276f13106f7642d11da30b1500817a20ad43)) * bug introduced when refactoring /share to Sequence ([ecb9978](https://github.com/HeyPuter/puter/commit/ecb997885c1efb766827c84d2ffb8dc6ddabe992)) * check subdomain earlier for /apps ([4e3a24e](https://github.com/HeyPuter/puter/commit/4e3a24e6093e279e210765e07e436f4e63b74072)) * column nullability blunder ([1429d6f](https://github.com/HeyPuter/puter/commit/1429d6f57c67dff51fc41ca0c2868f8d000845f1)) * Correct APIError imports ([062e23b](https://github.com/HeyPuter/puter/commit/062e23b5c9673db1f8b0ff0469289d52dd1e3f99)) * correct shown flag behavior ([632c536](https://github.com/HeyPuter/puter/commit/632c5366161ff8fbbd4d60c61dfbe52dad488a2c)) * database migration ([9b39309](https://github.com/HeyPuter/puter/commit/9b39309e18a2927d25fe794d91da4e4d068c4bca)) * do not delegate to select on read like ever that is really dumb ([a2a10b9](https://github.com/HeyPuter/puter/commit/a2a10b94be59403e03fb08bec5d7c056ce5b554f)) * docker runtime fail because stdout columns ([94c0449](https://github.com/HeyPuter/puter/commit/94c0449437ce4cb26d00a15a3f277bc7b09367b4)) * fix issues with apps in /share endpoint ([0cf90ee](https://github.com/HeyPuter/puter/commit/0cf90ee39af6548d271dec45ed8ee9e6df1cd14d)) * fix owner ids for default apps ([283f409](https://github.com/HeyPuter/puter/commit/283f409a662d126e7f3ce811f1467ac6fab9a522)) * fix permission cascade properly this time ([de58866](https://github.com/HeyPuter/puter/commit/de5886698e1eae2b250baac174b57029f3244e96)) * Fix phoenix app prefix and TokenService test ([afb9d86](https://github.com/HeyPuter/puter/commit/afb9d866b5091058711db931cde904947e661c15)) * fix that fix ([b126b67](https://github.com/HeyPuter/puter/commit/b126b670940a0e20cfe7bd0eba3db891bab5c142)) * fix typo ([ce328b7](https://github.com/HeyPuter/puter/commit/ce328b7245ad741b64c5885f64f806fc98a55d84)) * **git:** Make git commit display detached HEAD correctly ([73d0f5a](https://github.com/HeyPuter/puter/commit/73d0f5a90cb5dcbadfc6d0fd22f14e8bc0e61f86)) * group permission audit table ([7d2f6d2](https://github.com/HeyPuter/puter/commit/7d2f6d256f56e30d752e9999c6e8bde68f9d9637)) * handle subpaths under another user ([d128cee](https://github.com/HeyPuter/puter/commit/d128ceed6f4928fa0793815feb2e2715cd273ff8)) * handling of batch requests with zero files ([c0063a8](https://github.com/HeyPuter/puter/commit/c0063a871fd891a1774f1bee00e86170fed249fa)) * i forgot to test reloading ([7eabb43](https://github.com/HeyPuter/puter/commit/7eabb43bd4257b4129d67eaeda2aa27e8268dc78)) * improve console experience on mac ([15465bf](https://github.com/HeyPuter/puter/commit/15465bfc5035a64762f7c86a3d38af8be6be5b59)) * incorrect error from suggested_apps ([b648817](https://github.com/HeyPuter/puter/commit/b648817f2743c2b6214ebe4177d921c9b9027594)) * Make polyfilled import.meta.filename getter a valid function ([85c6798](https://github.com/HeyPuter/puter/commit/85c679844869b6b05fcbda231d8dc7026a66da97)) * null email in request to /share ([bf63144](https://github.com/HeyPuter/puter/commit/bf63144f7a79c48bd650ae851ddd0c8a10d748c3)) * Only run Component initialization functions once ([5b43358](https://github.com/HeyPuter/puter/commit/5b43358219402bee3eadf4a0f184a4b924d3293b)) * oops ([a136ee5](https://github.com/HeyPuter/puter/commit/a136ee5edd3149798a0d82f494f423f503b65f00)) * **parsely:** Make Repeat parser work when no separator is given ([9b4d16f](https://github.com/HeyPuter/puter/commit/9b4d16fbe9d5698c57f9da725a22b528a7d7cac2)) * peers array assumption ([10cbf08](https://github.com/HeyPuter/puter/commit/10cbf08233620440aa39f5302deaac4f59f02247)) * **phoenix:** Add missing newlines to sed command output ([e047b0b](https://github.com/HeyPuter/puter/commit/e047b0bf302284da61e677432e4cc25b531b24f2)) * **phoenix:** Gracefully handle completing a non-existent path ([d76e713](https://github.com/HeyPuter/puter/commit/d76e7130cba9f0ca05940abafe4fd1a41464aa83)) * property validation on some permission endpoints ([0855f2b](https://github.com/HeyPuter/puter/commit/0855f2b36eca3bbdaa8429cbde3aa1242e8e96ee)) * readdir on file ([a72ec97](https://github.com/HeyPuter/puter/commit/a72ec9799ac3bd76ceafa22cce149e373a13f3b9)) * remove last component when share URL is file ([1166e69](https://github.com/HeyPuter/puter/commit/1166e69c76688d1811701c56cd4df9d38e286793)) * remove legacy permission check in stat ([f2c6e01](https://github.com/HeyPuter/puter/commit/f2c6e01296e4214336e63bc2d69bcbf17f59890f)) * Remove null or duplicate app entries from suggest_app_for_fsentry() ([6900233](https://github.com/HeyPuter/puter/commit/6900233c5aaa2d1a49f495e9f9a060796757a91e)) * **security:** Move token for socket.io to request body ([49b257e](https://github.com/HeyPuter/puter/commit/49b257ecffbb1e12090b86a67528a5ad09da69db)) * switch share notif username to sender ([cd65217](https://github.com/HeyPuter/puter/commit/cd65217f5cda1c986ee231e2eeeef5abefa36ecb)) * **Terminal:** Accept input from Chrome on Android ([4ef3e53](https://github.com/HeyPuter/puter/commit/4ef3e53de34f0097950a7e707ca2483863beafb5)) * Throw an error when readdir is called on a non-directory ([46eb4ed](https://github.com/HeyPuter/puter/commit/46eb4ed2b96c235e10e15645a30d2f192a1af0de)) * type error in puter-site ([d96f924](https://github.com/HeyPuter/puter/commit/d96f924cad7a13ea6e9084bb0ebb79ecc5fcb8a3)) * ui color input attributes ([d9c4fbb](https://github.com/HeyPuter/puter/commit/d9c4fbbd1dcce12ee05ee33652a5fa518196463d)) * **ui:** improve Component base class ([f8780d0](https://github.com/HeyPuter/puter/commit/f8780d032b10138851c22af53b8610c578139acc)) * update email share object ([9033f6f](https://github.com/HeyPuter/puter/commit/9033f6f8c74ef8739294d640ac1c7eba95519bbd)) * update PD alert custom details ([2f16322](https://github.com/HeyPuter/puter/commit/2f163221bdde09425cae11ef7f8e4eb0b10c7103)) * update test kernel ([55c609b](https://github.com/HeyPuter/puter/commit/55c609b3fec4ef018febc6e88c44a6277960d728)) * validate size metadata ([2008db0](https://github.com/HeyPuter/puter/commit/2008db08524259264a0c8186a34fc75d7a133f5f))
## 2.3.0 (2024-05-23) ### Features * add /healthcheck endpoint ([c166560](https://github.com/HeyPuter/puter/commit/c166560ff4ab5a453d3ec4f97326c995deb7f522)) * Add command names to phoenix tab-completion ([cf0eee1](https://github.com/HeyPuter/puter/commit/cf0eee1fa35328e05aefc8a425b5977efe5f4ec9)) * add option to change desktop background to default ([03f05f3](https://github.com/HeyPuter/puter/commit/03f05f316f11e8afe5fcee40b2b80a0de5e6826f)) * allow apps to add a menubar via puter.js ([331d9e7](https://github.com/HeyPuter/puter/commit/331d9e75428ec7609394f59b1755374c7340f83e)) * Allow querying puter-apps driver by partial app names ([dc5b010](https://github.com/HeyPuter/puter/commit/dc5b010d0913d2151b4851f8da5df72d2c8f42e7)) * Display upload errors in UIWindowProgress dialog ([edebbee](https://github.com/HeyPuter/puter/commit/edebbee9e7e9efbb33bf709b637c103be40d15a8)) * Implement 'Like' predicate in entity storage ([a854a0d](https://github.com/HeyPuter/puter/commit/a854a0dc0aa79a31695db833184c5ca3698632a9)) * improve password recovery experience ([04432df](https://github.com/HeyPuter/puter/commit/04432df5540811710ce1cc47ce6c136e5453bccb)) * **security:** add ip rate limiting ([ccf1afc](https://github.com/HeyPuter/puter/commit/ccf1afc93c24ee7f9a126216209a185d6b4d9fe4)) * Show "Deleting /foo" in progress window when deleting files ([f07c13a](https://github.com/HeyPuter/puter/commit/f07c13a50cee790eec44bce2f6e56fbcbf73f9b0)) ### Bug Fixes * Add missing file extension to 0009_app-prefix-fix.sql in DB init ([a8160a8](https://github.com/HeyPuter/puter/commit/a8160a8cdcdd6aff98728a6f1643d93386e6bb5a)) * Add missing TextEncoder to PTT ([8d4a1e0](https://github.com/HeyPuter/puter/commit/8d4a1e0ed3872e2c82b9e4be9b6d8b359e9cea09)) * Correct APIError imports ([062e23b](https://github.com/HeyPuter/puter/commit/062e23b5c9673db1f8b0ff0469289d52dd1e3f99)) * Correct grep output when asking for line numbers ([c8a20ca](https://github.com/HeyPuter/puter/commit/c8a20cadbfd539d185d32f4558916825fcf265ba)) * Correct inverted instanceof check in SignalReader.read() ([d4c2b49](https://github.com/HeyPuter/puter/commit/d4c2b492ef4864804776d3cb7d24797fdc536886)) * Correct variables used in errors in sign.js ([fa7c6be](https://github.com/HeyPuter/puter/commit/fa7c6bee9699527028be0ae9759155bc67c52324)) * Eliminates duplicate translation keys ([5800350](https://github.com/HeyPuter/puter/commit/5800350b253994dea410afff64e3df2a171e7775)) * fix error handling for outdated node versions ([4c1d5a4](https://github.com/HeyPuter/puter/commit/4c1d5a4b6d009ce075897d499d3517219bd745a4)) * Fix phoenix app prefix and TokenService test ([afb9d86](https://github.com/HeyPuter/puter/commit/afb9d866b5091058711db931cde904947e661c15)) * increase QR code size ([d2de46e](https://github.com/HeyPuter/puter/commit/d2de46edfbc05d132d5c929f6935b82515fbbda0)) * Make PathCommandProvider reject queries with path separators ([d733119](https://github.com/HeyPuter/puter/commit/d73311945610417a1ebc7bb0723ced0a599594b4)) * Make url variable accessible to all users of it ([2f30ae7](https://github.com/HeyPuter/puter/commit/2f30ae7a825adcd8da95888c38fe39c34acee0ff)) * Only run Component initialization functions once ([5b43358](https://github.com/HeyPuter/puter/commit/5b43358219402bee3eadf4a0f184a4b924d3293b)) * Parse octal echo escapes ([6ad8f5e](https://github.com/HeyPuter/puter/commit/6ad8f5e06abd050d319271f818d72debf5bc8e44)) * reduce token lengths ([5a76bad](https://github.com/HeyPuter/puter/commit/5a76bad28dfd8ec89a309941e410a54927fae22d)) * reliability issue :bug: ([1d546d9](https://github.com/HeyPuter/puter/commit/1d546d9ef70ef9066ad5838e9782ae330d289f29)) * Remove null or duplicate app entries from suggest_app_for_fsentry() ([6900233](https://github.com/HeyPuter/puter/commit/6900233c5aaa2d1a49f495e9f9a060796757a91e)) * **security:** always use application/octet-stream ([74e213a](https://github.com/HeyPuter/puter/commit/74e213a534dbf2844c8cebeee7eb59ec70de306e)) * **security:** Fix session revocation ([eb166a6](https://github.com/HeyPuter/puter/commit/eb166a67a9f0caf4fd77f9e27dc8209c2fc51f4c)) * **security:** Move token for socket.io to request body ([49b257e](https://github.com/HeyPuter/puter/commit/49b257ecffbb1e12090b86a67528a5ad09da69db)) * **security:** Prevent email enumeration ([ed70314](https://github.com/HeyPuter/puter/commit/ed703146863f896df76c98fad7127c6748c0ef9b)) * **security:** skip cache when checking old passwd ([7800ef6](https://github.com/HeyPuter/puter/commit/7800ef61029c8d1ba47491b4028a0cb972298725)) * **Terminal:** Accept input from Chrome on Android ([4ef3e53](https://github.com/HeyPuter/puter/commit/4ef3e53de34f0097950a7e707ca2483863beafb5)) * test release-please action [#3](https://github.com/HeyPuter/puter/issues/3) ([8fb0a66](https://github.com/HeyPuter/puter/commit/8fb0a66ef21921990e564e5f61c0e80e7f929dc7)) * test release-please action [#4](https://github.com/HeyPuter/puter/issues/4) ([f392de7](https://github.com/HeyPuter/puter/commit/f392de722a5232b622ed91b656a31cdc443c2e84)) * typographical error :bug: ([2949f71](https://github.com/HeyPuter/puter/commit/2949f71691eb0a258888c5d2a5bb496d2fe64a23)) * typographical errors :bug: ([4d30740](https://github.com/HeyPuter/puter/commit/4d30740198402cd1cc61b9ea4c45e006b69ec87e)) * Use correct variable for version number ([52d5299](https://github.com/HeyPuter/puter/commit/52d52993744dffa9f7f59a232da5df9077560731)) * use primary read in signup ([30f17ad](https://github.com/HeyPuter/puter/commit/30f17ade3a893d2283316e581836607e2029f9b9))
## [2.2.0](https://github.com/HeyPuter/puter/compare/v2.1.1...v2.2.0) (2024-04-23) ### Features * add /healthcheck endpoint ([c166560](https://github.com/HeyPuter/puter/commit/c166560ff4ab5a453d3ec4f97326c995deb7f522)) * allow apps to add a menubar via puter.js ([331d9e7](https://github.com/HeyPuter/puter/commit/331d9e75428ec7609394f59b1755374c7340f83e))
## [2.1.1](https://github.com/HeyPuter/puter/compare/v2.1.0...v2.1.1) (2024-04-22) ### Bug Fixes * test release-please action [#3](https://github.com/HeyPuter/puter/issues/3) ([8fb0a66](https://github.com/HeyPuter/puter/commit/8fb0a66ef21921990e564e5f61c0e80e7f929dc7)) * test release-please action [#4](https://github.com/HeyPuter/puter/issues/4) ([f392de7](https://github.com/HeyPuter/puter/commit/f392de722a5232b622ed91b656a31cdc443c2e84))