Bot of Thomas Güttler
a723380560
perf: defer HTML-to-plain conversion off the UI thread (P3) ( #49 )
2026-05-14 11:14:23 +02:00
Bot of Thomas Güttler
499774d1a6
feat: add 'Mark all as read' to mailbox overflow menu (U8) ( #48 )
2026-05-14 10:58:33 +02:00
Bot of Thomas Güttler
132b6aeb9a
feat: recent searches history in SearchScreen (U3) ( #47 )
2026-05-14 10:51:28 +02:00
Bot of Thomas Güttler
efd5a1fc17
test: AccountSyncManager integration tests without real servers (A3) ( #46 )
2026-05-14 10:49:29 +02:00
Bot of Thomas Güttler
44e387bfb3
fix: treat TLS config errors as permanent in sync loops (R5) ( #45 )
2026-05-14 10:29:07 +02:00
Bot of Thomas Güttler
546b06ba5a
test(T3): add contract test suites for Account/Mailbox/Email repositories ( #43 )
2026-05-14 10:20:32 +02:00
Bot of Thomas Güttler
5ba24a66e0
fix: retry AAB upload on httplib2 RedirectMissingLocation error ( #44 )
2026-05-14 10:20:25 +02:00
Bot of Thomas Güttler
4f16587564
feat(P2): paginate email list — default 50 threads, Load more button ( #42 )
2026-05-14 10:09:05 +02:00
Bot of Thomas Güttler
f0f81777b5
feat(P1): FTS5 virtual table for email search (replaces LIKE scan) ( #41 )
2026-05-14 10:01:42 +02:00
Bot of Thomas Güttler
64fdc53bbd
refactor(A1): extract EmailDetailNotifier, drop initState DB coupling ( #39 )
2026-05-14 09:49:38 +02:00
Bot of Thomas Güttler
084ba2b7ba
fix: increase Play Store upload timeout and add retries ( #40 )
2026-05-14 09:46:59 +02:00
Bot of Thomas Güttler
6d83a5670d
fix: upgrade workmanager to 0.9.0+3 to fix Kotlin 2.x AAB build failure ( #38 )
2026-05-14 09:03:17 +02:00
Bot of Thomas Güttler
1d93eb10f3
fix: enable core library desugaring for flutter_local_notifications ( #37 )
2026-05-14 08:39:42 +02:00
Bot of Thomas Güttler
f9030dc1e5
perf(P4): add indexes on mailboxes and threads for observeMailboxes/observeThreads ( #36 )
2026-05-14 08:37:00 +02:00
Bot of Thomas Güttler
92e91d9fad
fix(R3): wrap flutter_html in error boundary to prevent screen crash ( #35 )
2026-05-14 08:27:02 +02:00
Bot of Thomas Güttler
1117cadf2a
feat(D2): add task check-coverage and enforce coverage gate in check-fast ( #34 )
2026-05-14 05:29:41 +02:00
Bot of Thomas Güttler
3125713e6b
refactor(A2): extract shared EmailTile widget ( #33 )
2026-05-14 05:20:11 +02:00
Bot of Thomas Güttler
4f3a5434cc
test(T4): extend migration tests to cover all schema versions up to v24 ( #32 )
2026-05-14 05:09:15 +02:00
Bot of Thomas Güttler
17e404407f
test(T2): add widget tests for ThreadDetailScreen and SearchScreen ( #31 )
2026-05-14 04:58:59 +02:00
Bot of Thomas Güttler
dff2b5e2ca
test(T1): add edge-case coverage for EmailRepositoryImpl ( #30 )
2026-05-14 04:43:11 +02:00
Bot of Thomas Güttler
7096c27ede
feat(U6): show sync status indicator in email list app bar ( #29 )
2026-05-14 04:23:07 +02:00
Bot of Thomas Güttler
2715c1613f
feat(U4): background sync and local notifications for new mail ( #28 )
2026-05-14 04:06:35 +02:00
Bot of Thomas Güttler
0e291b509b
feat(U2): sync local drafts with IMAP Drafts folder ( #27 )
2026-05-14 00:27:47 +02:00
Bot of Thomas Güttler
7421855922
feat(U1): show Unsubscribe chip in email detail ( #26 )
2026-05-14 00:09:14 +02:00
Bot of Thomas Güttler
855f9a3a6d
feat(S2): validate IMAP/SMTP hostnames against injection ( #25 )
2026-05-13 23:49:30 +02:00
Bot of Thomas Güttler
a0c35c647a
test(R6): backoff stress tests for AccountSyncManager ( #24 )
2026-05-13 23:37:40 +02:00
Bot of Thomas Güttler
fc592c475f
feat(R4): dismissible sync error banner in email list ( #23 )
2026-05-13 23:14:44 +02:00
Bot of Thomas Güttler
beae8d8843
feat(R2): force full sync escape hatch in account edit screen ( #22 )
2026-05-13 22:57:36 +02:00
Bot of Thomas Güttler
eddcc17c41
fix(R1): persist undo history across restarts ( #20 )
2026-05-13 22:35:08 +02:00
guettlibot and Thomas SharedInbox
6d58ee1e00
Fix Issues 1, 2, and 3: Headers, Undo, and Crash Reporting ( #6 )
...
## Overview
This PR implements several fixes and enhancements requested in the latest session:
### Fixes
1. **Issue 1: Raw Email Headers**
- Added database support for raw headers.
- Added a new Headers tab in the email detail screen with a zebra-colored table display.
2. **Issue 2: Exception on Undo of Delete**
- Added `toJson` and `fromJson` to `EmailAddress` model to fix serialization during undo.
3. **Issue 3: Crash Reporting**
- Added a button to the Crash Screen to report issues directly on Codeberg.
### Infrastructure
- Added Nix experimental features check to `Taskfile.yml` to ensure a consistent dev environment.
## Verification
- Manually verified the Headers display on Linux.
- Verified Undo for IMAP and JMAP accounts.
- Verified the Crash Screen button.
Co-authored-by: Thomas SharedInbox <sharedinbox@thomas-guettler.de >
Reviewed-on: https://codeberg.org/guettli/sharedinbox/pulls/6
2026-05-09 18:49:34 +02:00