Summary: This diff converts the CrashReporter plugin to Sandy. The main driver is that it allows us to fix the connection management of logs in a next diff. There are few changes to highlight: * A bunch of the old unit tests are removed, as they primarily verified that persistedState abstraction works, a concept that doesn't exist anymore with Sandy (as a result all the logic in error handling and crash reporter plugin has become a lot more trivial as well) * Added additional unit tests to verify that the integration with notifications from Sandy, and the integration of crashes in combination with CrashReporter plugin works (this wasn't the case before) * Plugin errors were always suppressed in production builds of Flipper. However, that makes error reporting pretty pointless in the first place, so enabled it by default, but made it a setting in case this results in too many errors suddenly. * The integration with clicking OS crash notification -> bringing the user to a sensible place _doesn't_ work, but it didn't work before this diff either, so will address that later * This doesn't upgrade the Crash reporter UI to sandy yet, will do that later in a separate diff Changelog: Crash reporter will now report errors triggered from the device / client plugins by default. This can be disabled in settings. Reviewed By: priteshrnandgaonkar Differential Revision: D27044507 fbshipit-source-id: 8233798f5cce668d61460c948c24bdf92ed7c834
flipper-plugin
flipper-plugin is the dependency used by all modern Flipper plugins (project "Tommy").
For background: https://fb.quip.com/YHOGAnaPqAVJ
flipper-plugin is to be used as dev and peer dependency of all Flipper plugins. It provides:
- (TODO) Standard API's to interact with Flipper, such as the client connection.
- (TODO) Standard components to organize the UI
- (TODO) Testing utilities
API's provided by flipper-plugin are documented at fbflipper.com (TODO).
There should normally be no need to install flipper-plugin as dependency.
Rather, plugins should be scaffolded using npx flipper-pkg init (TODO) as documented here