|
|
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 |
|
|
|
a992af0e02
|
refactor: remove action_required/action_items/key_points, keep summary concise
|
2026-07-11 19:46:18 +08:00 |
|
|
|
1957eb2a73
|
feat: extract clickable links from email and show as URL buttons
|
2026-07-11 19:38:33 +08:00 |
|
|
|
be4e957af9
|
feat: verification emails displayed as platform + code
|
2026-07-08 16:15:51 +08:00 |
|
|
|
9991e4ef17
|
feat: promotional emails summarized as who promotes what
|
2026-07-08 16:13:54 +08:00 |
|
|
|
ea6358019d
|
chore: AI并行workers 5→10
|
2026-07-06 20:13:15 +08:00 |
|
|
|
d70b817fd4
|
feat: AI并行处理 + 修复邮件丢失
- _ai_processor 改用 ThreadPoolExecutor(5 workers) 并行调用AI
- _tg_worker 每轮排空所有待发TG消息(原来每轮只取1条)
- fetch_unseen_emails 单封FETCH失败不再丢弃整个批次,跳过继续
|
2026-07-06 20:12:24 +08:00 |
|