Enrich the opt-in debug / problem report (issue #34; DiagnosticsCollector) so it's more useful for triage — without adding PII.
Add to the report
Number of accounts configured in the app.
Per-account type / provider + auth method — e.g. Gmail / Outlook / generic IMAP, plus the AuthType (OAUTH_OUTLOOK, app-password, …). Do NOT include the email address or any credential — only the count and the provider/auth-type enums. (Privacy: the report is user-submitted and must stay PII-free, consistent with how DiagnosticsCollector already emits only settings values.)
Source: the account DAO in AccountDatabase. Derive a coarse provider label from AuthType and/or the IMAP host (map to Gmail / Outlook / Other) — don't store the raw host if it could identify the user.
If feasible — attach recent logs
Add recent device/app logs as a separate JSON object/array in the submitted report (alongside the existing settings block), not inlined into existing fields.
Prefer the app's own AppLog buffer (already used, e.g. in IdleService) over raw logcat, so it's scoped to our app and easier to scrub; if logcat is used, filter to the app's tags/PID.
Privacy is a hard constraint: scrub PII (email addresses, tokens, message content) before submission; release builds already strip Log.d/v. Bound the size (last N lines / last few minutes) so the payload stays reasonable.
Notes
Keep it strictly opt-in, sent only on explicit submit (the report is already gated that way).
Update the diagnostics/report tests and the data-safety docs (docs/play-data-safety.md, PRIVACY.md) if the report's contents change.
Enrich the opt-in debug / problem report (issue #34; `DiagnosticsCollector`) so it's more useful for triage — **without adding PII**.
## Add to the report
- **Number of accounts** configured in the app.
- **Per-account type / provider + auth method** — e.g. Gmail / Outlook / generic IMAP, plus the `AuthType` (OAUTH_OUTLOOK, app-password, …). **Do NOT include the email address or any credential** — only the count and the provider/auth-type enums. (Privacy: the report is user-submitted and must stay PII-free, consistent with how `DiagnosticsCollector` already emits only settings values.)
- Source: the account DAO in `AccountDatabase`. Derive a **coarse provider label** from `AuthType` and/or the IMAP host (map to Gmail / Outlook / Other) — don't store the raw host if it could identify the user.
## If feasible — attach recent logs
- Add **recent device/app logs** as a **separate JSON object/array** in the submitted report (alongside the existing `settings` block), not inlined into existing fields.
- Prefer the app's own `AppLog` buffer (already used, e.g. in `IdleService`) over raw logcat, so it's scoped to our app and easier to scrub; if logcat is used, filter to the app's tags/PID.
- **Privacy is a hard constraint:** scrub PII (email addresses, tokens, message content) before submission; release builds already strip `Log.d/v`. Bound the size (last N lines / last few minutes) so the payload stays reasonable.
## Notes
- Keep it strictly opt-in, sent only on explicit submit (the report is already gated that way).
- Update the diagnostics/report tests and the data-safety docs (`docs/play-data-safety.md`, `PRIVACY.md`) if the report's contents change.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Enrich the opt-in debug / problem report (issue #34;
DiagnosticsCollector) so it's more useful for triage — without adding PII.Add to the report
AuthType(OAUTH_OUTLOOK, app-password, …). Do NOT include the email address or any credential — only the count and the provider/auth-type enums. (Privacy: the report is user-submitted and must stay PII-free, consistent with howDiagnosticsCollectoralready emits only settings values.)AccountDatabase. Derive a coarse provider label fromAuthTypeand/or the IMAP host (map to Gmail / Outlook / Other) — don't store the raw host if it could identify the user.If feasible — attach recent logs
settingsblock), not inlined into existing fields.AppLogbuffer (already used, e.g. inIdleService) over raw logcat, so it's scoped to our app and easier to scrub; if logcat is used, filter to the app's tags/PID.Log.d/v. Bound the size (last N lines / last few minutes) so the payload stays reasonable.Notes
docs/play-data-safety.md,PRIVACY.md) if the report's contents change.