Skip to content

Commit c539bde

Browse files
Lukas Geigerclaude
andcommitted
docs: GitHubBot Pfad A — .gitignore, CHANGELOG, llms.txt aktualisiert
- .gitignore: *_FINAL_*.py und *_PREFIXBAK_*.py ignoriert (4 Dev-Artefakte) - CHANGELOG [Unreleased] ###Fixed: 11 Bug-Fixes aus Commit 4c8f5ba dokumentiert (closeEvent-Race, save_config-OSError, keyring-Guard, Worker-Snapshot, stale-Signal, LabelActionWorker-GC, IMAP-search-Guards x2, delete_items-Guard, LIST-Parser x2, Date-Header-Guard, null-Settings-Guard) - CHANGELOG [Unreleased] ###Changed: CI paths-filter-Fix (441d8d7) ergaenzt - llms.txt: Audience (5 Zielgruppen), 10 Search Phrases, Last-checked: 2026-06-11 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 4c8f5ba commit c539bde

3 files changed

Lines changed: 36 additions & 7 deletions

File tree

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,7 @@ DECISIONS.md
7070
PORTIERUNGSPLAN.md
7171
TODO.md
7272
DONE.md
73+
74+
# ---- Temporäre Backup-Dateien aus Entwicklungsphasen ----
75+
*_FINAL_*.py
76+
*_PREFIXBAK_*.py

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,20 @@ Format basiert auf [Keep a Changelog](https://keepachangelog.com/de/1.1.0/).
2424
- README copy, screenshot alt text, app title, and discovery metadata now describe UniversalMailCleaner as a local-first Gmail and IMAP cleanup app
2525
- README and `llms.txt` now include clearer start points and search/disambiguation wording for Gmail cleanup, IMAP mailbox cleanup, large-mail finding, and local-first Windows mail management
2626
- Scan settings, selected IMAP target folders, and scheduler exchange settings now persist in the desktop config and portable profile
27+
- CI: source-platform smoke workflow `paths:` filter removed so the smoke now triggers on changes to any module (`imap_client`, `models`, `gmail_service`, `profile_exchange`), not just the main file
2728

2829
### Fixed
30+
- `mail_imap_cleaner_v1.py` / `closeEvent`: Worker is now stopped before `save_config` to avoid a race condition on window close.
31+
- `mail_imap_cleaner_v1.py` / `save_config`: `OSError` is now caught so a failed config write doesn't crash the app.
32+
- `mail_imap_cleaner_v1.py` / `add_acc`: `keyring.set_password` is now wrapped in try/except to handle missing or locked keyring backends gracefully.
33+
- `workers.py` / `Worker.__init__`: Account list is now snapshotted as a copy, preventing cross-thread mutation with the GUI account list.
34+
- `mail_imap_cleaner_v1.py` / `run_worker`: Stale `data_ready` signal is disconnected before the worker is replaced, avoiding the Qt signal-to-deleted-object crash.
35+
- `mail_imap_cleaner_v1.py` / `_run_label_service_task`: `LabelActionWorker` is now stored in an instance list to prevent it from being garbage-collected while running.
36+
- `imap_client.py` / `run_rules`: `imaplib.IMAP4.error` and `data is None` guard added around `search()` to handle unexpected server responses.
37+
- `imap_client.py` / `scan_large`: Same `imaplib.IMAP4.error` and `data is None` guard added around `search()`.
38+
- `workers.py` / `delete_items`: Added interruption check and per-folder `try/except` for both IMAP and generic errors to avoid silent drop of remaining folders on partial failure.
39+
- `imap_client.py` / `list_folders`: IMAP `LIST` response parser now handles both quoted and unquoted folder names (fixes folders containing spaces, e.g. Exchange `Deleted Items`).
40+
- `imap_client.py` / `find_trash_folder`: Same quoted/unquoted `LIST` parser applied so trash detection works on Exchange and non-standard IMAP servers.
2941
- `workers.py`: guard against missing `Date` header in `scan_large` (`None` slice raised `TypeError`)
3042
- `profile_exchange.py`: guard against `null` settings in `load_profile_payload` (`None or {}` pattern)
3143
- `imap_client.py`: escape backslashes in IMAP quoted strings per RFC 3501 to prevent broken search queries

llms.txt

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,26 @@ UniversalMailCleaner is a local-first Windows desktop app for cleaning IMAP and
1313

1414
## Audience
1515

16-
This project is for users who want local mailbox cleanup without a hosted inbox-management service. Typical searches include Gmail cleaner, Gmail cleanup tool, IMAP cleaner, mailbox cleaner, large email finder, Gmail label cleanup, local-first email management, and Windows email cleaner.
17-
18-
## Search Positioning
19-
20-
Use UniversalMailCleaner for local-first Gmail cleanup, IMAP mailbox cleaning, safe trash-mode email deletion, undoable mailbox cleanup, Gmail label cleanup, large email finder workflows, and PySide6 Windows email management.
21-
22-
Do not describe it as an email marketing platform, CRM, hosted unsubscribe service, server-side mailbox proxy, or browser-only Gmail extension.
16+
- **Privacy-conscious Windows users** who want to clean Gmail or IMAP mailboxes without handing their inbox to a cloud service.
17+
- **Gmail power users** who need label-aware cleanup, Drive file scanning, large-mail detection, and OAuth2-based management — all running locally.
18+
- **IMAP users** on GMX, Outlook, T-Online, and other standard providers who want rule-based age/sender/subject filters with safe trash mode.
19+
- **Freelancers and small businesses** looking for scheduled mailbox maintenance without a subscription or hosted service.
20+
- **Developers** building or extending PySide6 Windows desktop workflows for email management, IMAP automation, or Gmail API integration.
21+
22+
## Search Phrases
23+
24+
- `local Gmail cleanup tool`
25+
- `IMAP mailbox cleaner Windows`
26+
- `Gmail label cleanup local app`
27+
- `large email finder Gmail IMAP`
28+
- `safe trash mode email deletion`
29+
- `undoable mailbox cleanup`
30+
- `Gmail Drive storage cleaner desktop`
31+
- `PySide6 email management app`
32+
- `local-first Gmail and IMAP cleaner`
33+
- `Windows email cleaner no subscription`
34+
35+
## Last-checked: 2026-06-11
2336

2437
## Safety Model
2538

0 commit comments

Comments
 (0)