Add Archive action to single mail view (was missing)
Reorder single-mail app bar actions to match batch selection toolbar: Reply, Forward, Archive, Delete, Mark as spam, Move to folder, Snooze, Flag
Move "Mark as unread" from standalone icon button into the popup submenu
Extract shared resolveMailboxByRole() helper so both single-mail and batch archive/spam actions use identical dialog flow (choose existing or create folder)
Update _markAsSpam in detail screen to use the shared helper instead of showing a bare snackbar when no junk folder exists
## Summary
- Add **Archive** action to single mail view (was missing)
- **Reorder** single-mail app bar actions to match batch selection toolbar: Reply, Forward, Archive, Delete, Mark as spam, Move to folder, Snooze, Flag
- Move **"Mark as unread"** from standalone icon button into the popup submenu
- Extract shared `resolveMailboxByRole()` helper so both single-mail and batch archive/spam actions use identical dialog flow (choose existing or create folder)
- Update `_markAsSpam` in detail screen to use the shared helper instead of showing a bare snackbar when no junk folder exists
## Test plan
- [x] `flutter analyze` — no issues
- [x] 475 widget + unit tests pass
- [x] Pre-commit hooks (format, analyze, tests, coverage) pass
- [x] Archive button visible in email detail app bar
- [x] Archive shows "No archive folder found" dialog when no archive folder
- [x] Mark as unread is in popup menu, not a standalone button
- [x] Mark as spam shows dialog when no junk folder (consistent with batch behavior)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
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.
Summary
resolveMailboxByRole()helper so both single-mail and batch archive/spam actions use identical dialog flow (choose existing or create folder)_markAsSpamin detail screen to use the shared helper instead of showing a bare snackbar when no junk folder existsTest plan
flutter analyze— no issues🤖 Generated with Claude Code