## linagora/tmail-flutter — v0.38.1…v0.39.0

_41 commits._

### Features
- **2509 Pin pica/dotlottie at build time, serve CanvasKit locally, add nginx baseline hardening (#4912)** (5f6b558)
- **TF-4815 Add web E2E coverage for composer reload** (1890838)
- **TF-4672 Add malformed calendar URL test cases** (de3fced)
- **TF-4672 Add calendar event links to orange bar** (4e412c3)
- **TF-4837 Drop no-op selection-list reorder, add category order test** (2e1999b)
- **Support iOS app builds on Xcode 27.0 and macOS Golden Gate 27.0 (#4847)** (f1edb2a)

### Fixes
- **fix: support domainPart in URL templates** (fdcec1e)
- **TF-4859 fix(html-viewer): validate iframe message shape before handling (#4860)** (2f31e31)

### Backend
- **Bump version to v0.39.0** (c9bdaa6)
- **Translate vi, ru, fr, mn** (0ee894a)
- **2509 Strip bidi and control characters from attachment names** (9009516)
- **2509 Escape notification text and use private lock-screen visibility** (6f0995c)
- **2509 Never send credentials with WebFinger discovery requests** (f3f7687)
- **2509 Parameterize attachment-name escaping tests over link variants** (1fed16f)
- **2509 Escape header fields in the EML preview and remove the unused PDF viewer** (9e41526)
- **2509 Try DNS-over-HTTPS before system DNS for JMAP discovery** (e327c12)
- **TF-4815 Test switched identity and signature survive web reload** (b58b06a)
- **TF-4815 Prefer latest draft hash over route arguments in reconnect composer cache** (ef21017)
- **TF-4815 Discard web composer snapshots on explicit logout** (8c56765)
- **TF-4815 Keep reply headers and draft mailbox in restored web composer** (8ea16dd)
- **TF-4815 Save web composer snapshot synchronously in beforeunload and keep it after restore** (882b499)
- **Declare insideCozy provider as Future to match its getter** (000d71e)
- **Move insideCozy provider out of premium CTA provider** (6ede1f1)
- **Document premium CTA container extension as Cozy-gated** (a5646a9)
- **Override insideCozyProvider in premium CTA widget tests** (ad307f9)
- **gate premium CTA on being inside Cozy** (81af57a)
- **2509 Return to the app base, not the host root, after logout** (6987d5c)
- **2509 Drop redirect_uri handling from the logout callback** (7a6444f)
- **Bump tmail-backend docker image to 1.0.21.1 (#4907)** (c662e32)
- **TF-4861 Test LocalizedFileSizeFormatter with Intl.defaultLocale** (0210c5d)
- **TF-4861 Accept num sizes in LocalizedFileSizeFormatter** (f3be3cd)
- **TF-4861 Localize storage size units and decimal separator** (97baa1e)
- **TF-4672 Hide calendar button when ecosystem URL template is unset** (a911c5c)
- **TF-4672 Reject malformed URL templates** (17fba1b)
- **TF-4672 Reduce WebUriParser primitive arguments** (7711f9e)
- **TF-4672 Harden calendar URL template resolution** (243e289)
- **TF-4672 Use merged calendar event action dependency** (d18977a)
- **TF-4672 Handle malformed calendar URLs** (c77ceb5)
- **Run every test in CI without registration (#4903)** (585b108)
- **TF-4843 feat(composer): handle EmailSubmission/set invalidRecipients (#4844)** (1c55a46)
- **TF-4837 Reorder trash section email menu** (fb90a6e)

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