What's Changed
- fix: add beta flag to kv share docs to match kvhandle beta status by @Salazareo in https://github.com/HeyPuter/puter/pull/4337
- fix: app token by @Salazareo in https://github.com/HeyPuter/puter/pull/4338
- fix(dashboard): eighth adversarial review of Files — bugs, UX, a11y, perf by @jelveh in https://github.com/HeyPuter/puter/pull/4330
- feat(dashboard): publish websites and workers from Files in dashboard dialogs by @jelveh in https://github.com/HeyPuter/puter/pull/4342
- fix(hosting): disconnect the directory when update gets a null root_dir by @jelveh in https://github.com/HeyPuter/puter/pull/4345
- docs(fs): drop batch-write fallback notes from puter.fs.upload() by @reynaldichernando in https://github.com/HeyPuter/puter/pull/4332
- KV share handles: hardening, higher limits, batch share, uninstall data deletion, account-deletion cleanup by @Salazareo in https://github.com/HeyPuter/puter/pull/4344
- fix(ai): keep replayed tool-call arguments serialized once by @404oops in https://github.com/HeyPuter/puter/pull/4324
- Codex/kimi k3 1 pro by @ProgrammerIn-wonderland in https://github.com/HeyPuter/puter/pull/4315
- feat(ai): add GPT-6.1 Terra by @404oops in https://github.com/HeyPuter/puter/pull/4350
- fix(dashboard): ninth adversarial review of Files — bugs, UX, a11y, perf by @jelveh in https://github.com/HeyPuter/puter/pull/4356
- perf(permission): read a large holder's user-to-user grants per permission by @Salazareo in https://github.com/HeyPuter/puter/pull/4349
- fix(apps): keep app provenance and permission caches consistent by @Salazareo in https://github.com/HeyPuter/puter/pull/4357
- perf(database): defer primary fallback for user lookups by @Salazareo in https://github.com/HeyPuter/puter/pull/4359
- perf(auth): coalesce session activity writes across processes by @Salazareo in https://github.com/HeyPuter/puter/pull/4360
- fix(cache): widen tombstone window to 5s by @Salazareo in https://github.com/HeyPuter/puter/pull/4381
- fix(hosting): track trashed roots and cached backing misses by @Salazareo in https://github.com/HeyPuter/puter/pull/4363
- fix(fs): preserve paging and file read-copy contracts by @Salazareo in https://github.com/HeyPuter/puter/pull/4367
- perf(permission): resolve default grants through full-access issuers by @Salazareo in https://github.com/HeyPuter/puter/pull/4361
- fix(hosting): use the current authenticated visitor for asset billing by @Salazareo in https://github.com/HeyPuter/puter/pull/4364
- fix(fs): preserve stored path spelling and app ACL identity by @Salazareo in https://github.com/HeyPuter/puter/pull/4368
- fix(fs): remove app data requested during uninstall by @Salazareo in https://github.com/HeyPuter/puter/pull/4369
- fix(apps): compare normalized index URLs before update checks by @Salazareo in https://github.com/HeyPuter/puter/pull/4370
- fix(sharing): preserve team grants and scope link invalidation by @Salazareo in https://github.com/HeyPuter/puter/pull/4371
- fix(hosting): honor user-granted subdomain permissions by @Salazareo in https://github.com/HeyPuter/puter/pull/4372
- perf(dashboard): share launch-app requests and size recent icons by @Salazareo in https://github.com/HeyPuter/puter/pull/4373
- fix(auth): support recovery codes when disabling two-factor auth by @Salazareo in https://github.com/HeyPuter/puter/pull/4374
- fix(puter-js): coordinate sign-in callbacks and filesystem sockets by @Salazareo in https://github.com/HeyPuter/puter/pull/4375
- fix(puter-js): replay requests with fresh body credentials by @Salazareo in https://github.com/HeyPuter/puter/pull/4376
- fix(ui): reject failed desktop IPC requests by @Salazareo in https://github.com/HeyPuter/puter/pull/4378
- perf(thumbnails): keep read URLs stable within an hour by @Salazareo in https://github.com/HeyPuter/puter/pull/4379
- chore(deps): bump smtp-server from 3.19.23 to 3.19.24 by @dependabot[bot] in https://github.com/HeyPuter/puter/pull/4383
- chore(deps
