Commit Graph

79 Commits

Author SHA1 Message Date
687e60ede4 fix: add error logging for send_thinking failures in email poller 2026-07-15 19:02:59 +08:00
da1b266350 fix: increase Telegram long-poll timeout to 5s and HTTP timeout to 15s 2026-07-15 18:51:04 +08:00
dcdfba11fa feat: show email subject and sender in all status messages 2026-07-15 18:39:58 +08:00
2822075f2f refactor: split TG worker into poller (callbacks) and sender (email summaries) threads 2026-07-15 18:35:01 +08:00
2744d9dd77 fix: process one queued email per poll cycle to keep callbacks responsive 2026-07-15 18:32:42 +08:00
17514302f9 fix: import is_uid_processed instead of is_uids_processed 2026-07-15 18:25:57 +08:00
d42022cc2e fix: ensure data directory exists before DB connection in all threads 2026-07-15 18:18:24 +08:00
54c4bf00fb refactor: replace all in-memory state with SQLite database 2026-07-14 14:49:23 +08:00
c3132f746a feat: AI generates plain_text field, view full text shows readable version instead of HTML 2026-07-14 14:37:12 +08:00
dd7fc61fd4 fix: remove all body truncation, show full email text everywhere 2026-07-14 14:34:17 +08:00
5113d78662 prompt: detailed instructions for extracting unsubscribe links from promotional emails 2026-07-13 08:38:05 +08:00
8b885f1c4c fix: use threading.Event for immediate shutdown instead of sleep loops 2026-07-13 08:34:02 +08:00
8b577b4c12 prompt: emphasize extracting unsubscribe links from promotional emails 2026-07-13 08:30:44 +08:00
26468aa43d fix: use ellipsis character instead of dots in status messages for MarkdownV2 compatibility 2026-07-13 08:28:23 +08:00
98147e6a6c fix: omit parse_mode from payload when None instead of sending null 2026-07-13 08:27:16 +08:00
bd5b824a6a fix: add parse_mode param to edit_message, status messages use plain text 2026-07-13 08:23:42 +08:00
01504e6295 feat: three-stage status: 获取邮件中 -> 等待处理 -> AI思考中 2026-07-13 08:19:36 +08:00
02b0941ed0 feat: two-stage status messages: 获取邮件中 -> AI思考中 2026-07-13 08:15:25 +08:00
85b02651b9 revert: use debug log for unselectable folders instead of warning 2026-07-13 08:11:30 +08:00
e74ae8be88 fix: quote folder names in IMAP SELECT for folders with spaces 2026-07-13 08:10:39 +08:00
f38259e4bb fix: mark_as_seen uses readonly=False to actually set Seen flag 2026-07-13 08:05:40 +08:00
5368812e45 fix: skip NoSelect folders, clean up debug logging 2026-07-13 08:04:26 +08:00
8c088ddff5 debug: add skip_uids logging to diagnose re-fetch issue 2026-07-13 07:54:13 +08:00
0ec2048bc5 fix: never discard from _processing_uids to prevent re-fetching 2026-07-13 07:49:09 +08:00
155a6dfc53 fix: skip already-processing UIDs at FETCH level to avoid downloading email content 2026-07-13 07:35:28 +08:00
d31ec18ea3 fix: restore -FLAGS Seen after FETCH, protected by _processing_uids 2026-07-13 07:13:08 +08:00
02cf4b88b6 fix: add _processing_uids to prevent re-fetching emails being processed 2026-07-13 07:12:43 +08:00
ae140df3fb chore: remove accidental file 2026-07-13 06:57:28 +08:00
e9398526e6 fix: login without selecting INBOX first so conn.list() returns all folders 2026-07-13 06:57:06 +08:00
479b855390 feat: scan all IMAP folders for unread emails, not just INBOX 2026-07-13 00:16:28 +08:00
46bc7c7057 prompt: force simplified Chinese for all AI outputs except reply suggestions 2026-07-13 00:12:50 +08:00
bbc43f8972 fix: keep pending_uids until TG send completes to prevent duplicate processing 2026-07-12 23:51:45 +08:00
87e4b0b01e prompt: refine link extraction to exclude promotional links 2026-07-12 10:15:25 +08:00
fc4c5a175c feat: show thinking indicator during AI processing, accept non-numeric verification codes 2026-07-11 22:54:06 +08:00
1c7d0c1b00 fix: mark emails back as UNSEEN after FETCH to counter server auto-read 2026-07-11 22:45:31 +08:00
5320b10317 fix: per-email error handling with connection rebuild, remove @retry on fetch 2026-07-11 22:43:39 +08:00
d8807ffbb5 fix: remove body truncation for large emails 2026-07-11 22:38:40 +08:00
8d40ed8b19 fix: use BODY.PEEK for large emails to prevent server auto-marking as read on timeout 2026-07-11 22:38:07 +08:00
57191ab00e feat: remove body truncation for all AI requests, increase API timeout to 120s 2026-07-11 22:32:47 +08:00
13b76c00ab feat: add tell me more button for promotion emails with AI-generated details 2026-07-11 22:17:10 +08:00
cf0f7d3956 style: restructure email formats with 收件账户 and app_name for verification 2026-07-11 22:11:15 +08:00
e56bdef0f7 fix: use single backtick for tap-to-copy, remove copy_text button 2026-07-11 22:05:02 +08:00
6d1fe29df4 fix: copy_text field must be an object with text key 2026-07-11 21:57:19 +08:00
05b15d9ee3 fix: use copy_text field instead of duplicate text key 2026-07-11 21:52:07 +08:00
03c18cdb76 fix: copy button shows only the code number 2026-07-11 21:49:54 +08:00
b835812f38 feat: add copy_text button for verification codes 2026-07-11 21:47:54 +08:00
070c32071a style: beautify email formats with type labels and consistent layout 2026-07-11 21:42:35 +08:00
5a21aeee14 chore: remove test scripts 2026-07-11 21:35:58 +08:00
8007fa1cc4 fix: always use MarkdownV2 for all message types 2026-07-11 21:35:22 +08:00
43994d2b0d fix: remove null parse_mode from tg payload, add error logging 2026-07-11 21:22:20 +08:00