Summary: Not really a connectivity related log, so removed [conn] from it.
Reviewed By: passy
Differential Revision: D48266546
fbshipit-source-id: e384301d6301940366b594b4bc612349cc2264ce
Summary: Combine the two used commands as will make things easier for our users.
Reviewed By: passy
Differential Revision: D48266474
fbshipit-source-id: 1ee5c568ff001dc5ba3f11e21b09a2a6ab430ac7
Summary: It's troubleshooting in general, not only connectivity. So rename and refactor accordingly.
Reviewed By: antonk52
Differential Revision: D47914411
fbshipit-source-id: 658563bfd33427f11fe9f7660b0985fc3f013866
Summary: Reuse the function that was refactored on previous diff.
Reviewed By: antonk52
Differential Revision: D47873752
fbshipit-source-id: 71e12cd34d1826080487297e308450cb2a2a5c26
Summary:
Extract notification creation from inside the existing function.
This will be reused to display connection notifications from the server event.
Reviewed By: antonk52
Differential Revision: D47873728
fbshipit-source-id: c01dc93dfef28135ecf7e77e92d4d517af082125
Summary:
There's a generic notification server event.
This change introduces a new notification server event dedicated for connection troubleshoot.
The difference is, this notification will have a button to troubleshoot the issue. Additionally, in the future, we may even be able to add a payload so that we can troubleshoot the exact problem.
Reviewed By: antonk52
Differential Revision: D47873697
fbshipit-source-id: 28843a08836d0054909f6b9ab7a88b14b8a1b868
Summary: Add key for server error notifications as to prevent duplicates.
Reviewed By: antonk52
Differential Revision: D47869240
fbshipit-source-id: 7c826ab07a8f92bd053200786ed990ad78bbfa67
Summary: If the notification is shown, allow engineers to switch to the connectivity troubleshooting view as it may highlight where the problem is.
Reviewed By: antonk52
Differential Revision: D47869154
fbshipit-source-id: f4154bb230d891dc4ac108b5acbe7e6541ffed1a
Summary: Add a key such that the same notification does not appear again for the same device/app.
Reviewed By: antonk52
Differential Revision: D47835045
fbshipit-source-id: 78237b4102aa199ebea23b7c5726b567fc4de91e
Summary: Timeout exceptions while connection to new clients where rethrown but catched nowhere. Probably this warning should be handled more gracefully, but this at least moves it to warn rather than spawning our monitoring on transient issues
Reviewed By: passy, antonk52
Differential Revision: D47665050
fbshipit-source-id: ad51808d12e9f4de318d4426933ecb3787839b7c
Summary: "send" returns "void" which means we do not care about the execution result, including errors
Reviewed By: lblasa
Differential Revision: D47398015
fbshipit-source-id: ef185575f6e91d69356ab88c7f3d213033759da8
Summary:
Show users a way to fix Flipper EADDRINUSE on their own without filing a support request
CHANGELOG: Better error message for EADDRINUSE
Reviewed By: mweststrate
Differential Revision: D40338164
fbshipit-source-id: ec0419c78983b55736aa773757775b5302da51e0
Summary:
This is the second part of the feature which enables data/log persistence by adding a global setting which controls whether the data is wiped when the same device is disconnected and reconnected.
Building on the previous diff, this diff uses the setting from the Redux Store to determine whether to "wipe" the data or not.
Changelog: Added option in Flipper settings to persist device data upon reconnection instead of wiping everything.
Reviewed By: mweststrate
Differential Revision: D38076567
fbshipit-source-id: 83658ac09bc88921a56517e1a1f624d4a4bbc2c5
Summary: Use BasDevice definition from flipper-frontend-core in flipper-ui-core and remove the redundant definition from flipper-ui-core
Reviewed By: lblasa
Differential Revision: D37234785
fbshipit-source-id: 6e768090a197c1d2c49cb1cd573acea12fb65d24
Summary: This stack attempts to start using flipper-frontend-core from flipper-ui-core. Currently, flipper-frontend-core contains lots of copy-pasted code from flipper-ui-core.
Reviewed By: lblasa
Differential Revision: D37139198
fbshipit-source-id: 042db7492c550e10ea72c32fd15001c141bf53f9
Summary:
This is not actionable for us as it includes changing device identifiers.
In this case it's better to rely on individual user reports if this is about
a particular device/app combo.
Reviewed By: lawrencelomax
Differential Revision: D34749996
fbshipit-source-id: 88c6c8b076b3f7d9808b6a2a9b08854d2d7cb39f
Summary:
'Failed to start connection server' is a bit misleading. 'server-error' is used for both server and client errors.
Changelog: Better notification messaging
Reviewed By: aigoncharov
Differential Revision: D34269045
fbshipit-source-id: f51a28fc0e9ba394b464e5bfca4d0e497f740b1b
Summary:
This diff makes sure that errors are propagated similarly in flipper desktop and browser version, and that they are shown in either case.
Since in the browser version, the UI loads after the error happened, we'll store the error so that any client connecting in the future will read and report it.
Also added a `--failFast` flag to flipper-server, so that the process exits immediately if misconfigured, which is convenient in CI use cases and such
Reviewed By: nikoant
Differential Revision: D33348922
fbshipit-source-id: 0f584104f881141fde38da3f0031748415343ea2
Summary: Run doctor checks remained pending when the socket disonnected during a check. This
Reviewed By: aigoncharov
Differential Revision: D32984539
fbshipit-source-id: 277005e78803afaaa220cc5ca7fdc9cca6254453
Summary:
Changelog: Fixed issue where occasionally a plugin wouldn't open after starting Flipper
This fixes a long standing issue where rarely Flipper wouldn't show the selected plugin. This turned out to be a raise condition, that was easy to reproduce in the Flipper browser version; if a client register before all the plugins are loaded, the plugins that are enabled for that client, but not loaded yet, will not instantiate and hence not show up. This diff fixes that
Reviewed By: timur-valiev, aigoncharov
Differential Revision: D32987162
fbshipit-source-id: f3179cd9b6f2e4e79d05be1f2236f63acdf50495
Summary: This diff makes sure that when the client starts, it fetches all known devices and clients first, as it might have missed the 'connect' events for those. For Electron this wasn't needed, since the server starts with the UI, but this makes sure that a browser reload or a second connection sees the same devices & apps
Reviewed By: aigoncharov
Differential Revision: D32881589
fbshipit-source-id: 7b1cb3d296044f83dedcf3f3d8d02864690b6666
Summary:
This diff moves RenderHost initialisation to jest, which is thereby treated as just another 'Host' like flipper-ui, the electron app etc. A benefit is that it provides a mocked flipperServer by default that can be used to mock or intercept requests. See LaunchEmulator.spec as example.
Also made the jest setup scripts strongly typed by converting them to TS.
This change allows the test stub configuration, which was OS dependent, out of flipper-ui-core.
Reviewed By: nikoant
Differential Revision: D32668632
fbshipit-source-id: fac0c09812b000fd7d1acb75010c35573087c99f
Summary:
This diff moves a lot of stuff from the client to the server. This diff is fairly large, as a lot of concept closely relate, although some things have split off to the earlier diffs in the stack, or are still to follow (like making intern requests).
This diff primarily moves reading and storing settings and GKs from client to server (both flipper and launcher settings). This means that settings are no longer persisted by Redux (which only exists on client). Most other changes are fallout from that. For now settings are just one big object, although we might need to separate settings that are only make sense in an Electron context. For example launcher settings.
Reviewed By: passy, aigoncharov
Differential Revision: D32498649
fbshipit-source-id: d842faf7a7f03774b621c7656e53a9127afc6192
Summary: This diff makes sure flipper-ui-core no longer depends on flipper-server-core. Currently server config is still transferred from UI to server, which doesn't really make sense in future scenarios where server might start before client, but will address that separately
Reviewed By: timur-valiev, aigoncharov
Differential Revision: D32462835
fbshipit-source-id: 498a944256ba1aabbf963b896953e64d11e27214
Summary:
When a client disconnects while it's still initialising, we get a critical error.
But this is expected to happen now and again, so adding a specific error for it, and handling it accordingly.
It doesn't change the control flow, just the logging.
Reviewed By: nikoant
Differential Revision: D32794062
fbshipit-source-id: cf27fb9c345aa6369d338838a46e75a6b7afde41
Summary:
These notifications, when emit, don't get deduped, so if connection timeouts keep happening, like in [this](https://fb.workplace.com/groups/flippersupport/posts/1257144721432850), then you get tons of notifications.
This dedupes them if all the info is the same.
Reviewed By: mweststrate
Differential Revision: D32560073
fbshipit-source-id: beb4d67e2a97841bb91add7847157176dee4a5f4
Summary:
When a new client connects, we dispatch the NEW_CLIENT event.
The reducer of this event contains logic for determining if flipper should switch to display the newly connected client or not, and if so, it will dispatch SELECT_CLIENT.
For that reason, flipperServer always dispatching SELECT_CLIENT bypasses the "should switch?" logic and always switches whenever a new client connects. This is disruptive to working and not desired.
Removing this dispatch so that we rely on the NEW_CLIENT reducer to decide.
Bug report: https://fb.workplace.com/groups/flippersupport/posts/1255964631550859
Reviewed By: aigoncharov
Differential Revision: D32532942
fbshipit-source-id: 0ff2693745e37378362254053ae5fd6fc0d11de2
Summary:
This diff moves all UI code from app/src to app/flipper-ui-core. That is now slightly too much (e.g. node deps are not removed yet), but from here it should be easier to move things out again, as I don't want this diff to be open for too long to avoid too much merge conflicts.
* But at least flipper-ui-core is Electron free :)
* Killed all cross module imports as well, as they where now even more in the way
* Some unit test needed some changes, most not too big (but emotion hashes got renumbered in the snapshots, feel free to ignore that)
* Found some files that were actually meaningless (tsconfig in plugins, WatchTools files, that start generating compile errors, removed those
Follow up work:
* make flipper-ui-core configurable, and wire up flipper-server-core in Electron instead of here
* remove node deps (aigoncharov)
* figure out correct place to load GKs, plugins, make intern requests etc., and move to the correct module
* clean up deps
Reviewed By: aigoncharov
Differential Revision: D32427722
fbshipit-source-id: 14fe92e1ceb15b9dcf7bece367c8ab92df927a70