Commit 35ad020
fix: IMAP MSN→UID-Bug (kritisch), NIL-Guard, MIME-Charset + Invoice-Bundle-Feature
Bugsweep IMAP/Mail-Abruf:
- fix(KRITISCH): _search_imap verwendet jetzt uid('search') und uid('fetch')
statt search()/fetch() — UIDs bleiben stabil auch wenn andere Clients
gleichzeitig Mails verschieben/löschen (RFC 3501 §2.3.1.1, MSN/UID-Bug).
- fix: NIL-Guard für uid('fetch')-Antwort vor msg_data[0][1]-Zugriff
(Server liefert bei gelöschten UIDs leere/fehlerhafte Strukturen).
- fix: _get_imap_message_body liest Charset aus Content-Type-Header
(get_content_charset) statt blind UTF-8 anzunehmen; Fallback auf UTF-8
bei unbekanntem Charset-Label. Verhindert Mojibake bei ISO-8859-1-Mails.
- test: Regressionstests für alle drei Bugs in test_integration.py;
bestehende FakeMail-Tests auf uid()-Schnittstelle umgestellt.
Invoice-Bundle-Feature (lokale Vorentwicklung):
- feat: Neues Modul invoice_bundle.py (Build/Write/Load/Apply)
- feat: Bundle-Export und Bundle-Import in MainWindow
- feat: Neue Invoice-Felder profile_id, currency, review_status, notes,
account_name, message_id_hash, mail_folder
- test: test_invoice_bundle.py + test_ui_accessibility.py (Bundle-Buttons)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent ec9b495 commit 35ad020
9 files changed
Lines changed: 989 additions & 41 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
| 20 | + | |
19 | 21 | | |
20 | 22 | | |
21 | 23 | | |
22 | 24 | | |
| 25 | + | |
| 26 | + | |
23 | 27 | | |
24 | 28 | | |
25 | 29 | | |
| |||
54 | 58 | | |
55 | 59 | | |
56 | 60 | | |
57 | | - | |
| 61 | + | |
58 | 62 | | |
59 | 63 | | |
60 | 64 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
| 49 | + | |
| 50 | + | |
49 | 51 | | |
50 | 52 | | |
51 | 53 | | |
| |||
56 | 58 | | |
57 | 59 | | |
58 | 60 | | |
| 61 | + | |
59 | 62 | | |
60 | 63 | | |
61 | 64 | | |
62 | | - | |
| 65 | + | |
63 | 66 | | |
64 | 67 | | |
65 | | - | |
66 | 68 | | |
67 | 69 | | |
| 70 | + | |
68 | 71 | | |
69 | 72 | | |
70 | 73 | | |
| |||
74 | 77 | | |
75 | 78 | | |
76 | 79 | | |
| 80 | + | |
77 | 81 | | |
78 | 82 | | |
79 | 83 | | |
| |||
84 | 88 | | |
85 | 89 | | |
86 | 90 | | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
87 | 97 | | |
88 | 98 | | |
89 | 99 | | |
| |||
99 | 109 | | |
100 | 110 | | |
101 | 111 | | |
102 | | - | |
103 | 112 | | |
104 | 113 | | |
105 | | - | |
106 | 114 | | |
107 | 115 | | |
108 | 116 | | |
| |||
112 | 120 | | |
113 | 121 | | |
114 | 122 | | |
115 | | - | |
| 123 | + | |
116 | 124 | | |
117 | 125 | | |
118 | 126 | | |
119 | 127 | | |
120 | 128 | | |
121 | 129 | | |
| 130 | + | |
122 | 131 | | |
123 | 132 | | |
124 | 133 | | |
| |||
0 commit comments