Commit Graph
5192 Commits
Author SHA1 Message Date
P3il4 779321d334 fix nano banana pro pricing and resolutions (#2501)
Docker Image CI / build-and-push-image (push) Has been cancelled
Maintain Release Merge PR / update-release-pr (push) Has been cancelled
release-please / release-please (push) Has been cancelled
test / test-backend (24.x) (push) Has been cancelled
test / API tests (node env, api-test) (24.x) (push) Has been cancelled
test / puterjs (node env, vitest) (24.x) (push) Has been cancelled
* fix nano banana pro pricing and resolutions

* move gemini resolution map into models.ts

* require gemini 3 model for specific resolution and price logic

* fix usageamount for mp models
2026-02-23 03:39:48 -05:00
samarthmishra46 0ee2ebd7b4 added keyboard shortcut in the setting for better ui navigation (#2484)
Docker Image CI / build-and-push-image (push) Has been cancelled
Maintain Release Merge PR / update-release-pr (push) Has been cancelled
release-please / release-please (push) Has been cancelled
test / test-backend (24.x) (push) Has been cancelled
test / API tests (node env, api-test) (24.x) (push) Has been cancelled
test / puterjs (node env, vitest) (24.x) (push) Has been cancelled
2026-02-22 18:31:15 -08:00
Eric Dubé 96be8707b8 Merge pull request #2526 from HeyPuter/eric/262L0_PUT-533
Docker Image CI / build-and-push-image (push) Has been cancelled
Maintain Release Merge PR / update-release-pr (push) Has been cancelled
release-please / release-please (push) Has been cancelled
test / test-backend (24.x) (push) Has been cancelled
test / API tests (node env, api-test) (24.x) (push) Has been cancelled
test / puterjs (node env, vitest) (24.x) (push) Has been cancelled
fix: bad copy with reference in UIItem
2026-02-21 20:19:59 -05:00
KernelDeimos 7ba40f8062 fix: bad copy with reference in UIItem
UIItem makes a recursive call when there are multiple matching elements
in the `options.appendTo` argument. When calling recursively, the
`appendTo` property of the `options` object is mutated to a specific
element before the call, which expects that each call to UIItem occurs
synchronously. UIItem was made asynchronous by
9d598f7965
which resulted in a bug causing duplicate item icons in one directory
window instead of one item icon in each directory window after a file
upload when multiple instances of a window at the same directory
location exist.

Resolves #2514
2026-02-21 20:14:08 -05:00
Neal Shah 1ed765cb86 Clarify expiration time unit in getReadURL.md (#2525)
Docker Image CI / build-and-push-image (push) Has been cancelled
Maintain Release Merge PR / update-release-pr (push) Has been cancelled
release-please / release-please (push) Has been cancelled
test / test-backend (24.x) (push) Has been cancelled
test / API tests (node env, api-test) (24.x) (push) Has been cancelled
test / puterjs (node env, vitest) (24.x) (push) Has been cancelled
Updated the documentation to specify that the expiration time is in milliseconds instead of seconds.
2026-02-21 04:15:27 -05:00
Daniel Salazar 9f87ccb460 fix: cleanup some app es and app service validation (#2523)
we saw some errors with icons not allowed when being objects, this likely user error, but this adds some validation to at least avoid nulls being flagged wrong
2026-02-21 00:10:55 -08:00
Daniel Salazar 3a89deaf02 fix: wrong icon for workers (#2524)
Docker Image CI / build-and-push-image (push) Has been cancelled
Maintain Release Merge PR / update-release-pr (push) Has been cancelled
release-please / release-please (push) Has been cancelled
test / test-backend (24.x) (push) Has been cancelled
test / API tests (node env, api-test) (24.x) (push) Has been cancelled
test / puterjs (node env, vitest) (24.x) (push) Has been cancelled
2026-02-20 19:20:18 -08:00
Daniel Salazar 3834571ab8 fix: don't call stat on each file in dir (#2522)
* fix: decrease metering service gloabl rate of change check

* fix: don't call stat on each file in dir
2026-02-20 19:07:16 -08:00
Daniel Salazar d418976ee4 perf: batching get_apps cache look ups (#2521)
should not be slow in any case, but this should help a bit more with speed in trade of more ram and cpu usage
2026-02-20 18:02:47 -08:00
Daniel Salazar 22c1cd8be4 lint: fix eslint indentation for switch cases (#2520)
also trying to preserve call indentations, but afraid its not exactly the same, but fairly close
2026-02-20 17:22:00 -08:00
Daniel Salazar 3b32b4a437 fix: don't await for cache writes (#2519)
* fix: allow healthcheck from other hosts

* fix: don't await for cache writes

we think some awaiting on redis writes was causing issues, we shouldn't need to await really, so removing now. will have optimistic caching for these

some style changes from a recently changed rule that seems to clash with prior one
2026-02-20 17:19:01 -08:00
Miika Kuisma 808b78c234 Fixed: puter.chat button has weird gradient when browser is dark mode (#2516)
Docker Image CI / build-and-push-image (push) Has been cancelled
Maintain Release Merge PR / update-release-pr (push) Has been cancelled
release-please / release-please (push) Has been cancelled
test / test-backend (24.x) (push) Has been cancelled
test / API tests (node env, api-test) (24.x) (push) Has been cancelled
test / puterjs (node env, vitest) (24.x) (push) Has been cancelled
Fixed: The gradient and progress bar on the usage details page is not very pleasant and looks inverted
Fixed: The billing card on the billing tab is still light mode
2026-02-19 19:43:20 -08:00
Eric Dubé 21185cdb3f Merge pull request #2460 from HeyPuter/eric/262A0_PUT-453
Login/Signup with OIDC

Wellp... this is not a rebase, this is merge. My hands were tied this time.
2026-02-19 22:39:44 -05:00
KernelDeimos ef0a665a5f fix(oidc): add code lost due to editing a .js
This code was previously lost because I edited `outcomeutil.js` instead
of `outcomeutil.ts`. We're not building into a `dist/` directory and
`tsc` has a most peculiar lack of generating a comment at the top of
output files stating something like "// GENERATED - DO NOT EDIT" as I've
seen from every other code generator or transpiler I've worked with.

This caused the bug with duplicate confirmed emails and "account not
found" during testing on the staging server.
2026-02-19 21:25:24 -05:00
Daniel Salazar b39bbe0a0a Merge remote-tracking branch 'origin/main' into eric/262A0_PUT-453 2026-02-19 16:45:10 -08:00
Daniel Salazar 2e7765004c fix: redis cache deletions (#2518) 2026-02-19 16:43:56 -08:00
Daniel Salazar 0cca9d5535 fix : import 2026-02-19 16:08:48 -08:00
KernelDeimos 1be3eca335 fix: rate limits for oidc too extreme 2026-02-19 19:00:01 -05:00
Daniel Salazar 7493573c61 Merge remote-tracking branch 'origin/main' into eric/262A0_PUT-453 2026-02-19 15:28:14 -08:00
Daniel Salazar ec412eaff6 feat: cleanup cache invalidation and pull out keys to be easily used in other places that need the same cache (#2515)
fix: tests
2026-02-19 15:07:04 -08:00
KernelDeimos 0112f097db style(oidc): if instead of return with ternary expression 2026-02-19 17:18:48 -05:00
KernelDeimos 4e01608e4a dev: remove guarded debug log 2026-02-19 17:02:33 -05:00
KernelDeimos b3b32980db clean(oidc): remove jwt remap in ESM code 2026-02-19 16:32:41 -05:00
KernelDeimos f3bf40a3c0 style(oidc): rename httpPowers to hasHttpOnlyCookie 2026-02-19 16:29:19 -05:00
KernelDeimos 4de6d38604 style(oidc): make this a private method 2026-02-19 16:23:40 -05:00
KernelDeimos 4c518830ea clean(oidc): remove "ghost files" 2026-02-19 16:23:40 -05:00
KernelDeimos b5d719e110 lint: [+] no-useless-computed-key:error 2026-02-19 16:23:38 -05:00
KernelDeimos c97a499bc9 style(oidc): private members in OIDCService 2026-02-19 16:21:43 -05:00
KernelDeimos 16f2f5bf5f style(oidc): address PR rev on oidcCallbackPreamble_ 2026-02-19 16:21:42 -05:00
KernelDeimos 720277c9bd style(oidc): migrate cjs to esm 2026-02-19 16:21:42 -05:00
KernelDeimos 7ca0fe2ac4 clean: remove commented code 2026-02-19 16:21:42 -05:00
KernelDeimos ccecf0a86e fix(oidc): remove generated source file
I forgot that our transpile tooling requires manually gitignoring
individual javascript files because we don't actually create a full
generated build of backend.
2026-02-19 16:21:42 -05:00
KernelDeimos 8d18ee527c refactor(oidc): address review comment
https://github.com/HeyPuter/puter/pull/2460/changes#r2819861213
2026-02-19 16:21:42 -05:00
KernelDeimos 7858f5ba3e fix(oidc): add error log for QR login flow 2026-02-19 16:21:42 -05:00
KernelDeimos a2b9193287 clean(oidc): remove temporary debugging logs
These logs were temporary. I have a pre-merge TODO list item that says
to remove these. They were caught in review so I'm removing them early.
2026-02-19 16:21:42 -05:00
KernelDeimos d0c2e9b7fc fix(oidc): rate-limit identity for username 2026-02-19 16:21:41 -05:00
KernelDeimos 2b802143fc fix(oidc): add missing awaits 2026-02-19 16:21:41 -05:00
KernelDeimos 42d3f9e816 fix(oidc): http-only cookie sync for switch user 2026-02-19 16:21:41 -05:00
KernelDeimos b5a3323811 fix: incorrect parameters in UIWindowChangeEmail 2026-02-19 16:21:41 -05:00
KernelDeimos 2cdc211b29 fix: incorrect parameters in UIWindowChangePassword 2026-02-19 16:21:41 -05:00
KernelDeimos 298f1cdb42 fix: incorrect accessor reference in OIDCService
During development a property named `success` was inverted to a property
named `failed` which resulted in an incorrect accessor reference with a
referring piece of code that wasn't updated. This is type error.
2026-02-19 16:21:41 -05:00
KernelDeimos e145f5dcc3 dev(oidc): rewrite "Disable 2FA" window
In lieu of knowing exactly what happened (probably more than one thing),
the "Disable 2FA" window was very broken. It was blank, but then after
fixing that all the actions were broken. There wasn't much value in
keeping the implementation though, because it was already inconsistent
with other flows - instead of fixing what was there it made more sense
to re-use the pattern of UIWindowChangeUsername and UIWindowChangeEmail,
creating UIWindowDisable2FA. After testing this, it works much better
(it actaully works), but there is a caching issue unrelated to the UI
implementation.
2026-02-19 16:21:39 -05:00
KernelDeimos 4d49f5dfa6 fix: allow html property in UIComponentWindow
A component was removed and an html property was passed to
UIComponentWindow. This makes sense because UIWindow accepts an html
property, so rather than update the calling code it made more sense to
update UIComponentWindow to be more intuitive.
2026-02-19 16:13:45 -05:00
KernelDeimos 8ecd6cd13e dev(oidc): confirm email by default for OIDC 2026-02-19 16:13:45 -05:00
KernelDeimos 21e959bbaa dev(oidc): remove button to manually invoke re-auth
This button was useful during manual testing, but the re-authentication
flow for protected endpoints with OIDC users reliably invokes the popup,
so this is no longer necessary. Removing this button reduces clutter on
these screens and might make the flow easier for users to understand.
2026-02-19 16:13:44 -05:00
KernelDeimos e2068e7b9c fix(oidc): fix QR code login issues caused by OIDC
In implementing OIDC it became necessary to introduce the separation of
"GUI Tokens" and "Session Tokens". This breaks QR login because Puter
does not set the HTTP-only session cookie when logging in with this
flow.

Add a middelware to WebServerService to detect QR Code logins and set
the appropriate HTTP-only session cookie.
2026-02-19 16:13:44 -05:00
KernelDeimos 8923bdac95 refactor(oidc): update UIWindowChangePassword
Use the openRevalidatePopup function in util/openid.js within
UIWindowChangePassword instead of re-implementing that functionality.
Additionally, normalize some of the code so it is more similar to
UIWindowChangeUsername and UIWindowChangePassword.
2026-02-19 16:13:44 -05:00
KernelDeimos df1f5c44cc refactor(oidc): extract common (email + username)
There is common functionality between all of the GUI code for actions on
protected endpoints. Update UIWindowChangeEmail and
UIWindowChangeUsername to both use a new utility function called
openRevalidatePopup in util/openid.js.

This file is called `openid.js` instead of `oidc.js` so that it's more
easily recognized by contributors who might be more familiar with the
name of the organization than the name of the standard itself.

After these changes, UIWindowChangePassword and the "disable 2FA" button
in UITabSecurity still need to be updated to use `util/openid.js`
instead of duplicating this functionality.

The justification for following DRY here instead of leaving the
implementation as-is is because these flows are particularly error
prone and will be difficult to maintain without this consistency. Some
subtle bugs I previously wasn't aware of got fixed in the process.
2026-02-19 16:13:44 -05:00
KernelDeimos 0b8eafa128 dev(oidc): re-auth remaining protected endpoints
The OIDC re-authentication flow, which replaces password confirmation
for accounts that were created with OIDC and do not have a password, was
previously added to "change username" for manual testing of the
backend-side implementation. Add the re-authentication flow to the
remaining user-protected endpoints, which are:
- change password
- change email
- disable two-factor authentication

When using "change password" on a new account created via OIDC, the
account changes state to a passworded account which causes these flows
to use password confirmation as before instead of re-authentication.
2026-02-19 16:13:41 -05:00
KernelDeimos 142d745f0a fix: "Popup Closed" message, + excess logs 2026-02-19 16:10:22 -05:00