Commit Graph

1154 Commits

Author SHA1 Message Date
Daniel Salazar 76f5a26d84 fix: issue with tokens not being received by puter app (#2713)
Docker Image CI / build-and-push-image (push) Has been cancelled
Maintain Release Merge PR / update-release-pr (push) Has been cancelled
Notify HeyPuter / notify (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-03-23 17:37:54 -07:00
jelveh a4be42a390 Exclude login/signup from temp user creation
Prevent creating temporary users on unauthenticated first visits when the current action is the login or signup flow. The initgui else-if was expanded to include explicit checks for action !== 'login' and action !== 'signup', avoiding interference with explicit authentication routes and Turnstile challenges.
2026-03-21 19:15:01 -07:00
jelveh f89079f907 Fix login form layout and window options 2026-03-21 18:39:38 -07:00
jelveh c434af7c71 Center auth forms; add Google icon; set cover_page 2026-03-21 18:14:46 -07:00
jelveh 4a4a92ccaf Simplify plan name localization in dashboard
Docker Image CI / build-and-push-image (push) Has been cancelled
Maintain Release Merge PR / update-release-pr (push) Has been cancelled
Notify HeyPuter / notify (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
Use a single expression to derive the plan key (offering.name or 'free') and pass it to i18n when updating .bento-plan-name. This removes the previous ternary and duplicates, allowing dynamic offering names to be localized consistently.
2026-03-19 18:28:42 -07:00
jelveh a6b18ff844 Add basic/professional/business/free translations
Add missing English translations for plan tiers (free, basic, professional, business) to src/gui/src/i18n/translations/en.js and perform a minor formatting cleanup near billing messages to ensure keys are available for UI display.
2026-03-19 18:23:25 -07:00
jelveh 815b0424a3 Use subscription.offering.name for plan display
Update TabHome to read the plan name from subscription.offering.name instead of subscription.plan_name. This adapts to the updated subscription object shape while keeping the fallback to the 'pro' translation and the 'free' label when no active subscription exists.
2026-03-19 17:16:50 -07:00
Charlie Tonneslan 3628cf4909 fix(gui): account for iOS safe area inset on taskbar/dock (#2682)
The taskbar uses position:fixed with bottom:5px, which gets hidden
behind the iOS Safari bottom toolbar on devices with home indicators.

Use env(safe-area-inset-bottom) to push the dock above the safe area.
The viewport-fit=cover meta tag is already present in initgui.js.

Fixes #2517
2026-03-19 16:56:43 -07:00
Daniel Salazar b87f4988e1 fix: socket io sockets (#2696) 2026-03-19 14:32:20 -07:00
Daniel Salazar 5e2c7e0495 Revert "fix: tighten cors logic for socket io (#2688)" (#2694)
This reverts commit a94620de49.
2026-03-19 12:24:14 -07:00
Daniel Salazar a94620de49 fix: tighten cors logic for socket io (#2688)
* fix: tighten up cors for socket io

* fix: allow socket io to push to rooms in redis

* fix: various socket io issues to improve cross session stability
2026-03-19 12:08:24 -07:00
Daniel Salazar bb733e72c8 fix: websocket credentials (#2687)
Docker Image CI / build-and-push-image (push) Has been cancelled
Maintain Release Merge PR / update-release-pr (push) Has been cancelled
Notify HeyPuter / notify (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: websocket syncing on redis

* fix: websocket syncing on redis
2026-03-18 16:09:05 -07:00
jelveh 2bafa03a74 Add 'Add to Desktop' English translation
Introduce a new i18n key `add_to_desktop` with value 'Add to Desktop' to the English translations file. This provides a label for UI actions that add items or apps to the desktop.
2026-03-17 13:52:26 -07:00
Eric Dubé 814791872f Manual package updates, npm audit --force, etc (#2669)
* chore: upgrade git-date (used for release notes generator)

* chore: update vitest, vitest plugins, and svgo

* chore: run `npm audit fix`

* chore: run `npm audit --force`

* meta: empty commit to run git tests

* fix: tests gone because of a... syntax error?

I question GitHub's judgement of handling a syntax error in the file
that defines tests to run on PRs by pretending everything is fine and
passing all PRs. That to me seems like the worst possible way to handle
that. I think they should have done it not like that.
2026-03-17 12:43:17 -07:00
Miika Kuisma c325eed3af darkmode fix 2026-03-17 09:49:26 +02:00
Daniel Salazar 573d5a3ff4 fix: limit referralCodeService (#2670)
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
* fix: limit referralCodeService

* fix: ECMAP unlink
2026-03-16 17:33:28 -07:00
jelveh 1052d4d51d Avoid reload when embedded in popup
Set reload_on_success explicitly when invoking UIWindowLogin so the UI does not trigger a page reload if the GUI is embedded in a popup. Previously the call forwarded a reload_on_success variable; now it uses !window.embedded_in_popup to prevent unwanted reloads in popup embeds.
2026-03-10 18:10:23 -07:00
ProgrammerIn-wonderland 14f218ef72 fix assets_url bug in GUI buildstep (#2638)
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 assets_url bug in GUI buildstep

* add await
2026-03-10 13:55:06 -07:00
ProgrammerIn-wonderland 26a7ae9d4c s/mv/cp/ for gui buildstep (#2637) 2026-03-10 13:47:40 -07:00
ProgrammerIn-wonderland 031a3da7f1 s/icons/assets/ for building GUI (#2636) 2026-03-10 13:38:32 -07:00
ProgrammerIn-wonderland c297715875 add support for building with custom icons (#2635) 2026-03-10 13:21:05 -07:00
Eric Dubé cc70e49472 Fix missing password entry (#2632)
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
* Revert "dev(oidc): hide unnecessary div"

This reverts commit 468558f8dc.

* fix(oidc): remove the "You will be asked to..." box properly

Earlier this was removed with a simple `display: none` in CSS to avoid
changing any logic, and the reason for that was OIDC had already gone
through significant testing, re-testing, and bug fixes; it became clear
that changes to the auth flow are fragile and the test surface is very
large. Now unfortunately what seemed like a smart decision to fix a
cosmetic issue with CSS instead of updating logic actually wound up
breaking the change username/password flow for non-OIDC users. This
commit removes this box properly and hopefully does not introduce a
subsequent terrible bug. Why would it? There's absolutely no reason I
can see that it would, but it would seem that nothing is safe, not even
CSS.

* temp: disable LRU cache of homepage for now

This is working fine but we're disabling it temporarily so we can test
specific future changes in isolation without managing two separate
branches.

* fix: put verify password text in the box

There's always something...
2026-03-10 03:08:29 -04:00
ProgrammerIn-wonderland 9d82f333e5 revert puterjs gui ordering (#2631)
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-03-09 21:41:53 -07:00
ProgrammerIn-wonderland b687ba0456 Ns/configurable gui bundle (#2629)
* add configurable GUI bundle

* also support CSS and puterjs custom location

* simplify ternary

* used bundled instead of use_bundled_gui

* Quote the string

* close script tag
2026-03-09 19:08:24 -07:00
Miika Kuisma 8e794faf06 Merge pull request #2595 from HeyPuter/miika/put-611
Fix border colors in Settings panel
2026-03-06 10:03:25 +02:00
ProgrammerIn-wonderland 9a6178e66f Make credentialless false by default 2026-03-04 20:54:04 -05:00
jelveh d802d12a05 Add UI notify API and notification handling 2026-03-04 15:29:50 -08:00
Miika Kuisma f887c56e61 Restored previously used border colors 2026-03-04 10:32:39 +02:00
jelveh 6248a89a59 Add autoplay to iframe allow list
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-03-03 22:20:31 -08:00
KernelDeimos 468558f8dc dev(oidc): hide unnecessary div
I decided not to remove it because I really don't want to introduce a
bug right now while everything is finally working smoothly... I'm making
a note to properly clean this up later when it can be more easily tested
in isolation from everything else.
2026-03-03 23:08:05 -05:00
jelveh 80cabca7ad Add Google SVG icon to sign-in button 2026-03-03 19:31:39 -08:00
Daniel Salazar 911c163fc8 feat: private app config to use app urls + app routing (#2587)
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
* feat: private app config to use app urls

* fix: launch app

* fix: cookie origin
2026-03-03 18:34:33 -08:00
Miika Kuisma c0583a9095 Fix: When a maximized window gets resized, Puter apps should be resized as well (#2498)
* Fix: When a maximized window gets resized, Puter apps should be resized as well

* Fix maximixed selector to match any window with data-is_maximized (not just apps)
2026-03-02 10:48:47 -08:00
jelveh 43b313972c Revert "Permission modal now displays application's icon and title. Read and write access requests have their own text strings. (#2499)"
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
This reverts commit 0f33e49335.
2026-03-01 21:59:10 -08:00
Miika Kuisma 0f33e49335 Permission modal now displays application's icon and title. Read and write access requests have their own text strings. (#2499) 2026-03-01 20:02:20 -08:00
Eric Dubé f2926c948e fix(oidc): bring "Add Existing User" to working state (#2572)
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-28 16:39:20 -05:00
Eric Dubé 2cc8cb22f8 [OIDC] allow user deletion for accounts without a password (#2567)
* fix: user deletion for OIDC accounts

* clean(backend): update copied license header

* clean(backend): replace previously removed comments

* fix: double-encoding
2026-02-27 18:55:12 -05:00
Eric Dubé 9d4e990b92 dev(oidc): switch login/signup flows where applicable (#2550)
For convenience, switch flow if the user's action doesn't match the
system state when signing up or logging in with Google:
- If the user chooses "signup" but they already have an account, log
  them into that account.
- If the user chooses "login" but they do not have an account yet,
  create an account where their authenticated email address.
2026-02-27 18:30:17 -05:00
Eric Dubé c4346df24e fix(gui): defer login event until listener registered (#2547)
Fixes an error introduced in 4b8c46e where the page load is attempted to
be triggered by dispatching the login event, however the listener which
handles loading the page has not yet been registered.
2026-02-25 14:22:06 -05:00
jelveh 71f7698a46 Await update_auth_data to avoid races
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-24 18:33:30 -08:00
jelveh 0515b65138 Await update_auth_data to avoid race conditions 2026-02-24 18:24:33 -08:00
Eric Dubé ce3c9bff34 Fix OIDC in popups (#2539)
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(oidc): OIDC login with puter.js popup auth

Bring login through OpenID Connect to a working state in the puter.js
popup authentication flow. This allows OIDC login to work with
third-party websites and apps.

* fix(oidc): error handling, use const (initgui)

Remove a condition that can be handled by the control flow logic
already implied by a try...catch, which also allows a variable to become
const, and log errors in this catch block.

* doc(oidc): make this comment a little more helpful

* clean(oidc): remove out-of-scope puter.js change

Remove a change that gives explicit overrides of the `defaultGUIOrigin`
paramter precedence over other sources of this value. This was necessary
when testing but might not be the correct fix for this issue.
2026-02-24 17:17:18 -05:00
Neal Shah 267713481c fix desktop gui error handling for workers (#2538) 2026-02-24 16:32:14 -05:00
jelveh eaaeb4e6a4 Await update_auth_data before continuing
Await the window.update_auth_data call in initgui.js so subsequent logic (such as popup spinner hiding and timing) runs after authentication data has been updated. This prevents race conditions where later UI code executes before auth state is fully applied.
2026-02-23 18:19:35 -08:00
jelveh 8f4a38ae0b Load user preferences with error handling
Read user preference keys (show_hidden_files, language, clock_visible) into local variables with try/catch and sensible defaults, instead of fetching/parsing them inline. This prevents exceptions from missing or malformed KV entries and centralizes parsing for show_hidden_files. Also remove an extra blank line in initgui.js's AJAX complete callback.
2026-02-23 16:52:56 -08:00
Eric Dubé 4554331eff dev(oidc): redirect to login/signup on error (#2531)
Redirect to the login or signup page when there is an error signing in
or creating an account using OIDC, instead of displaying the error on a
new page. Alter the flow in cases where the suggested action is not the
same as the initial action taken by the user (based on the error case).
2026-02-23 17:56:38 -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
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