- Replace --export-dir (doesn't exist) with --dir (correct v1.0.6 flag)
- Add handlers for the operation prompt (send 'B') and 'Do you wish to
proceed?' (send 'Yes') which were previously unhandled
- After export, locate the actual mail_<timestamp> directory the CLI creates
under <base>/<Email>/ and return it so callers get the right path
- Update prompt pattern for 'Username:' (CLI uses 'Username' not 'Email')
- _clean_export_dir now uses shutil.rmtree since the returned path is the
mail_* subdir, not a flat file directory
https://claude.ai/code/session_01KjaNo9RXevw6x1DjJD8mj6
- logger.py: root-level handlers; normal mode shows only user-facing INFO
(sync, export, push, MBOX) plus WARNING/ERROR; --debug shows all DEBUG
with full context (module.func:line). Third-party loggers silenced to WARNING.
- main.py: add --debug CLI flag, call configure_logging() at startup,
auto-trigger sync on first run or when last sync is overdue by the interval
- database.py: add metadata table with record_sync_time() / get_last_sync_time()
so startup knows whether a sync is due; sync time recorded on success
- forwarder.py: INFO at push start and push complete with counts
- packager.py: INFO before MBOX conversion begins
- exporter.py: INFO when Proton Mail export starts
https://claude.ai/code/session_01KjaNo9RXevw6x1DjJD8mj6
- Lower console handler from INFO to DEBUG so all log calls are visible
- Enrich format to include function name and line number for full context:
TIMESTAMP [LEVEL ] module.func:line — message
https://claude.ai/code/session_01KjaNo9RXevw6x1DjJD8mj6
pyrage 1.3.0 removed the Recipient/Identity class pattern in favour of
pyrage.passphrase.encrypt(plaintext, passphrase) and
pyrage.passphrase.decrypt(ciphertext, passphrase) top-level functions.
Update _encrypt/_decrypt in config.py accordingly.
https://claude.ai/code/session_01KjaNo9RXevw6x1DjJD8mj6