- Add fcntl file locking around read-modify-write cycles on both
decision_history.json and pending_emails.json to prevent data
corruption from parallel processes
- Pass --page-size 500 to himalaya envelope list to avoid silently
missing emails beyond the default first page
- Use ollama.Client(host=...) so the config.json host setting is
actually respected
- Fall back to sender-only matching in compute_confidence when LLM
returns no valid taxonomy tags, instead of always returning 50%
- Fix _format_address to return empty string instead of literal
"None" or "[]" for missing address fields
- Remove dead code: unused PENDING_FILE, _extract_domain(), sender_domain
field, imap_uid fallback, check_unseen_only config key
- Fix stale comments: removed tag references in README and docstrings,
top_domains -> top_senders, 1-based number -> scan_index number
- Make _extract_email_address public (used by 3 modules)
- Extract _format_address helper to deduplicate from/to parsing
- Batch pending queue disk I/O in review act/accept (load once, save once)
- Reuse cleared pending dict in scan instead of redundant disk load
- Track envelope IDs during scan loop to catch duplicates
- Fix default confidence_threshold 75 -> 85 to match config and docs
- Update get_relevant_examples default n=10 -> n=5 to match caller
- Add graceful error for --recent with non-numeric value