Draft:ZPUI bugreport system
ZPUI bugreport submission system allows users to submit ZPUI error logs without logging in through SSH, copying files and sending them to us manually. It should also allow for opt-in automatic bug reporting.
- When Terry is at home, he can't open the Networking app (that's because our implementation of the ip command output parsing code has a bug, but he doesn't know it). Terry can't log in through SSH to send us the bugreport, and he doesn't care enough anyway. Can't blame him, sending logs manually is a tedious process! However, he cares just enough to be OK with pressing a button in the UI and waiting for 20 seconds.
- Richard once encounters a ZPUI error when he's away from home. He wants to send the error report, but he's not connected to any kind of WiFi - and once he comes home, he forgets about it.
- Mychaela played around in ZPUI, looking up functions that the stock ZPUI install has included. When clicking on some menu entries in applications, they just wouldn't respond (that's the default ZPUI behaviour for when exception happens, but she didn't know that). She was weirded out by this, but didn't give it a second thought.
- Andreas has booted a ZeroPhone that he hasn't been using for a long time. He updates ZPUI, and then the USB app stops working. He can't figure out what's wrong, so he opens a GitHub issue. From there, we either need him to launch ZPUI manually and copy the output over, or to send us the logs ZPUI has collected in the meantime. However, we need to write instructions for him to do any of these tasks, and he has to get through them - this is not very efficient.
A ZPUI sub-system that tracks exceptions occuring, and allows the user to send over the exception logs - or tick a checkbox to automatically send us the logs whenever an exception happens. In case the "Update from git" feature is present, it might send us additional information - such as the current commit hash and the list of changed/untracked files.
The app will likely be a part of the Settings app. It'll expose this menu structure:
- "Automatic: off" # changes depending on status
- "Send logs"
Bug report transfer screen
In case of manual bug report submission, will behave similarly to the "Update from git" app - uploading the bug report and showing the upload progress. It'll both allow to upload the bugreports for users that didn't choose to upload them automatically, and debug the bugreport upload process in case it failed.
Is a Checkbox allowing users to tweak following settings:
- Automatic upload - on/off
- If multiple people send in bugreport data, we might not be able to understand which data is related to which bugreport.
- We can add a mechanism to generate an unique ID which will be shown to the user - however, that will only be shown in case of manual uploads
- We can add a way to look up that UID from the update app, so that the user can refer to their UID when submitting a bug report