## linagora/tmail-flutter — v0.34.0…v0.35.0

_50 commits._

### Features
- **TF-4727 [Part-2] Add web OPFS drive file stager and strategy selection (#4746)** (7d7ad0f)
- **Add SearchLayoutCoordinator to hand off the search list across web breakpoints** (6e81ddf)
- **TF-4646 Add SearchViewStateNotifier as search view-state SSOT** (9bbd8c1)
- **TF-4646 Add search view-state value objects (activation, constants, view state)** (0f58e40)
- **TF-4645 SSOT Part 4.2 - Add more unit test for SSOT Part 4 — Migrate mobile search to the central executor (#4703)** (a4802c2)
- **TF-4645 Add InteractorConsumer seam and isUrgentException predicate** (a358b4b)
- **TF-4644 Add SearchFilterNotifier tests for setMailbox, toggleLabel, setHasAttachment false branch** (366fe5e)
- **TF-4644 Add web e2e coverage for search-filter SSOT** (f6f1240)

### Fixes
- **HOTFIX Flaky search email with tag test** (0e6c107)
- **fix(auth): stop double-reporting a rejected mobile token refresh to Sentry** (fa12f71)
- **fix(auth): force logout when mobile refresh is rejected by the token endpoint** (aad7df7)
- **Extract RouteUtils.dashboardBrowserRouteTitle, fix reconcile idle no-op, expose searchLayoutCoordinator @visibleForTesting, use selectedMailboxForDisplay in quick search** (6a3ba5f)
- **Fix search result/state leaks: resize & system-back restore, search URL labelId** (e5f5e16)

### Backend
- **Bump version to v0.35.0** (6bacd1d)
- **TF-4758 Cover drive attachment default, upgrade path and preference visibility with unit tests** (e2461dd)
- **TF-4758 Default DriveAttachmentConfig.isEnabled to true and drop DriveAttachmentPreferenceOption.isExperimental** (19a2d21)
- **TF-4744: Inherit typography from design system TwakeInter (#4749)** (b4b7355)
- **TF-4727 [Part-1] Drive-transfer sealed types, stager interfaces, buffered stager (#4731)** (7cbda0d)
- **TF-4726 Composable validator (#4729)** (20cf265)
- **Cover emailId preservation across search state in dashboardRouterForMailboxOrSearch test** (237e425)
- **Remove unused imports in ThreadController and thread_controller_test** (8701690)
- **Pump fake clock after disableAllSearchEmail to fire Riverpod ProviderScheduler timer in mailbox_dashboard_view_widget_test** (1f5315a)
- **Record desktop ownership in _handoffToDesktop so takeDesktopSearchPresentation succeeds after mobile-to-desktop handoff** (9ec3883)
- **Use selectedMailboxForDisplay in buildLabelsList to hide label highlight during search** (7bf800b)
- **Test SearchLayoutTransitionState/handoff and de-leak MailboxDashboard widget tests** (a9dc7bd)
- **TF-4647 SSOT Part 6— Wire dashboard filter into search SSOT & remove `position` (#4714)** (f50b765)
- **TF-4646 SSOT Part 5.2 — PR 3 — Retire the last web-search `Obx`/memory state to Riverpod   (#4707)** (e103374)
- **TF-4646  SSOT Part 5.1 — PR 2 — Route web results through the central executor + search SSOT (#4706)** (42053d2)
- **TF-4646 Read advanced activation via activation.advancedIsActivated in test** (933e407)
- **TF-4646 Use SearchConstants.inputDebounceDuration in SearchInputFormWidget** (f13fbc2)
- **TF-4645 Route search urgent exceptions via InteractorConsumer, drop pendingUrgentException** (37416d7)
- **TF-4645 Dedup load-more, unify urgent routing, skip unchanged result rebuild** (96050e1)
- **TF-4645 Invalidate searchFilterProvider on SearchEmailController dispose** (a660bbc)
- **TF-4645 Document mobile-search write-back in _handleUnsubscribeMailSuccess** (662864b)
- **TF-4645 Flatten debounced suggestion flow** (1a045db)
- **TF-4645 Clear stale load-more exception and guard async search UI** (9cc095a)
- **TF-4645 Update logic unit test** (7649ad9)
- **TF-4645 Remove `search_email_sort_order_date_filter_not_leak` E2E test** (e08b6e8)
- **TF-4645 Migrate mobile search to the central executor** (3e33752)
- **TF-4644 Clarify advanced-search activation gate and cover it** (79575f9)
- **TF-4644 Cover advanced search SSOT changes** (bd25e5a)
- **TF-4644 Apply Riverpod SSOT to advanced search** (05305bd)
- **TF-4644 Remove unused SearchFilterMutation.clear()** (52fdd2a)
- **TF-4644 Route AdvancedFilterController mutations through SearchFilterMutation** (09570c6)
- **TF-4644 Sync SearchController search bar with committed filter text** (5fe03dd)
- **TF-4644 Build quick-search suggestion filter via mappingToEmailFilterCondition** (def9ca9)
- **TF-4644 Update ADR-0093/0094 to single-notifier SSOT design** (e67a864)
- **TF-4644 Route web search through single SearchFilterNotifier** (23d097c)

### Chore
- **refactor(auth): decouple web refresh error handling from the mobile handler** (bfde352)
- **refactor(auth): split refresh-token error classification per platform** (3dabbbe)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/linagora/tmail-flutter?utm_source=github-action)._