thunderbird / thunderbird/thunderbird-android
Debug menu
Open
@shamim-emon is already working on this.
Since Oct 13, 2025.
type: developer experience
- Dominant language
- Kotlin
- Stars
- 14k
- Forks
- 2.8k
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 57
Description
Scope
- Provide a centralized UI for debugging without external tools.
- Allow non-engineers (QA/PM) to flip feature flags safely during testing.
- Make logs discoverable, searchable, and shareable from within the app.
Out-Of-Scope
- Not a replacement for production-grade observability or remote config.
- No persistent remote sync of flags (local-only for now).
- No alteration of the app’s release build behavior unless explicitly allowed.
Requirements
- Access:
- Debug Menu is available only in
debug/dailybuilds by default. - Optionally unlockable in
release,betawith a hidden gesture and an additional confirmation warning.
- Debug Menu is available only in
- Feature Flags:
- List all known flags with current values.
- Toggle boolean flags.
- Persist changes locally (survive app restarts?).
- Expose a “Reset to defaults” action.
- Logs:
- Display an on-device rolling buffer of recent logs (min 2,000 lines or 1–5 MB; configurable).
- Filter by level (
VERBOSE/DEBUG/INFO/WARN/ERROR) and by tag. - Search text query across visible logs.
- Ability to copy selected lines and “Share” as a text file attachment.
- Option to clear the in-memory log buffer.
- Safety:
- Changing flags applies immediately where feasible, otherwise after app restart (with do you really want to restart prompt).
- Add visual indicators when non-default flags are active.
UX Outline
- Entry point: from app’s settings menu within →
Debugging.- Optionally: tap app version 7 times on About screen to reveal in non-debug (store a flag in prefs).
- Debug Menu tabs or sections:
Feature Flags- List of flags with current value, type indicator, and description.
- Toggle/switches for booleans; dropdowns for enums; text fields with validation for strings/ints.
- Buttons:
Reset All
Logs- Toolbar: Level filter, Tag filter (autocomplete), Search box.
- Paginated/virtualized scrolling list of lines:
[time] [level] [tag] message. - Buttons:
Clear,Share Logs.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.