App
App copied to clipboard
[$500] HIGH: Add `Avatar > About > Troubleshooting` section
Strategy: A billion users means a billion problems. To diagnose and solve them at scale, we capture client-side logs and upload centrally.
Problem: Some problems can't be diagnosed cleanly after the fact from the logs, for a few reasons:
- External contributors don't have access to production logs.
- Internal engineers do have production access, but they're often cumbersome to access.
- The logs are often ambiguous, such as if you have multiple devices connected and tabs open at the same time -- reverse engineering what happened for a particular client is confusing and time consuming.
- Observing logs in realtime is cumbersome or sometimes impossible, which slows down and complicates testing.
- Even if you have all the access you need, when talking with a user sometimes it's difficult to find the logs specific to them.
Solution: Let's expand our ability to remotely diagnose production devices with better dev tools built into the app itself. Specifically:
- Add a
Troubleshooting
section to theAvatar > About
page, just aboveReport a bug
- This will always be available, both on staging and production builds
- Move the following
Test preferences
settings into this new menu:- Use staging server
- Force offline
- Simulate failing network requests
- Authentication status: Invalidate
- Device credentials: Destroy
- Add
Reset and refresh
, which wipes Onyx clean except for the minimum needed to call OpenApp (so you don't need to reauthenticate) - Add
View console
which opens a simple console:- This would first open up and initialize with all locally stored logs, so you can scroll back and see what happened
- It would also append new logs in realtime
- There would also be a
Save
button that just copies all available logs into a text file that is saved on the device - Add a
Share
button that brings up aSearch
selector and just posts the logs into the selected room (and then leaves the user navigated there, so they can talk about them). I'm imagining this would be useful for chatting with a real world user and asking them to do something and send you the logs. - At the bottom is a command line that works similar to the Chrome console, where you can execute arbitrary JavaScript, with the results output to the console
This is blocking https://github.com/Expensify/App/issues/33040.
Upwork Automation - Do Not Edit
- Upwork Job URL: https://www.upwork.com/jobs/~01c2a08b8b8ae90e21
- Upwork Job ID: 1744202378047897600
- Last Price Increase: 2024-01-15
- Automatic offers:
- fedirjh | Reviewer | 28115102