# Later

task deploy-android
it is slow. First debug what is slow.
What is the bottleneck?
I see qemu with a lot of CPU load.
Maybe giving the user more Linux permissions to run optimized qemu helps?

---

use si3e2e@thomas-guettler.de in tests.

---

WebView and Linux....

https://github.com/pichillilorenzo/flutter_inappwebview

---
Are errors written to syncLog ?

---

Error and Crash reporting to central server.

But this needs a central service at sharedinbox.de

Data will be sent only after confirmation.

The user must decide: send crash report, or accept select "I prefer not to send crash report".

---

Taskfile: Debug logs with start+end timestamp for debugging. Each stdout/stderr in one file. How to
get this?

---

ChangeLog with undo.

Every action should be easily undoable.

Example: I delete an email. An undo should be doable. There are three scenearios: Sync from DB to
Server is currently in action (then wait), Sync from DB to server was not done yet, Sync from DB to
server was done.

---

Goal: When an unhandled exception occurs on a real device, show the user
the full error text so they can copy and send it.

Plan:

1. Wrap main() in runZonedGuarded — catches async exceptions that escape
   Flutter's framework (e.g. in isolates, timers, stream callbacks).

2. Install FlutterError.onError — catches widget build errors, assertion
   failures, and other framework errors.

3. Show a full-screen error dialog — when an exception is caught, call a
   global function that uses a NavigatorKey to push an error screen on top
   of whatever is showing. The screen shows:
   - The exception message
   - The stack trace (scrollable)
   - A "Copy to clipboard" button (Clipboard.setData)
   - A "Dismiss" button

4. Keep it always-on since you want manual reporting from real users.

Key files to change:
- lib/main.dart — add runZonedGuarded, FlutterError.onError, navigatorKey
- lib/ui/widgets/crash_screen.dart — new error display widget

---

Implement thread-view.

First create a plan.

For JMAP this is easy.

But for IMAP?

Threads should be synced to the DB, too. Use JMAP as an example. Then think about getting this data
structure from imap.


---


docs

---

Thread view (group by `References` / `In-Reply-To`)

---

---

full-sync: Imaging the sync got out-of-sync somehow. Provide a way via UI to force a sync. First
create a plan. Avoid downloading big bodies/attachments again.

---

mailcoach.de

---

Try Qwen, vscode plugin

---

After Try Connection, show some matching icon next to the text.

---

---

Test with a Fastmail account

---

scripts/check_coverage.dart
reduce files in _excluded.

---

Renovate: Is there a way to run it outside Github Actions? On cli?

---

Write test which fails, when _excluded contains unknown files.

---

Thread view (group by References / In-Reply-To)

Search (IMAP SEARCH command)

---

List-Unsubscribe email header --> show button.

---
