OoO
db02ecf2cf
feat(telegram): ADR-019 Phase 1 - PPT data freshness gate + store_insight fix
...
CD Pipeline / deploy (push) Successful in 2m55s
ADR-019 Phase 1 (止血):PPT 生成前 probe 資料新鮮度。月初/缺資料期間用戶按
ppt:monthly/daily 不再產出空白報告,改主動 inline keyboard 詢問:
- 改看最新有資料的月份/日期(一鍵)
- 自訂月份/日期(接 await:date_ppt_*)
- 取消
新增 PPTDataInsufficientError exception + _ppt_check_data_freshness() helper。
_generate_ppt_cmd 簽章加 _reply_to=None;_ppt_background 靜默吞此例外。
順手修同檔 :1976/:1993 兩處 store_insight() positional args 錯位 bug —
原本 (date, report_type, ai_text) 對應 signature (insight_type, content, period)
完全錯位,導致 period varchar(50) 被 2000 字 AI 內容截斷、INSERT 失敗、
ai_insights 表寫入永久失敗。改成 kwargs 呼叫。
ADR-019 (Telegram Bot Agentic Conversation Layer) 同步落地,Status: Accepted。
六 Phase 路線圖見 ADR 文件,本 commit 完成 Phase 1。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-02 12:52:45 +08:00
OoO
1a886d962b
fix(telegram): dedupe webhook+polling updates via shared DB guard
...
CD Pipeline / deploy (push) Successful in 8m50s
Webhook (Flask) and polling (momo-telegram-bot) consumed the same
Telegram update_id, causing /menu callbacks to fire twice. Add a
shared dedup module backed by telegram_update_dedup table (300s TTL,
60s cleanup) with in-memory fallback, wired into both paths.
Polling launcher now skips startup when webhook is configured to
prevent dual-consumption at the source.
38 tests across webhook, menu keyboards, telegram_api, dedup guard,
and trend bot service.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-02 12:01:04 +08:00
OoO
75de76ac12
fix(momo): block EC404 auto-open with end-to-end URL guard
...
CD Pipeline / deploy (push) Has been cancelled
- normalize URLs at write time (scheduler crawlers, routes) to drop
javascript:/EC404/placeholder i_code (momo_/manual_/pchome_)
- add global click+auxclick guard in base.html and ewoooc_base.html
that intercepts blocked MOMO URLs and redirects to safe i_code URL
- per-page dashboards reuse the same isLikelyMomoIcode validation
- /api/track_momo_link records blocked events for diagnosis
- ship sanitize_momo_urls.py to clean existing polluted DB rows
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-02 12:00:34 +08:00
OoO
026d0e7539
feat(reports): move monthly analysis to v2 shell
CD Pipeline / deploy (push) Successful in 2m14s
2026-05-01 21:13:18 +08:00
OoO
d6782ee710
feat(ai): move recommendation page to v2 shell
CD Pipeline / deploy (push) Successful in 2m13s
2026-05-01 21:08:44 +08:00
OoO
9b3e0a4565
feat(ai): move history page to v2 shell
CD Pipeline / deploy (push) Successful in 2m19s
2026-05-01 21:06:17 +08:00
OoO
939ed5eef5
feat(ai): move intelligence page to v2 shell
CD Pipeline / deploy (push) Successful in 2m18s
2026-05-01 21:03:19 +08:00
OoO
7d46ff9ba5
feat(competitor): persist match attempts
CD Pipeline / deploy (push) Successful in 2m9s
2026-05-01 20:56:17 +08:00
OoO
c1f43b0ae4
fix(campaign): persist full crawl snapshots
CD Pipeline / deploy (push) Successful in 2m22s
2026-05-01 20:48:28 +08:00
OoO
bb99dfeab6
feat(campaign): restore operations table signals
CD Pipeline / deploy (push) Has been cancelled
2026-05-01 20:43:46 +08:00
OoO
4e853a233f
perf(dashboard): speed up competitor overview
CD Pipeline / deploy (push) Successful in 2m12s
2026-05-01 20:36:25 +08:00
OoO
b9d6186d68
feat(frontend): sync latest MOMO Pro prototype styling
CD Pipeline / deploy (push) Successful in 2m18s
2026-05-01 20:32:23 +08:00
OoO
066cf1846f
feat(dashboard): show AI pick evidence gaps
CD Pipeline / deploy (push) Successful in 2m18s
2026-05-01 17:17:03 +08:00
OoO
e86075d59d
fix(dashboard): avoid redundant prewarm rebuilds
CD Pipeline / deploy (push) Successful in 2m15s
2026-05-01 16:36:58 +08:00
OoO
2ac7410d40
fix(dashboard): prewarm cache and expose pick evidence
CD Pipeline / deploy (push) Successful in 2m20s
2026-05-01 16:34:13 +08:00
OoO
9e2337764b
fix(ai): supersede old product picks
CD Pipeline / deploy (push) Successful in 2m48s
2026-05-01 16:24:15 +08:00
OoO
b3d00a011c
fix(dashboard): warm cache after AI pick refresh
CD Pipeline / deploy (push) Successful in 3m37s
2026-05-01 16:16:39 +08:00
OoO
b447aefcfb
fix(ai): clear dashboard cache after pick regeneration
CD Pipeline / deploy (push) Successful in 2m27s
2026-05-01 16:10:51 +08:00
OoO
3920701e1a
feat(dashboard): optimize cache and AI pick confidence
CD Pipeline / deploy (push) Successful in 2m46s
2026-05-01 16:01:52 +08:00
OoO
0334051aa7
feat(dashboard): 匯出 AI 挑品操作清單
CD Pipeline / deploy (push) Successful in 2m39s
2026-05-01 15:43:57 +08:00
OoO
1d1a7f6e94
feat(dashboard): 強化 AI 挑品清單決策資訊
CD Pipeline / deploy (push) Successful in 2m22s
2026-05-01 15:22:21 +08:00
OoO
a5de082437
feat(dashboard): 顯示 50 品 AI 挑品清單
CD Pipeline / deploy (push) Successful in 3m12s
2026-05-01 15:08:41 +08:00
OoO
6bce46bbc7
fix(runtime): 強化健康檢查監控韌性
CD Pipeline / deploy (push) Successful in 2m29s
2026-05-01 14:46:49 +08:00
OoO
77b085f813
fix(dashboard): 快取比價決策總覽
CD Pipeline / deploy (push) Successful in 2m28s
2026-05-01 14:32:51 +08:00
OoO
ea15aa6437
refactor(vendor): 抽出廠商管理查詢服務
CD Pipeline / deploy (push) Failing after 8m57s
2026-05-01 14:20:09 +08:00
OoO
1012d609d4
feat(dashboard): 顯示 PChome 比價決策總覽
CD Pipeline / deploy (push) Has been cancelled
2026-05-01 14:19:18 +08:00
OoO
fbc85fcedc
refactor(vendor): 抽出缺貨 API 查詢服務
CD Pipeline / deploy (push) Successful in 2m11s
2026-05-01 14:12:56 +08:00
OoO
b5de8d5d61
fix(ai): 價格調整轉人工覆核
CD Pipeline / deploy (push) Successful in 2m16s
2026-05-01 14:09:54 +08:00
OoO
62f8f1d52d
refactor(vendor): 抽出缺貨 V2 查詢服務
CD Pipeline / deploy (push) Has been cancelled
2026-05-01 14:07:10 +08:00
OoO
8a3d50933b
feat(ai): 自動補抓並重算 PChome 挑品
CD Pipeline / deploy (push) Successful in 2m18s
2026-05-01 14:02:37 +08:00
OoO
043a7dc915
feat(ai): 補抓 PChome 待比對商品
CD Pipeline / deploy (push) Successful in 2m20s
2026-05-01 13:40:37 +08:00
OoO
9f9e0727e7
fix(ai): 自動偵測挑品銷售欄位
CD Pipeline / deploy (push) Successful in 1m50s
2026-05-01 10:18:07 +08:00
OoO
70de91f1f6
fix(ai): 修正挑品清單銷售日期查詢
CD Pipeline / deploy (push) Successful in 2m14s
2026-05-01 10:12:32 +08:00
OoO
20f6b2ded2
fix(feeder): 控制 PChome 多關鍵字搜尋成本
CD Pipeline / deploy (push) Successful in 2m16s
2026-05-01 10:08:24 +08:00
OoO
82d759d3b1
feat(ai): 建立 PChome 銷售挑品清單
CD Pipeline / deploy (push) Successful in 2m24s
2026-05-01 10:05:16 +08:00
OoO
55855ef508
feat(frontend): 保存 PChome 競品價格歷史
CD Pipeline / deploy (push) Successful in 1m39s
2026-05-01 00:53:37 +08:00
OoO
6b8e511246
feat(frontend): 補齊活動看板篩選與價格歷史區間
CD Pipeline / deploy (push) Successful in 1m44s
2026-05-01 00:43:38 +08:00
OoO
22b27d19df
fix(frontend): 讓價格圖表按鈕直接開啟歷史走勢
CD Pipeline / deploy (push) Successful in 1m44s
2026-05-01 00:38:32 +08:00
OoO
4945aeed3b
fix(frontend): 還原商品看板價格歷史圖表
CD Pipeline / deploy (push) Successful in 1m45s
2026-05-01 00:35:04 +08:00
OoO
8e9fb3dd17
feat(frontend): 將 V2 設為正式預設介面
CD Pipeline / deploy (push) Successful in 1m46s
2026-05-01 00:28:56 +08:00
OoO
15b3bae9cb
feat(frontend): 新增廠商缺貨匯入 V2
CD Pipeline / deploy (push) Successful in 1m42s
2026-05-01 00:21:26 +08:00
OoO
f9fec4706e
fix(ci): 修正 Gitea Actions workflow YAML
CD Pipeline / deploy (push) Successful in 1m46s
2026-05-01 00:15:03 +08:00
OoO
a821b733ad
docs(frontend): 記錄廠商缺貨清單 V2
2026-05-01 00:12:28 +08:00
OoO
99d5bc8e81
feat(frontend): 新增廠商缺貨清單 V2
2026-05-01 00:12:06 +08:00
OoO
c9247f7a79
feat(frontend): 新增廠商缺貨 V2 feature flag
2026-05-01 00:06:46 +08:00
OoO
6c73c57a91
feat(frontend): 新增廠商缺貨 V2 入口
2026-05-01 00:04:12 +08:00
OoO
3398c15a75
feat(frontend): 新增 EDM V2 feature flag
2026-04-30 23:56:17 +08:00
OoO
d5a836e8da
fix(frontend): 掛載 Flask web static assets
2026-04-30 23:53:23 +08:00
OoO
41a08886cc
fix(frontend): 掛載 V2 static assets
2026-04-30 23:50:52 +08:00
OoO
0e18ff304c
feat(frontend): 新增 V2 dashboard feature flag
2026-04-30 23:45:49 +08:00