Commit Graph
5333 Commits
Author SHA1 Message Date
Daniel Salazar c2e77d3503 fix: broadcast pubsub + cleanup old code (#2695) 2026-03-19 13:13:01 -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
ProgrammerIn-wonderland ff126d12b1 turn metering support (#2689)
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-18 23:26:00 -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
ProgrammerIn-wonderland 4fb0977105 Change turn customIdentifier fully (#2685)
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-18 00:36:55 -07:00
ProgrammerIn-wonderland 6a8be1505d change turn customIdentifier seperator (#2684) 2026-03-17 23:59:57 -07:00
ProgrammerIn-wonderland 817c30739b change capitalization of inviteCode (#2683) 2026-03-17 23:40:38 -07:00
velzieandProgrammerIn-wonderland 8d38e07e98 feat: add puter.peer to sdk, create PeerService in backend (#2664)
* feat: add puter.peer to sdk, create PeerService in backend

* cloudflare turn, typedefs, fallback ice, bugfixes

* minr tweak

* restrict peerservice to api.puter.com, make customIndentifier more detailed

---------

Co-authored-by: ProgrammerIn-wonderland <30693865+ProgrammerIn-wonderland@users.noreply.github.com>
2026-03-17 23:08:44 -07:00
Daniel Salazar 9347644f81 feat: redis pubsub for multiple connected clients in broadcast service and webhook fixes (#2681)
* debug: logs for webhook broadcasts

* fix: broadcast webhook calls

* fix: add error log with body

* fix: fetch form

* feat: redis pubsub for multiple connected clients in broadcast service

* test: add pubsub tests
2026-03-17 18:45:23 -07:00
Eric Dubé ef93ed4572 fix: change_email and user-protected endpoints (#2680)
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
Update check for suspended users on change_emeail and user-protected
endpoints. The `change_email` endpoint isn't using the auth middleware
because it infers from the token that was passed - this means it needs
explicit logic to check suspended users; before suspended users were
able to complete a a flow for changing their username if they already
started it before being suspended.

Update user-protected endpoints and configurable_auth so endpoints that
make sensitive account changes do not rely on cached information about a
user.
2026-03-17 14:54:29 -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
Daniel Salazar e6d125e17c feat: notify prod (#2679) 2026-03-17 13:48:57 -07:00
Daniel Salazar 6352bc6a9a fix: webhook message to peer (#2678) 2026-03-17 13:33:01 -07:00
Daniel Salazar 8118582496 fix: add console log to webhook for debugging (#2677) 2026-03-17 13:07:06 -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
ProgrammerIn-wonderland c7a481118f add reasoning to claude models (#2676) 2026-03-17 12:26:53 -07:00
Miika Kuisma 53f8d67679 Merge pull request #2675 from HeyPuter/darkmode-fix
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
darkmode fix
2026-03-17 09:50:34 +02:00
Miika Kuisma c325eed3af darkmode fix 2026-03-17 09:49:26 +02:00
Daniel Salazar c96bb9acb1 feat: add hook on merge for deployments (#2673)
* fix: tests

* fix: add logging for webhook events for debug
2026-03-16 22:34:39 -07: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
ProgrammerIn-wonderland 55dd9841c5 add x-puter-no-auth option to puter.workers.exec (#2668) 2026-03-16 10:59:11 -07:00
Eric Dubé 0af0eb127e chore: update package-lock.json (#2667)
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
2026-03-16 08:56:34 -07:00
ProgrammerIn-wonderland ce9c8341d1 Interpret mpga as mp3 for OpenAI transcriptions (#2666)
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
2026-03-15 22:01:26 -07:00
Shruc b3787ac0e0 fix flash image quality level (#2665)
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
2026-03-15 16:47:14 -07:00
Shruc 89904ca563 fix coercion service not selecting correct conversion path (#2660)
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
2026-03-13 17:37:21 -07:00
Nariman Jelveh e28a5b01d8 Use ClickHouse for app open stats (#2662)
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
When a global ClickHouse client is available, run two parallel ClickHouse queries (JSONEachRow) to fetch per-app open_count and distinct user_count, parse results into Maps (parsing counts as integers). If ClickHouse is not present, fall back to the original MySQL aggregate queries. Apps list still comes from MySQL as before. This enables using ClickHouse for analytics performance while preserving the existing behavior as a fallback.
2026-03-13 14:46:44 -07:00
Eric Dubé 9506c537ab fix(security): shell escape paths in HostDiskUsageService; null-prototype objects in batch parser (#2659)
* fix(core): escape path in HostDiskUsageService

* fix: always use null prototypes on operation specs

* fix: update test.yml so that tests work again
2026-03-13 14:17:36 -07:00
Daniel Salazar 9169114e60 fix: tests oom breaking (#2661)
* fix: healthcheck route visible in subdomains

* fix: tests oom breaking

* fix: don't spawn many dynalites

* fix: possible loop when merging self owned apps
2026-03-13 13:41:07 -07:00
ProgrammerIn-wonderland 87672802fe mute puterjs error (#2657)
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-12 11:17:59 -07:00
Daniel Salazar 5505da027d fix: app merging (#2654)
* fix: only set authToken if present for apps

* fix: keep bootstrap in url for app to do whatever

* fix: tests

* fix: app merging

just cleaning up how merging subdomain and canon apps work, namely, persisting data better and making sure its temp alias are deleted when appropriate

* fix: tests oom
2026-03-12 10:18:02 -07:00
Eric Dubé d086e4961c feat(puter-js): add Batch builder class (#2651)
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
Usage example:
  const b = new puter.fs.Batch();
  b.move('file_1.txt', '~/Trash');
  b.move('file_2.txt', '~/Trash');
  await b.end();

Chaining is also supported:
  await new puter.fs.Batch()
    .move('file_1.txt', '~/Trash')
    .move('file_2.txt', '~/Trash')
    .end();

This commit provides `move` and `delete` methods for Batch.
2026-03-11 22:33:51 -04:00
ProgrammerIn-wonderland 721af2a9b1 Ns/worker global public fetch (#2652)
* add global_fetch_strictly_public compatibility flag

* add comma
2026-03-11 19:27:28 -07:00
Daniel Salazar fc273d436d feat: scope index_url uniqueness to hosted domains (#2644)
* feat: scope index_url uniqueness to hosted domains

Allows duplicate non-hosted origins while enforcing hosted-origin uniqueness and joining new app creation into an existing owner-matching hosted app UUID.

Restricts hosted index_url joins to unowned conflict apps, persists old-to-canonical app UID aliases in kvstore via sudo, and resolves aliases on read with parallel lookup to minimize latency.

* fix: allow merge for owned origin bootstrap apps

Restores hosted update/create merge when the conflicting app is the same-user auto-created origin bootstrap app while still blocking merges into normal same-owner apps to avoid multi-join behavior.
2026-03-11 18:21:09 -07:00
Eric Dubé 9a78b6bffa fix(fs) optimize stat operation. (#2649) 2026-03-11 20:18:42 -04:00
Eric Dubé 7ff1ecfcd7 dev(fs): fetch subdomains using join in readdir (#2647)
* dev(fs): fetch subdomains using join in readdir

* fix(fs): handle readdir of root directory
2026-03-11 20:06:13 -04:00
Daniel Salazar 34fdd94767 feat: phase 3 public hosted actor cookie bootstrap (#2626)
Adds non-blocking public hosted actor cookie mint/verify flow for non-private apps, sets actor context when available, and includes focused middleware/auth tests for security and performance-sensitive paths.
2026-03-11 16:15:03 -07:00
Daniel Salazar a4aea52322 fix: keep bootstrap in url for app to do whatever (#2648)
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: only set authToken if present for apps

* fix: keep bootstrap in url for app to do whatever
2026-03-11 15:27:30 -07:00
Eric Dubé 8c9c476969 dev(extension): [+] test-actions (#2575)
Adds an extension that presents an unauthenticated page for testing
various actions of Puter when it's under development. This action is
only meant to be used in development and is not loaded by default.
2026-03-11 14:20:03 -04:00
Eric Dubé 58738ebbb1 dev: get system user from SUService in AppIconService (#2601)
* dev: get system user from SUService in AppIconService

* fix: accidental addition
2026-03-11 14:18:45 -04:00
Eric Dubé e56d8f6889 dev(fs): add move command to batch executor (#2646)
Effectively this makes it possible to perform multiple move operations
in a batch request.
2026-03-11 14:15:49 -04:00
Daniel Salazar bba0533078 feat: checkName api for puter apps (#2643)
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-11 00:23:35 -07:00
Eric Dubé ebb9015045 fix(core): handling of refer code storage add (#2642)
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-10 22:39:02 -04:00
Eric Dubé 05b047c8b9 Revert "perf(core): very simplistic minifier for homepage (#2630)" (#2641)
This reverts commit ae96912699.
2026-03-10 21:36:14 -04:00
Eric Dubé ae96912699 perf(core): very simplistic minifier for homepage (#2630) 2026-03-10 21:24:13 -04:00
Daniel Salazar e96221b0b6 feat: phase 2 enforce index url ownership and uniqueness (#2625)
* feat: phase 2 enforce index url ownership and uniqueness

Adds write-time index URL uniqueness checks, expands hosted subdomain ownership enforcement to private hosting domains, and updates AppService tests for duplicate-index behavior.

* test: align app service comp fixtures with index url uniqueness

Updates regression test fixtures that intentionally exercise name conflicts and selection paths to use unique index_url values under the new one-index-per-app constraint.

* fix: exempt placeholder index url from uniqueness checks

Skips index_url uniqueness enforcement for the shared dev-center coming-soon URL in both AppService and AppES, and adds unit/comp regressions to keep one-index-per-app behavior for all other URLs.
2026-03-10 18:18:01 -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
Daniel Salazar 156d571b10 feat: limit concurrent request for ai chat (#2640) 2026-03-10 16:13:20 -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