Commit Graph

689 Commits

Author SHA1 Message Date
Nariman Jelveh
3cba4cab1e Disable iframing of the main domain using meta tags as well 2024-04-22 14:14:20 -07:00
Nariman Jelveh
ef35a04c4a Disable iframing of the main domain 2024-04-22 14:09:32 -07:00
Eric Dubé
874928e845
Update bug_report.md 2024-04-22 16:39:47 -04:00
Eric Dubé
c3d1574f8c
Merge pull request #321 from HeyPuter/eric/batch-error-handling
Make errors in /batch more preemptive
2024-04-22 16:37:31 -04:00
KernelDeimos
eee5c9e48b Cleanup 2024-04-22 16:29:12 -04:00
KernelDeimos
2f5780d1d1 Cleanup 2024-04-22 16:28:22 -04:00
Nariman Jelveh
fa60f66057 Update helpers.js 2024-04-22 13:13:49 -07:00
KernelDeimos
a741bd5419 Make errors in /batch more preemptive 2024-04-22 04:35:01 -04:00
KernelDeimos
4d2d4a7ca3 Fix 86888h53w 2024-04-21 22:06:36 -04:00
KernelDeimos
5c1e6ab16b Fix false-positive password recovery response 2024-04-21 18:28:58 -04:00
Nariman Jelveh
f5f75dbef8
Add link to Bug Bounty program 2024-04-21 15:04:49 -07:00
Nariman Jelveh
6577051d64
Add Steam Deck to DiRP 2024-04-21 14:46:45 -07:00
KernelDeimos
b2f5cc11b5 Fix dbrr reference 2024-04-21 17:10:18 -04:00
Nariman Jelveh
a1252f66cc
Update README.md 2024-04-21 12:50:58 -07:00
Nariman Jelveh
e8d9e8b42b
Update README.md 2024-04-20 20:34:52 -07:00
Nariman Jelveh
ced7265eb0
Merge pull request #306 from zinreq/main
Do not show the "Change Password" option when user is temporary
2024-04-20 19:46:54 -07:00
zinreq
14098b2ff2
Do not show the "Change Password" option when user is temporary 2024-04-20 19:42:30 -07:00
Eric Dubé
fb93a0863b
Merge pull request #305 from HeyPuter/eric/support-levels
Document scope for fixes
2024-04-20 20:02:52 -04:00
KernelDeimos
4088bff216 Document scope for fixes 2024-04-20 19:57:40 -04:00
Nariman Jelveh
915152d3b9
Merge pull request #296 from Xiayucheng1212/keep_params
Keep the query params in the url started with '/app/*'
2024-04-20 16:45:05 -07:00
Nariman Jelveh
2ecea9a7b0 Prevent XSS by escaping user_set_url_params 2024-04-20 16:34:15 -07:00
Eric Dubé
dc2a620b4e
Merge pull request #304 from HeyPuter/eric/stdio-bridge/2
stdio-bridge 2
2024-04-20 19:29:15 -04:00
Nariman Jelveh
8648a303f1 use puter.js to retrieve server info 2024-04-20 15:29:33 -07:00
Nariman Jelveh
6a65ca4ebd
Merge pull request #303 from Eric-Lighthall/login-server-info
Add server info to the login page for issue #257
2024-04-20 10:12:31 -07:00
KernelDeimos
58b83c27f2 Remove large log 2024-04-20 07:23:32 -04:00
Eric Lighthall
338d925bcc Fetch server info from versionservice.js module
Instead of directly fetching for the version info in UITabAbout.js, the module is now used for it
2024-04-20 02:24:45 -07:00
Eric Lighthall
7e2c4a0a1c Add server/version info on login page
The server/version info is under the forgot password section of the login page
2024-04-20 02:22:13 -07:00
Eric Lighthall
9822be5df4 Add version service module for fetching server information
this centralizes the handling of requests to get the server information
2024-04-20 01:58:12 -07:00
Nariman Jelveh
cf5c62bcfc
Update README.md to add more DiRPs 2024-04-19 23:52:41 -07:00
KernelDeimos
27553ef926 Cleanup 2024-04-19 23:35:56 -04:00
KernelDeimos
3f249fcc89 Fix pipes 2024-04-19 23:31:23 -04:00
KernelDeimos
c3654ab148 Add more streaming fixes 2024-04-19 23:24:32 -04:00
KernelDeimos
0e9e8d41d9 Fix authorizer not defined 2024-04-19 17:12:15 -04:00
Sam Atkins
2f49c1c9b0 Remove a whole load of noisy log messages
These can be added back if and when we need them, but right now, it's
hard to follow console output with all this chatter. 😅
2024-04-19 17:29:26 +01:00
Sam Atkins
072dbe8db5 Make BetterReader buffer and cancel, to fix stdin data loss
BetterReader.read_with_cancel() returns both the read promise, and a
function that can be used to cancel the read. A cancelled read is
placed back into the BetterReader's chunk buffer, to be consumed by the
next user that requests a read.

This is used by Coupler so that when the coupler is closed, its pending
read() call does not consume the next batch of input.

This fixes the problem we were having with child applications consuming
one chunk of stdin after they are closed, meaning the first key you
press after an app exits would disappear.

Co-authored-by: KernelDeimos <eric.alex.dube@gmail.com>
2024-04-19 15:52:59 +01:00
KernelDeimos
da208e23f5 Add a valve and internal pipe to commands 2024-04-19 15:52:59 +01:00
Sam Atkins
222a617c44 Phoenix: Use regular code path to run built-in apps
Now launchApp() can always be awaited, we can run built-in apps using
the same code path for other apps, and eventually have SIGINT close
them.
2024-04-19 15:52:59 +01:00
Sam Atkins
e355c77a4a Phoenix: Wait for apps to finish executing, and connect stdio to them
After launching an app, if successful, we connect stdio streams to it,
and wait for it to exit before we return to the prompt.

stdio is implemented as regular AppConnection messages:
- stdin:  `{ $: 'stdin',  data: Uint8Array }` from phoenix -> child
- stdout: `{ $: 'stdout', data: Uint8Array }` from child -> phoenix

Terminal and Phoenix now communicate with each other using the same
style, instead of 'input' and 'output' messages. This will help with
eventually running subshells.

SIGINT currently is not sent. We also suffer from the same "one more
read from stdin happens after app exits" bug that's in
PathCommandProvider where I copied the stdin code from.
2024-04-19 15:52:59 +01:00
Sam Atkins
639653dac2 Report when a non-SDK app closes
puter.ui.launchApp() returns a Promise that needs to resolve whether the
app uses the Puter SDK or not. Non-SDK apps are tricky because they
don't send a READY message on startup, and we don't know in advance
whether an app will use the SDK or not.

This is a workaround to ensure that launchApp() always resolves. When an
app is closed, if it wasn't using the SDK, we send an artificial
notification that it launched, followed by an extra notification that
it has closed (because the original close notification was sent before
this point). This means any users of launchApp() can await it, and get
an AppConnection, and listen to the close event. They can't otherwise
interact with a non-SDK app because it will have closed already, but we
can improve this in the future without breaking the API.
2024-04-19 15:52:59 +01:00
Sam Atkins
0aa5543397 Let AppConnection know if its target app uses the Puter SDK
Apps are not required to use the Puter SDK. If they don't, then we can
still launch them, close them, and listen to their close event, but are
unable to send messages to them.
2024-04-19 15:52:59 +01:00
Sam Atkins
dfdda4f3b9 Extract some helper functions for accessing a window/iframe by uuid 2024-04-19 15:52:59 +01:00
Eric Dubé
8cf58d7fc6
Merge pull request #299 from Eric-Lighthall/reduce-console-flicker
Optimize console redraw by tracking widget changes
2024-04-19 07:47:41 -04:00
Eric Lighthall
4783e3eae4 Optimize console redraw by tracking widget changes
Instead of redrawing the widget area every 2 seconds, only auto redraw when the widget area has changed, reducing unecessary redraw operations.
2024-04-19 00:48:36 -07:00
Eric Dubé
4931ad3960
Merge pull request #297 from AtkinsSJ/test-minimum-version
Make tests work in Node 16.x
2024-04-18 14:41:20 -04:00
Sam Atkins
5ad78a5ebb Expand supported versions that we test in CI
Phoenix now only requires 16.x or above, and so does Puter itself, so
let's include that, and also 18.x as the other LTS version.
2024-04-18 14:41:06 +01:00
Sam Atkins
dc95f2e065 Phoenix: Support older Node versions in test harness
This brings Phoenix's minimum required version from 20.x down to 16.x.

ReadableStream.from() is deemed experimental, and requires Node 20.x
(or at least, something higher than 18.x). This was the only code that
made us require version 20.x.

ReadableStream and WritableStream are available from Node 16.5, but
require that they be explicitly imported.
2024-04-18 14:41:06 +01:00
KernelDeimos
0361ceba6c Normalize session objects to have both user_uid and user_id 2024-04-17 23:22:10 -04:00
KernelDeimos
4ecc7372f9 Fix issue with use_bundled_gui flag 2024-04-17 22:59:22 -04:00
KernelDeimos
dbcd627815 Apply various small fixes 2024-04-17 20:57:59 -04:00
Nariman Jelveh
6061c81c36 Update get-launch-apps.js 2024-04-17 17:58:11 -07:00