64 KiB
64 KiB
Current Execution Queue 2026-05-24
目的:把目前使用者要求的核心產品優化整理成單一執行佇列,避免 UI、比價、PPT、AI 觀測台與部署驗證漏項。 原則:準確率優先;不放寬 MOMO / PChome 全域比對門檻;正式部署不碰
momo-db;每個工作流都需有測試或正式 smoke。
0. 部署與驗證通道基準
- 確認
main、Gitea、正式環境版本一致。 - 修復或確認 SSH / Gitea / 188 hop 可用。
- 每次上線只 recreate
momo-app、scheduler、telegram-bot,禁止使用--remove-orphans,禁止影響momo-db。 - 2026-05-24 21:33 CST 狀態:
main已推 Gitea 並部署到 188,正式/health為V10.451。本輪只 recreatemomo-app;scheduler、telegram-bot未重建但保持 healthy;未使用--remove-orphans,未碰momo-db。Smoke 通過:主要頁面 HTTP 200、三個 app 容器 healthy、/api/pchome-review/queue可用於recoverable_low_score/legacy_low_scoreread-only 查詢,且 10 分鐘錯誤 log 未見 Traceback / ERROR。 - 2026-05-24 22:17 CST 狀態:
main已推 Gitea 並部署到 188,正式/health為V10.453。本輪 recreatemomo-app、scheduler、telegram-bot;未使用--remove-orphans,未碰momo-db。Smoke 通過:三個 app 容器 healthy、Gemini hard disabled 且 24 小時ai_calls無 Gemini provider、Ollama 順序維持 GCP-A → GCP-B → 111、/api/pchome-review/queue三個 status 查詢成功、rescore audit read-onlyselection_mode=latest_sku_only。 - 2026-05-24 22:55 CST 狀態:
main已推 Gitea 並部署到 188,正式/health為V10.455。本輪 recreatemomo-app、scheduler、telegram-bot;未使用--remove-orphans,未碰momo-db。Smoke 通過:三個 app 容器 healthy、EventRouterdecision_envelope直送不進 L1/L2 AI handler、Telegram 信封顯示標的 SKU 與 PChome 候選、Gemini hard disabled 且 24 小時ai_calls無 Gemini provider、Ollama 順序維持 GCP-A → GCP-B → 111、/api/pchome-review/queue?review_status=rescore_accepted查詢成功、10 分鐘錯誤 log 未見 Traceback / ERROR / CRITICAL。已執行--retract-variant-accepted,最新rescore_accepted_current中variant_selection_review殘留為 0。 - 2026-05-24 23:05 CST 狀態:
main已推 Gitea 並部署到 188,正式/health為V10.456。本輪 recreatemomo-app、scheduler、telegram-bot;未使用--remove-orphans,未碰momo-db。Smoke 通過:三個 app 容器 healthy、/api/pchome-review/queue?review_status=rescore_accepted每筆帶decision_envelope、guardrailcan_auto_execute=false、Gemini hard disabled 且 24 小時ai_calls無 Gemini provider、Ollama 順序維持 GCP-A → GCP-B → 111、5 分鐘三容器錯誤 log 未見 Traceback / ERROR / CRITICAL。 - 2026-05-24 23:17 CST 狀態:
main已推 Gitea 並部署到 188,正式/health為V10.457。本輪 recreatemomo-app、scheduler、telegram-bot;未使用--remove-orphans,未碰momo-db。Smoke 通過:三個 app 容器 healthy、Dashboard PChome 覆核頁顯示dashboard-review-envelope與 HITL、/api/pchome-review/queue?review_status=rescore_accepted仍帶decision_envelope且can_auto_execute=false、Excel flatten helper 輸出決策信封 ID/資料品質/自動執行允許/證據摘要、Gemini hard disabled 且 24 小時ai_calls無 Gemini provider、Ollama 順序維持 GCP-A → GCP-B → 111、5 分鐘三容器錯誤 log 未見 Traceback / ERROR / CRITICAL。 - 2026-05-24 23:30 CST 狀態:
main已推 Gitea 並部署到 188,正式/health為V10.458。本輪 recreatemomo-app、scheduler、telegram-bot;未使用--remove-orphans,未碰momo-db。Smoke 通過:三個 app 容器 healthy、summarize_review_decision_envelopes()產生 3 條 HITL 摘要且全數can_auto_execute=false、_fetch_competitor_summary()帶review_decision_text、/api/pchome-review/queue?review_status=rescore_accepted仍帶decision_envelope且can_auto_execute=false、核心頁面/daily_sales、/growth_analysis、/observability/ppt_audit_history、/market_intel/matches、/vendor-stockout/listHTTP 200;5 分鐘三容器錯誤 log 未見 Traceback / ERROR / CRITICAL,最新rescore_accepted_current中variant_selection_review殘留為 0。 - 2026-05-24 23:43 CST 狀態:
main已推 Gitea 並部署到 188,正式/health為V10.459。本輪 recreatemomo-app、scheduler、telegram-bot;未使用--remove-orphans,未碰momo-db。Smoke 通過:三個 app 容器 healthy、/api/pchome-review/queue?review_status=protected_existing_match輸出existing_match_conflict,建議動作為compare_existing_identity且can_auto_execute=false、Dashboard protected filter / daily / growth / PPT audit HTTP 200;5 分鐘三容器錯誤 log 未見 Traceback / ERROR / CRITICAL。 - 2026-05-24 23:59 CST 狀態:
main已推 Gitea 並部署到 188,正式/health為V10.460。本輪 recreatemomo-app、scheduler、telegram-bot;未使用--remove-orphans,未碰momo-db。Smoke 通過:三個 app 容器 healthy、scripts/check_sales_charts_runtime.js --base-url https://mo.wooo.work --routes /daily_sales,/growth_analysis通過,daily/growth 主要 canvas 均有 Chart.js instance、非零資料點與彩色像素;核心頁面/daily_sales、/growth_analysis、/observability/ppt_audit_history、PChome protected queue API HTTP 200;5 分鐘三容器錯誤 log 未見 Traceback / ERROR / CRITICAL。 - 2026-05-25 08:12 CST 狀態:
main已推 Gitea 並部署到 188,正式/health為V10.461。本輪 recreatemomo-app、scheduler、telegram-bot;未使用--remove-orphans,未碰momo-db。Smoke 通過:三個 app 容器 healthy、Dashboard template 已顯示「尚未搜尋」與「尚未進入 PChome 補抓」、Gemini hard disabled 且 24 小時ai_calls無 Gemini provider、Ollama 順序維持 GCP-A → GCP-B → 111;5 分鐘三容器錯誤 log 未見 Traceback / ERROR / IntegrityError。 - 2026-05-25 08:18 CST 狀態:
main已推 Gitea 並部署到 188,正式/health為V10.462。本輪 recreatemomo-app、scheduler、telegram-bot;未使用--remove-orphans,未碰momo-db。Smoke 通過:三個 app 容器 healthy、Dashboard / AI 中樞 / API / 前端 confirm 均改用「PChome 補抓產線 / 補抓未搜尋 / 未搜尋補抓」、Gemini hard disabled 且 24 小時ai_calls無 Gemini provider、Ollama 順序維持 GCP-A → GCP-B → 111;5 分鐘三容器錯誤 log 未見 Traceback / ERROR / IntegrityError。 - 2026-05-25 08:38 CST 狀態:
main已推 Gitea 並部署到 188,正式/health為V10.464。本輪 recreatemomo-app、scheduler、telegram-bot;未使用--remove-orphans,未碰momo-db。Smoke 通過:三個 app 容器 healthy、/、/?filter=pchome_review、/daily_sales、/growth_analysis、/observability/ppt_audit_history、PChome rescore queue API HTTP 200。DR.WU 三筆 SKU read-only rescore 全數gate_pass=3/3,--apply-accepted後 latest 狀態為rescore_accepted_current、best_match_score=1.0、price_basis=total_price;整體 latest counts 變為true_low_confidence=778、rescore_accepted_current=34。5 分鐘 log 未見 Traceback,但有既有[Embed] all hosts failed錯誤,需列入下一輪 Ollama embedding 健康檢查。 - 2026-05-25 10:04 CST 狀態:
main已推 Gitea 並部署到 188,正式/health為V10.465。本輪 recreatemomo-app、scheduler、telegram-bot;未使用--remove-orphans,未碰momo-db。Smoke 通過:三個 app 容器 healthy、/、/daily_sales、/growth_analysis、/observability/ppt_audit_history、PChome rescore queue API HTTP 200;容器內 routing smoke 證明 resolver 回 111 且allow_111_fallback=false時會改試 GCP-A/GCP-B,輸出tried=['http://34.143.170.20:11434','http://34.21.145.224:11434'];真實短 embedding 在 GCP-A/api/versiontimeout、GCP-B 200 情境下成功回 1024 維向量,耗時 4.59 秒。3 分鐘三容器錯誤 log 未見 Traceback / ERROR / CRITICAL。 - 2026-05-25 12:10 CST 狀態:已部署
V10.467到 188,正式/health為V10.467。本輪 recreatemomo-app、scheduler、telegram-bot;未使用--remove-orphans,未碰momo-db。Smoke 通過:三個 app 容器 healthy、/、/daily_sales、/growth_analysis、/observability/ppt_audit_history、PChome rescore queue API HTTP 200。Production pilot 將 9 筆 focused exact total-price SKU 追加為rescore_accepted_current,整體 latest counts 從true_low_confidence=802/rescore_accepted_current=38變為true_low_confidence=793/rescore_accepted_current=47;目標 SKU 的competitor_prices最新crawled_at仍停在 2026-05-22~2026-05-23,確認本輪未寫正式價差表。已知後續:GCP-A / GCP-B Ollama/api/version目前連線失敗,背景 embedding 正確沒有落 111,但 app/scheduler log 仍會出現[Embed] all 2 hosts failed,需另開 Ollama 健康處理。 - 2026-05-25 12:27 CST 狀態:已部署
V10.468到 188,正式/health為V10.468。本輪 recreatemomo-app、scheduler、telegram-bot;未使用--remove-orphans,未碰momo-db。Smoke 通過:三個 app 容器 healthy、/、/daily_sales、/growth_analysis、/observability/ppt_audit_history、PChome review queue API/api/pchome-review/queueHTTP 200;容器內 mock smoke 證明背景 embedding 在 GCP-A / GCP-B 全失敗後會開啟 60 秒 failure circuit,第二筆不再重複打兩台 GCP,且不落 111。GCP 維運盤點:GCP-A22/11434refused;GCP-B22open 但現有 key publickey denied,部署 smoke 時 GCP-B11434已恢復 200、get_ollama_host()選到 GCP-B;111/api/version可用,但 111 仍不得承接背景bge-m3。 - 2026-05-25 12:39 CST 狀態:已部署
V10.469到 188,正式/health為V10.469。本輪 recreatemomo-app、scheduler、telegram-bot;未使用--remove-orphans,未碰momo-db。Smoke 通過:三個 app 容器 healthy、首頁 / daily / growth / PChome review queue HTTP 200、Gemini hard disabled;allow_111_fallback=False時 GCP-only embedding 全失敗會開啟 failure circuit 並記 WARNING,不再把預期內的背景熔斷打進 ERROR 通道。觀測到 GCP-B/api/version200,但/api/embed仍可能 15s timeout,下一步需修 GCP-A primary 與 GCP-B runner/model 負載。 - 2026-05-25 12:53 CST 狀態:已部署
V10.470到 188,正式/health為V10.470。本輪 recreatemomo-app、scheduler、telegram-bot;未使用--remove-orphans,未碰momo-db。Smoke 通過:三容器 healthy、host health page HTTP 200 並顯示 Runtime 狀態、scheduler probe 寫入 DB。最新host_health_probes:GCP-A unhealthy(11434 refused)、GCP-B unhealthy(EmbedProbe ReadTimeout,/api/tags仍可列出 4 模型)、111 healthy;這補上「HTTP API 活著但模型 runtime 卡住」的假健康監控缺口。 - 2026-05-25 13:38 CST 狀態:已部署
V10.471到 188,正式/health為V10.471。本輪 recreatemomo-app、scheduler、telegram-bot;未使用--remove-orphans,未碰momo-db。Smoke 通過:三容器 healthy、首頁 / daily / growth / host_health / ppt_audit_history / PChome review queue HTTP 200。GCP-Bbge-m3/api/embed直接實測約 6.4s、7.3s、23.5s,原OLLAMA_EMBED_MAX_TIMEOUT=15與 host healthOLLAMA_HOST_HEALTH_EMBED_TIMEOUT=8會誤殺慢但成功的 embedding;預設改為 30s。正式容器內 embedding smoke 回 1024 維、耗時 10.07s;手動 host health probe 後最新狀態為 GCP-A unhealthy、GCP-B healthy、111 healthy。背景 embedding 路由安全不變:GCP-A → GCP-B,不落 111。 - 2026-05-25 14:10 CST 起,
V10.472補 rootless GCP Ollama failover 診斷腳本與 DevOps SOP:scripts/ops/diagnose_ollama_gcp_failover.sh會檢查 direct GCP-A/GCP-B/111、110 proxy11435/11436與 GCP-Bbge-m3runtime。現況輸出:GCP-A direct/api/versionfailed/refused、GCP-B direct OK、111 OK、110:11435 502、110:11436 OK、GCP-B embed OK;110 無免密 sudo,ssh gcp-a22 refused、ssh gcp-bpublickey denied,因此 primary 修復需 GCP/SSH 或 110 root 權限。 - 2026-05-25 14:12 CST 起,
V10.473進行背景 embedding host_health skip:allow_111_fallback=false的背景 embedding 會讀最近host_health_probes,若 GCP-A/GCP-B runtime 已被標 unhealthy,直接跳過該節點並開 GCP circuit,不等待 30 秒 timeout、不落 111;DB 讀取失敗 fail-open。 - 2026-05-25 14:45 CST 起,
V10.474補 PChome near-threshold matcher / feeder 下一階段:HOOOME 白色經典香氛暖燈、Gdesign Aroma Lava 2.0 進 total-price exact;Recipe Box 可撕式水性兒童指甲油保留 identity_review,不自動寫正式價差;Pavaruni 蠟燭 vs 精油與 DASHING DIVA 不同款式仍不放行。known-id refresh 會對 hard-veto 舊候選跑 fresh search recovery;missing known-id 若 fresh search 只有低分候選,也保留 best candidate + diagnostics,不再只記refresh_no_result;正式覆寫保護新增 stronger existing guard。 - 2026-05-25 15:20 CST 起,
V10.475補 rescore CLI 與高分錯配防線:audit CLI 預設不再只掃strong_exact_spec_match,避免新版focused_exact_*理由漏掃;matcher 對香氛暖燈 S/M/L 尺寸差、NITORI 香氛噴霧器型號差直接 hard veto,彩妝色號單邊出現時送variant_selection_review,避免高分但不同 variant 的候選被誤推入 accepted queue。 - 2026-05-25 16:15 CST 起,
V10.476補商業條件差防線:即期品、效期/保存期限、盒損、福利品等條件只出現在單側時,matcher 加commercial_condition_gap並送variant_selection_review,不讓同名但商品狀態不同的候選自動進 accepted queue。 - 2026-05-25 19:20 CST 起,
V10.477補高分錯配防線:SPF 數值不同直接 veto,MAKE UP FOR EVER 定妝噴霧 vs 活氧水不同線直接 veto;多款任選對單一款與單側色號改送variant_selection_review,涵蓋私密潔浴露、身體去角質、美體乳液與染眉膏等。 - 2026-05-25 21:05 CST 起,
V10.480補 accepted-current 風險樣本防線:rom&nd 零絲絨/果凍唇釉 vs 果汁唇釉多款 listing 直接romand_lip_line_conflicthard veto;Relove 潔淨凝露若傳明酸/淨白活性只出現在單側,保留高分但進variant_selection_review;1990 融燭燈不同設計(歐式可彎 vs 韓風原木底座)直接selection1990_wax_lamp_design_conflicthard veto。 - 2026-05-25 21:25 CST 起,
V10.481補 rescore accepted retraction 工具缺口:退回工具會用當前 matcher 重判 latestrescore_accepted_current,凡新版已變variant_selection_review / low_score_current的舊 accepted 會追加退回true_low_confidence,避免人工覆核隊列保留舊版安全閘門放行的候選。Production 已部署/health=V10.481;保守 materialize 15 筆安全 SKU 後再退回 7 筆舊 accepted 變體風險,最新 accepted audit 為scanned=89 / gate_pass=89 / still_low=0。 - 2026-05-25 21:47 CST 起,
V10.482補 exact variant-safe 回收:LUSH 櫻之花身體噴霧 200ml、ARTMIS 金縷梅/蔓越莓私密清潔慕斯 250ml、SO NATURAL FIXX 120ml plain 與 Baan 原味/草莓同 catalog,若雙方同品名、同規格且同明確 variant,移除過度保守的variant_selection_review並進exact / total_price / price_alert_exact;SO NATURAL 經典款/光澤款/霧面款/夏日款 catalog 對單款 120ml 仍維持人工覆核。Production 已部署/health=V10.482,只 materialize 5 筆新增 exact-line SKU 到rescore_accepted_current;latest accepted audit 為scanned=94 / gate_pass=94 / still_low=0,三應用容器 healthy、momo-db未 recreate。 - 2026-05-25 23:03 CST 起,
V10.483收斂舊 gate pass 風險:NARS 遮瑕蜜任選、LOREAL 玻尿酸啵啵精華水/液態紫熨斗 vs 水光精華、SEBAMED 洗髮乳任選、Schick 舒綺 2-in-1 型號落差、TAICEND 保護膜 vs 噴霧,現在都會保留高分但加variant_selection_review與專屬 reason,不再被 rescore 自動送進 accepted queue。Production 已部署/health=V10.483;目標 5 SKU auditgate_pass=0 / still_low=5,並用--retract-variant-accepted退回 4 筆舊 accepted 變體風險,latest accepted audit 為scanned=90 / gate_pass=90 / still_low=0。 - 2026-05-25 12:05 CST 狀態:
main已部署到 188,正式/health為V10.467,待推 Gitea。兩段變更已合併驗證:V10.466 rescore duplicate 改看 latest-state,7 筆 SKU 最新 attempt 全為rescore_accepted_current,competitor_prices/competitor_price_history目標計數未變;V10.467 focused exact matcher 在容器內回exact / total_price / price_alert_exact。本輪 recreatemomo-app、scheduler、telegram-bot;未使用--remove-orphans,未碰momo-db。Smoke 通過:三容器 healthy、PChome rescore queue API HTTP 200、Gemini 24 小時無 provider 紀錄、Ollama env 順序維持 GCP-A → GCP-B → 111、3 分鐘三容器 log 未見 Traceback / ERROR / CRITICAL / IntegrityError。
1. MOMO / PChome 核心比價準確率
- 查正式
competitor_match_attempts最新狀態分布與高量低信心 cohort。 - 以小批次 pilot 處理
recoverable_low_score,優先品線:- DASHING DIVA
- aroma / diffuser / essential oil
- lip / cosmetic variant
- private-care / body-care
- 2026-05-24 22:10 CST 起,PChome rescore audit 預設對齊 review queue 最新狀態:先取每個 SKU 最新 attempt,再套用 status / reason 篩選;歷史候選回看需明確使用
--include-historical-candidates。 - 2026-05-24 22:20 CST 起,matcher replay 先套用 V10.453 安全修正:
EX8型號不視為x8入數,香氛固體凝膠一側泛稱、一側具體香味/No. 款式走 veto;Herbacin 小甘菊護手霜 20ml brandless 可作窄範圍安全回收。 - 2026-05-24 22:42 CST 起,feeder / rescore audit 套用 V10.454 安全閘門:
identity_review/manual_review/variant_selection_review的近門檻候選只能留在覆核,不能由 replay、refresh 或accepted_current入隊語意自動寫正式 PChome 價差。 - 2026-05-24 22:48 CST 已執行 production rescore 入隊:745 筆
true_low_confidence中先有 2 筆通過舊 gate;V10.454 gate 補上variant_selection_review排除後,SKU8884618KATE 多款任選唇膏已退回最新true_low_confidence,最終只保留 SKU10922465Herbacin 小甘菊護手霜 20ml 為rescore_accepted_current人工覆核 attempt;正式價格表未寫入,Dashboard / competitor intel cache 已清除。 - 2026-05-24 22:44 CST 起,rescore audit 補
--retract-variant-accepted工具化退回路徑;若最新rescore_accepted_current仍帶variant_selection_review,只追加true_low_confidenceattempt,不刪歷史、不寫正式價格表。 - 只新增窄範圍、可解釋 matcher 規則。
- 保留
MIN_MATCH_SCORE、identity_veto、既有正式候選覆寫保護。 - 驗收:
matched有增加、目標low_score下降、needs_review不異常上升、無明顯跨色號/跨款式/跨劑型錯配。
2. 商品列表與人工覆核閉環
- 商品列表不得再大量顯示籠統「待對比」。
- 將狀態拆成:尚未搜尋、價格過期待刷新、近門檻可救回、證據不足、既有強配對保護、已排除、需單位價比較、找不到同款。
- 每筆覆核要顯示候選 PChome 商品、候選價、match score、診斷原因、下一步動作。
- 人工採用 / 否決 / 單位價 / 補搜尋必須能回寫 review queue,並影響 feeder 後續行為。
- 2026-05-25 00:15 CST 起,PChome 補抓操作入口同步收斂為「PChome 補抓產線 / 補抓未搜尋 / 未搜尋補抓」,包含 Dashboard、AI 中樞、前端 confirm 與 API 回覆,不再讓操作入口殘留籠統「待比對」。
- 2026-05-25 00:06 CST 起,尚未進入 PChome 搜尋/補抓的商品列表文案改為「尚未搜尋」與「尚未進入 PChome 補抓」,不再顯示籠統「待比對」,避免和低信心待人工覆核混淆。
- 2026-05-24 23:40 CST 起,
protected_existing_match的 reviewdecision_envelope會解析existing_match_conflict,列出既有正式候選、新候選、雙方 score 與 delta;這類案件仍不可自動覆蓋正式價差,但人工覆核、Agent 與 PPT 不再只看到籠統「既有保護」。
2.1 近門檻 / 高信心待審 matcher 補強
- 2026-05-25 08:30 CST 起,rescore audit 支援
--skurepeatable 精準篩選;production pilot 可只指定 3-10 個 SKU 執行 read-only audit 或--apply-accepted,避免寬範圍掃描誤把不同 cohort 混在同一次驗證。 - 2026-05-25 08:25 CST 起,
DR.WU / DR WU / DRWU / 達爾膚視為同一品牌 alias;正式樣本中的 DR.WU 玻尿酸保濕精華乳 50ML、2入組與杏仁酸亮白煥膚精華 18% 30ML 2入組,在不調整全域門檻下可由 brandless identity review 回到 exact total-price lane。 - 2026-05-25 08:36 CST production pilot:SKU
10362820、10653216、10653329已從true_low_confidencematerialize 為rescore_accepted_current,只進人工覆核隊列,不寫competitor_prices。 - 2026-05-25 11:55 CST 起,rescore audit duplicate 判斷只看最新 attempt;若歷史已有 accepted 但後續 crawler 又追加低信心列,可重新 materialize 成最新
rescore_accepted_current。Production pilot 已將 SKU14756069、11159042、13842560、8394210、15192547、10509765、10603780入人工覆核隊列;正式competitor_prices/competitor_price_history未寫入或改變。 - 2026-05-25 12:20 CST 起,matcher 新增
focused_exact_total_price_safe窄範圍通道;目前只覆蓋 3W CLINIC 粉底液 2入、花美水凝膠 3支、The Ordinary 咖啡因 EGCG 30ml、KUSSEN 屁屁膏 3入、Bone 擴香禮盒、1990 融燭燈白色款與 CANMAKE 淚袋盤等已確認同款樣本。這讓高信心exact/manual_review能轉為exact/total_price供 rescore pilot 入人工覆核;DASHING DIVA、唇彩、香味、色號/款式敏感商品仍不放行。 - 2026-05-25 12:25 CST production pilot:SKU
6101639、10074951、7760902、TP00074980000005、14774766、10142589、10262470、10262471、11308520已從true_low_confidencematerialize 為rescore_accepted_current,全數exact/total_price/price_alert_exact且理由含focused_exact_total_price_safe。SKU6101784因「即期品」商業條件不同,刻意保留在true_low_confidence,不納入本輪自動入隊。 - 2026-05-25 14:45 CST 起,matcher 擴充至香氛/精油近門檻安全 cohort:HOOOME 白色經典香氛暖燈與 Gdesign Aroma Lava 2.0 可進
exact/total_price/price_alert_exact;Recipe Box 可撕式水性兒童指甲油只進identity_review,因兒童指甲油仍可能藏色款/款式。DASHING DIVA 與 Pavaruni cross-type 負例已補測試,避免跨款式、跨劑型誤配。 - 2026-05-25 15:20 CST 起,新增三個正式觀察到的高分負例防線:PRAY 守夜人暖燈 L vs S、NITORI 香氛噴霧器 5510 vs YX168、LA MER 氣墊粉霜通用 listing vs
11 Rosy Ivory色號。前兩者 hard veto,後者保留高分但不進 accepted queue。 - 2026-05-25 16:15 CST 起,新增商業條件差負例:KAMERIA 足膜、3W CLINIC 粉底液、Sisley 全能乳液等若一側標示即期/效期/盒損,仍可顯示高相似度,但只進 identity review,不自動入 accepted queue。
- 2026-05-25 19:20 CST 起,新增高分負例:Jealousness SPF25 vs SPF50、MAKE UP FOR EVER 超光肌控油定妝噴霧 vs 超光肌活氧水、rom&nd 染眉膏通用 listing vs
03 摩登米、Lactacyd 多款潔浴露 vs 單一亮肌柔滑、我的心機多款身體去角質 vs 單一香型。前兩者 hard veto,其餘進 identity review。 - 2026-05-25 20:05 CST 起,新增高分錯配 / catalog 變體防線:AUS LIFE 檸檬草 vs 茶樹滾珠精油、NOW 椰子油膏 vs 乳木果油、港香蘭漢本 vs 艾魔菈爽身粉改為 hard veto;多色 / 多香 / 數字區間 catalog 對單一款式(KATE 粉餅盒、植村秀眉筆、PERIPERA 01~07 眼線膠筆、Jo Malone 車用擴香蕊芯等)只進
variant_selection_review。 - 2026-05-25 20:35 CST 起,依 production audit 續補二階風險:同規格但一側為潔膚露、一側為修護乳/乳液直接
cleanser_lotion_line_conflicthard veto;私密防護慕絲多款可選 vs 單一香型、滋養霜單側清爽型只進variant_selection_review。 - 2026-05-25 21:05 CST 起,依 accepted-current 二次抽樣續補三類風險:rom&nd 唇釉不同品線不可互收;Relove 潔淨凝露傳明酸/淨白變體不可自動 accepted;1990 融燭燈同色但不同燈座/結構不可互收。下一步先部署 V10.480,再回查 accepted-current 是否仍有上述 4 筆風險 SKU。
- 2026-05-25 21:25 CST 起,accepted queue 清潔不再只靠舊
diagnostic_codes:--retract-variant-accepted改為先抓 latest accepted,再用當前 matcher 判斷是否需要退回。這能清掉 V10.480 後才被新規則判為variant_selection_review的舊 accepted。正式最新狀態:true_low_confidence=751、rescore_accepted_current=89、identity_veto=3994、matched=1570、unit_comparable=379。 - 2026-05-25 23:45 CST 起,
V10.484拆分 manual gate exact 與型錄風險:POWERMAN 男性私密養護液 30ml、PHYSIOGEL AI 冰鎮精華露 200ml 2入、TS6 緊彈水嫩凝膠 40g、DERMA 寶寶洗髮沐浴露 150/500ml、Clarins 黃金亮眼萃 20ml、Cetaphil 長效潤膚乳 237/473ml 等明確同款可走exact / total_price / price_alert_exact;COCODOR 大豆蠟燭單側多款任選保留variant_selection_review,Pavaruni 雙側 20 香味蠟燭保持 total-price exact。測試:tests/test_marketplace_product_matcher.py、tests/test_competitor_match_attempts_persistence.py、tests/test_competitor_match_attempt_rescore_audit.py通過。 - 2026-05-25 23:55 CST 起,
V10.485補 NITORI 香氛噴霧器短型號防線:near-threshold read-only pilot 中唯一 gate pass 為 5510 vs J82 LBR,已判定不該入隊;matcher 將J82這類短英數型號納入 NITORI diffuser model conflict,與 5510 / YX168 等不同型號一樣 hard veto。Production 已部署/health=V10.485;120 筆 near-threshold audit 由gate_pass=1變gate_pass=0,accepted auditscanned=89 / gate_pass=89 / still_low=0。 - 2026-05-29 起,
V10.486補 PChome near-threshold 風險邊界:NEW DIRECTIONS 甜杏仁油 vs 酪梨油直接 hard veto;COCODOR 經典擴香瓶多款任選、KAMERIA 足膜任選三款、Hakugen 白元入浴劑橘盒/綠盒不同變體都保留variant_selection_review,不進可採用 gate。Production 已部署/health=V10.486;240 筆 near-threshold auditgate_pass 83→79、identity_veto 0→1、still_low 157→160。 - 2026-05-29 起,
V10.488新增市場情報 MCP Fetch Run Receipt 安全預覽 gate,只審核操作員 dry-run receipt,不執行 CLI、不抓外站、不寫 DB。 - 2026-05-29 起,
V10.489補 PChome 低分同款人工覆核回收與 gate-pass 風險邊界:TS6 超美白香氛誘霜 120g/ml、W 修護保養蝸牛特潤修護面膜 6 片、Derma 大地 Eco 植萃護膚油 2 入,從低信心升成identity_review候選;Clarins 輕盈美體護理油 vs 身體調和護理油、台塑生醫嬰兒沐浴/洗髮組合數量反轉、isLeaf 私密慕絲香型數量不一致改 hard veto;HOOOME 大理石暖燈 vs 泛稱經典款只留variant_selection_review,不進 total-price accepted。Production 已部署/health=V10.489;500 筆 read-only audit 由 V10.486 基線gate_pass=129 / identity_veto=1 / still_low=370收斂為gate_pass=124 / identity_veto=4 / still_low=372,三應用容器 healthy、momo-db未 recreate。 - 2026-05-31 起,
V10.490補 ElephantAlpha / OpenClaw 舊策略 action 相容:正式日誌觀察到agent=openclaw action=generate_market_strategy被當未知步驟丟錯;此類 OpenClaw strategy 產生步驟已定義為 advisory skipped,只記 warning,不觸發 circuit breaker、不執行外部策略、不影響價格行動。測試覆蓋generate_market_strategy與generate_resource_optimization_strategy,未知 action 仍維持 fail-fast。 - 2026-05-31 起,
V10.491新增市場情報 MCP Fetch Result Parser Review gate:在 receipt gate 後只審核操作員 shell parser 貼回的結構化摘要,對齊 source/path、公開 URL、候選必要欄位、小批次上限、raw HTML/secret/side-effect 風險;仍不讀 artifact、不執行 CLI、不連外、不寫 DB、不掛 scheduler。 - 2026-05-31 起,
V10.492收緊 PChome 近門檻自動回刷:run_retryable_candidate_revalidation()只回刷recoverable_low_score與 legacylow_score / refresh_low_score,且 SQL 端要求hard_veto=false、comparison_mode=exact_identity、diagnostic reasons 命中同品線/identity anchor;identity_veto、unit_comparable、true_low_confidence不再進每日自動回刷隊列,需等待新證據或人工處理。 - 2026-05-31 起,
V10.493新增市場情報 MCP Fetch Candidate Handoff Review gate:在 parser review 通過後只審核候選交接包,要求 source/candidate key 完全對齊、queue policy 維持 manual preview、小批次上限與操作員無寫入/無連外/無排程確認;仍不建立 queue、不寫 DB、不讀 artifact、不連外、不掛 scheduler。 - 2026-05-31 起,
V10.494新增市場情報 MCP Fetch Candidate Queue Review gate:在 handoff review 通過後只審核人工 queue review 草案,要求候選 key 完全對齊、review_state 只停在needs_review、allowed actions 限人工操作、queue_write_status 維持not_persisted;仍不建立 queue、不更新 review_state、不寫 DB、不連外、不掛 scheduler。 - 2026-05-31 起,
V10.495新增市場情報 MCP Fetch Candidate Queue Writer Preflight gate:在 queue review 通過後只審核 writer preflight 草案,要求 target table、write mode、dedupe strategy、insert columns、payload rows 與候選 key 完全對齊;仍不開 DB、不執行 CLI、不建立 queue、不更新 review_state、不寫 DB、不連外、不掛 scheduler。 - 2026-05-31 起,
V10.496新增市場情報 MCP Fetch Candidate Queue Writer CLI Review gate:在 writer preflight 通過後只審核 CLI review 草案,要求 script path、target table、preflight id、row count、candidate/dedupe keys 與 read-only command argv 對齊;仍不執行 CLI、不讀 approval token、不寫檔、不開 DB、不寫 queue、不掛 scheduler。 - 2026-05-31 起,
V10.497新增市場情報 MCP Fetch Candidate Queue Writer Run Package Review gate:在 CLI review 通過後只審核 operator run package 草案,要求 artifact manifest、operator shell command sequence、package identity、candidate/dedupe keys 與 CLI review 對齊;仍不產檔、不讀 approval token、不執行 CLI、不開 DB、不寫 queue、不掛 scheduler,只放行到 run readiness review。 - 2026-05-31 起,
V10.498新增市場情報 MCP Fetch Candidate Queue Writer Run Readiness gate:在 run package review 通過後只審核 operator readiness 證據,要求 run readiness artifact、reviewed sample、備份、read-only preflight 與 post-write smoke 路徑安全,並確認 CLI-only、approval token shell-only、無 API/DB/file/scheduler 副作用;仍不產檔、不讀 token、不執行 CLI、不開 DB、不寫 queue、不掛 scheduler,只放行到後續 run receipt review。 - 2026-05-31 起,
V10.499新增市場情報 MCP Fetch Candidate Queue Writer Run Receipt Review gate:在 run readiness 通過後只審核操作員 shell writer run 的 receipt 摘要,要求 readiness linkage、run package id、候選/dedupe keys、writer output、post-write smoke、backup path 與 operator confirmation 對齊;仍不讀 receipt 原文、不讀 token、不執行 CLI、不開 DB、不寫 queue、不做 post-write query、不掛 scheduler,只放行到 closeout review。 - 2026-05-31 起,
V10.500新增市場情報 MCP Fetch Candidate Queue Writer Run Closeout Review gate:在 receipt review 通過後只審核 operator closeout 摘要,要求 receipt linkage、closeout artifact、receipt review artifact、post-closeout inventory plan、writer output / post-write smoke / backup manifest、rollback note 與 operator confirmation 對齊;仍不讀 receipt 原文、不讀 token、不執行 CLI、不開 DB、不寫 queue、不做 post-closeout query、不掛 scheduler,只放行到 read-only post-closeout inventory review。 - 2026-05-31 起,
V10.501新增市場情報 MCP Fetch Candidate Queue Writer Post-Closeout Inventory Review gate:在 closeout review 通過後只審核 operator live inventory read-only 摘要,要求 closeout linkage、row count、inventory artifact、closeout review artifact、read-only query result、missing/duplicate rows 與 operator confirmation 對齊;仍不讀 token、不執行 CLI、不開 DB、不寫 queue、不做 inventory query、不掛 scheduler,只放行到 candidate queue review handoff。 - 2026-05-31 起,
V10.502修正 AiderHeal 自動修復診斷鏈:先檢查 ADR-020 檔案白名單再執行 110 preflight,tests/finding 會明確略過而不誤報 repo preflight;Code Review 完成通知會把全數不在白名單的 finding 標成需人工處理,不再宣稱已觸發 AiderHeal;白名單放行services/routes/database子目錄 Python 檔,preflight 通知帶遠端錯誤細節,健康檢查接受/health回healthy。 - 2026-05-31 起,
V10.503新增市場情報 MCP Fetch Candidate Queue Writer Review Handoff gate:在 post-closeout inventory review 通過後只審核 operator candidate queue review handoff 摘要,要求 inventory linkage、handoff identity、target table、row count、artifact paths、review contract、forbidden API actions 與 operator confirmation 對齊;仍不讀 token、不執行 CLI、不開 DB、不寫 queue、不更新 review_state、不掛 scheduler,只放行到人工 candidate queue review。 - 2026-05-31 起,
V10.504新增市場情報 MCP Fetch Candidate Queue Writer Review Inventory gate:在 writer review handoff 通過後只審核 operator read-only candidate queue inventory 摘要,要求 handoff identity、target table、row count、dedupe keys、review_state、artifact paths、read-only query result、missing/duplicate rows 與 operator confirmation 對齊;仍不讀 token、不執行 CLI、不開 DB、不寫 queue、不更新 review_state、不做 inventory query、不掛 scheduler,只放行到後續人工 candidate queue review。 - 2026-05-31 起,
V10.505新增市場情報 MCP Fetch Candidate Queue Writer Review Decision gate:在 review inventory 通過後只審核 operator candidate queue review decision 摘要,要求 decision identity、target table、row count、dedupe keys、needs_review現態、允許決策、evidence refs、matched row exact-identity/variant/overwrite guard 與 operator confirmation 對齊;仍不讀 token、不執行 CLI、不開 DB、不寫 decision record、不更新 review_state、不寫 match result、不補 queue、不掛 scheduler,只放行到 decision approval / writer preflight 設計。 - 2026-05-31 起,
V10.506新增市場情報 MCP Fetch Candidate Queue Writer Review Decision Approval gate:在 review decision 通過後只審核 operator human approval 摘要,要求 decision linkage、approval identity、target table、row count、dedupe keys、approved_for_writer_preflightapproval result、decision/approval evidence refs、artifact paths、matched row exact-identity/variant/overwrite guard 與 operator confirmation 對齊;仍不讀 token、不執行 CLI、不開 DB、不寫 approval record、不寫 decision record、不更新 review_state、不寫 match result、不補 queue、不掛 scheduler,只放行到後續 writer preflight 設計。 - 2026-05-31 起,
V10.509新增市場情報 MCP Fetch Candidate Queue Writer Review Decision Approval Writer Preflight gate:在 human approval 通過後只審核 operator writer preflight 摘要,要求 approval linkage、writer_preflight_id、target operation、row count、dedupe keys、approved decision 到 target review_state 的逐列映射、decision/approval/preflight evidence refs、matched row exact-identity/variant/overwrite guard 與 operator boundary;仍不讀 token、不執行 CLI、不開 DB、不寫 preflight/approval/decision/match、不更新 review_state、不補 queue、不掛 scheduler,只放行到後續 CLI review / run package 設計。 - 2026-06-01 起,
V10.566新增市場情報 Professional Source Governance gate:將 robots/REP、sitemap/lastmod、JSON-LD / schema.org structured data、canonical URL、rate limit、公開資料邊界、provenance、snapshot hash 與 idempotency key 納入 source contract,並接上/api/market_intel/mcp_professional_source_governance、UI preview panel、deployment readiness check 與 production smoke target;仍不抓外站、不讀 robots/sitemap、不開 DB、不寫檔、不掛 scheduler。 - 2026-06-04 起,
V10.579補 PChome 高信心 total-price safe family:SAB 私密防護舒緩噴霧 30ml、Herbacin 小甘菊 20ml 護手霜在同款式同規格且無 variant/commercial gap 時可進exact / total_price / price_alert_exact;跨款式反測仍擋在 review,MIN_MATCH_SCORE不變。同版將 Code Review GCP-B secondary timeout 收斂到 25 秒,GCP-A/GCP-B 都慢時更快回 local degraded。 - 2026-06-04 起,
V10.580補 PChome 重複單品組 total-price 窄門與核心油種 veto:同品牌、同入數、同基礎規格且名稱高度對齊的重複單品組(例如 Bioneo 150ml x2、Cetaphil 150ml x2、Avene 300ml x4、Schick 2+1 入)可進exact / total_price / price_alert_exact;正式部署前估算 213 筆高分true_low_confidence中僅 7 筆會被自動寫入。NEW DIRECTIONS 甜杏仁油 vs 杏桃核仁油改 hard veto,Paula's Choice 缺 30ml 規格的雙入組仍留 manual review;MIN_MATCH_SCORE不變。 - 2026-06-04 起,
V10.581將重複單品組安全線接進 retryable revalidation:只收true_low_confidence中舊診斷為match_type=exact / price_basis=manual_review、無 commercial / variant / count / bundle 等阻擋,且命中具名安全商品線的候選;最後仍由最新版 matcher 與 overwrite protection 決定是否寫正式比價。 - 2026-06-04 起,
V10.582補 PChome 比價通知專業分級與 Nick 副標身份證據:NemoTron 決策信封保留 MOMO / PChome 價格、價差與 7 日業績變化;Telegram decision envelope 將exact / total_price / price_alert_exact等工程路徑翻成直接價格威脅、單位價覆核、身份覆核或壓制告警,並把「單位價/身份未確認不得用總價直接告警」寫進操作邊界。PChomeNick副標會以match_name參與 matcher,比價可用到容量、入數、濃度資訊,但不改 UI/DB 正式顯示品名。 - 2026-06-04 起,
V10.583補 Paula's Choice 身體乳 PChome Nick 具名 alignment:2%水楊酸身體乳210ml二入可和 PChomeNick補出的水楊酸身體乳雙入組 / 210ml x2對齊並進 safe total-price;此版不泛用放寬中文入數,118ml二入組(金蓋限定版)對上 PChome 效期品仍維持 manual review。 - 2026-06-04 起,
V10.584補 PChome Nick 清洗與 stale recovery 單品窄門:Nick 先去 HTML、行銷星號與重複品名,避免同一商品副標讓規格被重複計數;新增 NIVEA 妮維雅霜 100ml、Schick 舒綺敏感肌除毛刀片 3 入、TS6 沁涼潔淨慕斯 100g 具名 exact total-price alignment。IBL 沐浴/洗髮用途落差、唇色目錄款、效期/限定版差異仍留 review。 - 2026-06-05 起,
V10.601收斂 Gemini / 111 治理:正式ai_calls近 24 小時與近 7 天沒有 Gemini provider;舊 K8s/n8n/scripts/docs/Google Drive token 檔中的已知實密鑰改占位符並補全 repo secret 掃描測試;OpenClaw 日/週/月/Meta 長報告改為 GCP-A/GCP-B only,不再讓openclaw_meta落到 111。 - 2026-06-05 起,
V10.600收斂 AI Intelligence 競品表前台標籤:PChome 競品 footer 不再顯示 TTL / 比對門檻等工程參數,改顯示已通過身份比對的使用者語意;已知 matcher tag 轉成中文 badge,未知 tag 隱藏,避免 raw internal tag 出現在營運畫面。 - 2026-06-05 起,
V10.599補全站巡檢降載與前端工作溝通隔離:CONSTITUTION 新增第 14.2 條,禁止把施工紀錄、版本發布說明、Codex/Claude 評估、推版語氣放進使用者可見頁面;市場情報停用頁改為輕量產品狀態頁;ICAIM dashboard API 增加短快取、stale fallback、5 秒 PostgreSQL statement timeout、LATERAL 最新價與最新 PChome identity row 查詢,避免全站巡檢與使用者開頁時被重查詢拖慢。 - 2026-06-04 起,
V10.578修正 Code Review deterministic scan 的 timeout 判定,多行requests.*(... timeout=...)不再被誤報為未設定 timeout。 - 2026-06-04 起,
V10.577Code Review OpenClaw 會在 explicit Ollama host generate 前先做短/api/versionpreflight;GCP-A 不通時快速跳 GCP-B,避免 15 秒 timeout 後才降級,且仍不呼叫 Gemini / 111。 - 2026-06-04 起,
V10.576修正 GCP-only Ollama retry:caller 禁用 111 fallback 時,resolver 若回到 111 會改試 GCP-A/GCP-B allowlist,不再讓 Hermes / Code Review 類任務因 resolver 快取到 111 而all 0 hosts failed。 - 2026-06-04 起,
V10.575拆分 PChome 型錄可比覆核 lane:catalog_comparable會依 diagnostic evidence 分成選項/色號、單位/入數與身份採用三條人工處理路徑,Dashboard、decision envelope、coverage 與 Webcrumbs host data 使用同一套統計與 HITL guardrail。 - 2026-06-03 起,
V10.574新增市場情報 Source Governance → Fetch Target bridge:/api/market_intel/mcp_fetch_target_source_governance_review交叉審核 Professional Source Governance 與 MCP Fetch Target Review,要求 targetplatform_code/source_key全部命中已治理 source contract;仍不抓外站、不讀 robots/sitemap、不開 DB、不寫檔、不執行 CLI、不掛 scheduler,只放行到後續人工 fetch run package review。 - 2026-06-02 起,
V10.567將 MCP 市場洞察 fallback 收斂為 GCP-A / GCP-B only,不再讓 111 承接非即時市場分析長任務;預設 timeout 25 秒、num_predict500,GCP 不可用時直接保守降級,避免 Elephant Alpha 60 秒 timeout 與 111 負載尖峰。 - 2026-06-02 起,
V10.568將價格類decision_envelope的 Telegram 直送訊息改為專業 brief:標的、價格證據、比對證據、人工下一步四段式;review queue 信封 subject 同步帶momo_price/competitor_price,讓 Telegram、PPT、Webcrumbs 與 AI 摘要共用價格證據。 - 2026-06-02 起,
V10.569將 Webcrumbs host data 串到summarize_review_decision_envelopes(),payload 新增reviewDecisionBrief與 review queue / HITL / auto-execute-blocked metadata;共用 UI runtime 讀同一份 PChome 覆核信封摘要,仍只讀 DB、不呼叫 LLM、不抓外站、不寫資料。 - 2026-06-15 起,
V10.605修正 PChome 後台業績 Excel 匯入韌性:auto import 會掃所有 worksheet / 表頭列並選擇即時業績明細類明細 sheet,欄位或日期不合格的檔案會移至 Drive匯入失敗避免 30 分鐘重複告警;同版修復 scheduler 容器缺pg_dump的備份告警。Production 匯入任務 #54 成功寫入 12,460 筆,daily_sales_snapshot與realtime_sales_monthly最新日期皆為 2026-06-14;資料新鮮度 probe 降為gap=1 / info / notified=false,daily/growth chart runtime guard 通過。 - 2026-06-15 起,
V10.606正名為「PChome 業績成長自動化作戰系統」並新增只讀/api/ai/pchome-growth/opportunities:作戰清單以 PChome 後台業績為主、MOMO 作為外部價格參考,蝦皮與酷澎先暫停且不進告警。正式只讀盤點確認daily_sales_snapshot."商品ID"與competitor_prices.competitor_product_id直接重疊為 0,因此第一版不硬接 ID;無可驗證對應時只輸出「先補商品對應」任務。AI 競情頁同步改成白話營運文案,避免把工程術語直接呈現給使用者。
3. 12 Agent 決策信封整合
decision_envelope已接到 NemoTron 價格告警與人工覆核,下一步要讓 OpenClaw、ElephantAlpha、PPT QA 與 review queue 共用同一份 evidence contract。- 2026-05-24 22:44 CST 起,EventRouter 對已附
decision_envelope的事件直接渲染證據模板,不呼叫 L1/L2 AI handler;這讓 NemoTron 價格告警、人工覆核與後續 Agent 共用同一份 SKU / PChome / evidence / guardrails,不再二次生成摘要。 - 2026-05-24 23:00 CST 起,
fetch_competitor_review_queue()、fetch_competitor_review_queue_page()與/api/pchome-review/queue每筆候選也帶decision_envelope,包含 SKU/PChome 標的、match evidence、人工下一步、預期價差與不可自動寫正式價差的 guardrails;Dashboard、Agent、Telegram、PPT 後續共用此 contract。 - 2026-05-24 23:15 CST 起,Dashboard 覆核卡與 PChome 覆核 Excel 匯出也顯示/輸出信封摘要、資料品質、HITL、trace、自動執行阻擋原因與證據摘要;下載檔不得丟失 guardrails。
- 2026-05-24 23:25 CST 起,OpenClaw 週報/日報/月報與 competitor PPT 使用
summarize_review_decision_envelopes()的同一份 HITL 信封摘要,不再手寫 attempt_status 統計或自行翻譯覆核狀態。 - 2026-05-24 23:40 CST 起,
compare_existing_identity成為protected_existing_match的明確建議動作;Agent 只能提示「比較既有正式候選與新候選」,不得因新候選分數較高自動寫正式價差。 - 2026-05-24 23:55 CST 起,ElephantAlpha
resource_optimization/ea_escalation都必須帶 deterministicdecision_envelope;Telegram 按鈕 callback 使用decision_id,證據只允許 action_plans、CPU 實測、hygiene 與 trigger trace。 - 告警不得再輸出空泛「預期效益」;必須帶資料品質、證據來源、HITL 邊界與 trace id。
- Agent 建議只能輔助排序與分析,不得繞過 matcher / feeder / review service 寫正式價格。
3.1 Ollama / Embedding 健康
- 2026-05-25 08:48 CST 起,
OllamaService.generate_embedding(..., allow_111_fallback=False)若 resolver 回 111,會強制改試尚未嘗試的 GCP-A/GCP-B,不再讓背景 embedding 在 111 disabled 情境直接退出或只試單台 GCP-B;111 仍不承接背景bge-m3。 - 2026-05-25 12:27 CST 起,背景 embedding 在 GCP-A/GCP-B 全掛時開啟短暫 failure circuit;這是降載保護,不代表 primary 已恢復。部署 smoke 時 GCP-B
/api/version已恢復 200,下一步仍需恢復 GCP-A Ollama 或更新 110 的可用 SSH/GCP 操作憑證。 - 2026-05-25 12:37 CST 起,背景 embedding GCP-only failure circuit 改用 WARNING 記錄,避免可預期降級污染 ERROR 告警通道。
- 2026-05-25 13:35 CST 起,GCP-B
bge-m3實測 P95 波動已超過 15s,背景 embedding / host health model probe timeout 預設改 30s;若 30s 仍常 timeout,需進一步處理 GCP-B runner/CPU/模型併發,而不是再把 111 納入背景任務。 - 2026-05-25 14:10 CST 起,GCP-A refused 已明確歸類為 infra blocker;應用層不得改成 111 背景 fallback,也不得把 110:11435 502 當成 momo-app 故障。背景 embedding 可依
host_health_probes跳過近期 unhealthy GCP host,但查 DB 必須 fail-open。
4. 業績分析資料與圖表修復
- 修正即時業績匯入
snapshot_date text = date類型錯誤。 - PChome 後台業績匯出前半段仍需自動化:優先確認 PChome 後台是否支援排程寄信 / Email 附件 / FTP / API;若無,改做 110 或獨立 worker 的受控 browser 下載,再把檔案放進 Google Drive
當日業績匯入/。 /daily_sales、/growth_analysis圖表不得空白;需保留原本圖表並升級成更專業的呈現。- 圖表需通過 runtime nonblank canvas 檢查與手機版 responsive。
- daily/growth/PPT 必須共用
competitor_intel_repository的比價資料出口,避免價差方向或統計口徑分裂。 - 2026-05-24 23:55 CST 起,daily/growth chart 判斷不再只看 series 長度;若序列全 0,顯示 chart-empty 狀態而不是畫只有座標軸的假圖。正式 smoke 需跑
scripts/check_sales_charts_runtime.js確認主要 canvas 非空。
5. PPT 視覺 QA 與自動簡報產線
- 每日、每週、每月、每季、半年、年度簡報需依排程產出。
- 每次產出與視覺 QA 結果必須完整寫入 DB。
/observability/ppt_audit_history必須清楚顯示 runtime 狀態、產出狀態、視覺 QA、問題追蹤與可預覽檔案。- PPTX / PDF 預覽需可站內直接開啟,不能只下載。
- 2026-06-06 起,
V10.604修正定期簡報長期漏產:根因為schedule.run_pending()同步執行,20:30/20:40/20:50 精準時段會被 feeder / AI 長任務卡過且不自動 replay。新增每 10 分鐘 missed-run catch-up、scheduler 背景化補跑、排程型市場情報與價格甜蜜點快速 fallback;production 已補齊daily、market_intel、price_elasticity,catch-up plan 顯示 daily/weekly/monthly/quarterly/half_yearly/annual 全數 ready,/observability/ppt_audit_history可看到新檔與預覽入口。
6. 外部 BI / 協作入口
/metabase不可空白,需顯示可診斷 bridge 狀態或可用替代入口。/grist/ 資料協作連結不得連到其他專案站。- 側欄與 topbar 外部工具入口要統一走 momo-pro bridge route。
7. AI 觀測台與全站 UI/UX
- 10 個 AI 觀測台頁面必須符合新版字體、字級、暖墨色、焦糖 accent、點陣視覺與 responsive 規範。
- 全站主要頁面需通過 desktop / mobile overflow guard。
- 表格與圖表只允許在局部容器橫向滾動,不可造成整頁無限延伸。
8. 效能與可觀測性
- 持續降低
/daily_sales、/growth_analysis、商品看板、PChome queue、PPT audit 首屏 TTFB。 - 避免 worker cold start 重查重算;必要時使用共享快取與指紋失效。
- 111 fallback 只作最後救急;持續監控 GCP-A / GCP-B / 111 用量與 circuit breaker。
9. 每輪收尾
- Focused tests → full pytest 或合理範圍回歸 → production smoke。
- 更新 SOT / memory / TODO。
- 推 Gitea,正式部署,確認
/health版本。 - 記錄未完成與下一輪入口。
10. 2026-06-15 V10.607 外部市場來源正規化
- 新增
external_market_sources/external_offers,作為 MOMO、未來蝦皮、未來酷澎、供應商 API 與手動 CSV 的共同資料入口。 /api/ai/pchome-growth/source-contract提供只讀來源狀態與欄位 contract;UI 只顯示白話狀態,例如「正在使用」「先暫停」「可用資料」。- MOMO 目前先橋接既有已確認同款的比價快取;蝦皮與酷澎只保留 contract,預設暫停、不進告警。
- 下一步:做手動 CSV 匯入 dry-run 與外部報價品質檢查頁,讓未來無論官方 API 或 provider API 都能先經過同一套品質門檻。
11. 2026-06-15 V10.608 外部報價 CSV 預檢
- 新增
/api/ai/pchome-growth/external-offers/csv-dry-run,接受 CSV 檔案或貼上的 CSV 文字,只做預檢、不寫 DB。 - AI 情報頁新增「外部報價預檢」區塊,顯示可使用、待確認、不能使用;用字保持白話,不顯示工程欄位給一般使用者。
- 預檢支援中文表頭,例如「資料來源、外部商品ID、商品名稱、售價、資料時間、取得方式、PChome商品ID、同款狀態、資料可信度」。
- CSV 預檢是備援入口,不是日常主流程。
12. 2026-06-15 V10.609 外部報價自動同步
- 新增
sync_legacy_momo_reference_offers(),自動把已確認同款的既有比價快取同步進external_offers。 - 新增
run_external_offer_sync_task,每 4 小時自動執行;排在 competitor feeder 後,同步 MOMO 外部價格參考資料層。 - CSV 保留為 API / crawler / provider 故障時的救援預檢;日常目標是自動抓、自動同步、自動進作戰清單。
13. 2026-06-16 V10.610 PChome 作戰清單優先讀新資料層
/api/ai/pchome-growth/opportunities已改成優先讀external_offers,只有缺資料時才 fallback 舊competitor_prices。external_offers.raw_payload_json會保留舊比價快取中的 PChome 公開價,讓新資料層仍可算出 MOMO / PChome 價差。- API stats 新增
external_data_source_counts,可看到「自動同步資料層」與「舊比價快取」各有多少筆。 - 下一步:把其他比價報表與 AI 告警逐步改讀
external_offers,讓competitor_prices降為 bridge/cache。
14. 2026-06-16 V10.611 作戰入口與資料來源可見化
/ai_intelligence是 PChome 業績成長自動化作戰系統的營運主入口;V10.617 起舊「今日作戰入口」已改為「今日重點總覽」,首屏需先顯示下一步與今日處理清單,不再把備援 CSV 放在主要流程前段。- PChome 成長作戰區塊會依 API stats 顯示今日優先動作,例如先補商品對應、先處理可直接比價商品,避免使用者只看到數字不知道下一步。
- 同區塊新增資料來源摘要,直接顯示「自動同步資料層」或「舊比價快取」各有多少筆,方便確認 V10.610 新資料層是否真的被作戰清單採用。
- CSV 預檢在 UI 文案上維持備援定位;日常主流程仍是自動同步外部報價。
15. 2026-06-16 V10.612 MOMO 外部價格參考優先讀新資料層
/api/ai/icaim/dashboard的「MOMO 外部價格參考」已改為優先使用external_offers,同一 MOMO SKU 若有自動同步資料就不再先讀舊competitor_prices。- 表格 stats 新增
competitor_data_source_counts,前端 footer 顯示「自動同步資料層 / 舊比價快取」各幾筆;每列狀態會顯示「自動同步」或「舊資料」。 - 價差與高風險統計改採 PChome 視角:正數代表 PChome 比 MOMO 外部參考價高,才列入需檢查價格。
- 下一步:把 Hermes / ElephantAlpha / AI product pick 等後端價格分析逐步改讀
external_offers,讓告警與頁面使用同一份資料來源。
16. 2026-06-16 V10.613 高可見頁面繁中化守門
- 使用者要求所有內容與頁面必須使用繁體中文;工程內部變數、CSS class、API key 名稱可保留英文,但使用者可見標題、按鈕、狀態與說明不得用英文工程語。
- 已把
/code-review/顯示文字改成「AI 程式碼審查」「流程進度」「程式碼審查完成」,並將 OpenClaw 模型顯示改成「Ollama 優先」,避免前台誤以為 Gemini 是主路徑。 - 已把 AI 自動化健康檢查頁改為白話繁中命名,狀態顯示改成「正常 / 注意 / 嚴重 / 產生時間」。
- 已把 PPT 觀測台與商品看板高可見英文標籤改成「產線健康度 / 工作隊列 / 視覺問題 / 產線控制台 / 覆蓋率流程」,並新增測試防回歸。
17. 2026-06-16 V10.614 部署與基礎設施頁繁中化
/cicd對使用者顯示為「部署監控」,不再以前台標題顯示CI/CD Dashboard;部署流程、部署歷史、GitLab 部署紀錄皆使用白話繁中。- 部署流程圖會把後端階段代碼
test / build / deploy轉成「測試 / 建置 / 部署」,診斷狀態也轉成「正常 / 注意 / 失敗」。 /observability/host_health與 PPT 產線視覺狀態把Runtime/Vision QA改成「執行環境」與「視覺檢查」,並更新測試防回歸。
18. 2026-06-16 V10.615 AI 智慧推薦頁 Ollama 主路徑文案
/ai_recommend的 AI 路徑顯示改成「Ollama 主路徑 / Gemini 備援」,Gemini 選項保留為角色提示但停用手動選擇,避免使用者誤以為可直接用 Gemini 生成文案。page-ai-recommend.js的狀態 badge、生成結果 meta、搜尋/分析錯誤訊息改用繁中全形冒號與「權杖」用語。- 新增測試守門:禁止
Ollama (本地)、Gemini (雲端)、Web Search、Token:與半形英文錯誤前綴回到 AI 智慧推薦頁。
19. 2026-06-16 V10.616 主商品看板統計標籤繁中化
/主商品看板補齊高可見統計標籤繁中化,將ACTIVE、PICK COUNT、AVG CONFIDENCE、EVIDENCE GAP等工程詞改為「有效商品」「挑品數」「平均信心」「待補證據」。- PChome 補強區塊標籤改為「PChome 比價補強」,空狀態改為「目前有效商品沒有高優先 PChome 覆核項目」。
- 測試新增禁止英文工程標籤回歸,讓主商品看板符合「所有內容包含頁面皆為繁體中文」紅線。
20. 2026-06-16 V10.617 AI 情報頁改為作戰導向 UI
/ai_intelligence不再只堆說明文字;首屏新增「下一步」動態指令、商品處理進度、外部價格來源與操作捷徑。- 今日處理清單改為表格,欄位優先呈現「優先級、建議動作、商品、近 7 天業績、比價結果、資料可信度、下一步」,讓使用者先看到該做什麼,以及資料能不能信。
- MOMO 外部價格參考新增價格風險分佈,表格改為 PChome 價格在前、MOMO 參考價在後,價差明確顯示「PChome 貴 / PChome 便宜」,並新增「鎖定商品」操作。
- 備援 CSV 流程降級為「備援資料檢查」,移到主要作戰與價格表後面,避免誤導使用者以為日常仍要人工匯入。
- 前端補上 payload fallback、動態表格 escape、手機版
data-label與補商品對應 busy lock,避免資料缺欄位、特殊字元或重複點擊造成壞畫面。
21. 2026-06-16 V10.618 比價頁改為下一步導向
/price_comparison改為「PChome 商品比價決策台」,首屏需先顯示「今天先做」與 PChome / MOMO 商品準備狀態,不再讓使用者從 Step 1/2/3 自行猜流程。- 頁面會依目前資料狀態切換下一步:輸入關鍵字、取得 PChome 商品、匯入 MOMO 商品、開始檢查價差、查看需檢查價格或可主推商品。
- 比價結果新增判讀分佈:「需檢查價格」「可主推曝光」「價格接近」,表格第一欄直接呈現每筆商品下一步。
- Toast 改用純文字 DOM,手動輸入錯誤訊息不再塞 HTML;更新商品資料時會清掉舊比價結果,避免資料已更新但畫面仍顯示舊判讀。
22. 2026-06-16 V10.619 PChome 導向 MOMO 精準候選搜尋
- 使用者指出只抓 MOMO 活動頁會讓比價候選池偏窄;V10.619 新增
search_momo_products_for_pchome_products(),用 PChome 商品名稱逐筆反查 MOMO 候選。 - 搜尋詞沿用
marketplace_product_matcher.build_search_terms(),保留品牌、品名、容量、單品與組合線索,例如 B5 40ml、500ml 2入組,避免只用品牌或活動頁商品池。 /api/price_comparison/compare在已有 PChome 商品但缺 MOMO 清單時,會優先走 PChome 導向 MOMO 搜尋;完全沒有 PChome 商品時才退回品牌搜尋。- MOMO 搜尋 parser 已補新版 Next.js
goodsInfoList,避免明明搜尋頁有商品但 crawler 回 0 筆。 /price_comparison已新增「自動找 MOMO 候選」操作,PChome 商品準備後可直接搜尋 MOMO;回傳會分成「可直接比價」與「需人工確認」。- 新路徑只擴大候選池,不放寬
score_marketplace_match()的 hard veto 與同款分數篩選;V10.619 當時先把unit_comparable候選保留為「需人工確認」,此限制已由 V10.620 的自動單位價分流取代。
23. 2026-06-16 V10.620 單位價候選自動化分流
- 使用者要求把需要人工處理的比價工作降到最低;V10.620 將 PChome 導向 MOMO 搜尋的
unit_comparable候選改成三路分流:同款總價、可自動換算單位價、真正需人工確認。 search_momo_products_for_pchome_products()會在unit_comparable時呼叫build_unit_price_comparison();只有能算出雙方總容量/數量、單位價與差距百分比時,才標成auto_compare_type=unit_price與「自動單位價比較」。/api/price_comparison/fetch_momo_for_pchome回傳products、unit_compare_candidates、review_candidates三段;舊總價比價只吃products,避免把組合包總價誤當同款價差。/price_comparison顯示「同款 / 單位價 / 需確認」三個數量,並新增自動單位價面板;若只找到單位價候選,下一步會引導使用者查看單位價結果,而不是人工確認。
24. 2026-06-16 V10.621 自動候選接入外部價格參考
/price_comparison正常操作「自動找 MOMO 候選」時會帶sync_external_offers=true,把可直接總價比價與自動單位價候選同步進external_offers;仍需人工確認的候選不寫入。- 新增
sync_targeted_momo_candidates_to_external_offers(),只寫ingestion_method='targeted_momo_search'、match_status='verified'、data_quality_status='verified'的安全候選;unit_price候選會在raw_payload_json.unit_price_comparison保留 MOMO / PChome 單位價、容量/數量與價差百分比。 build_pchome_growth_opportunities()已能讀external_offers.raw_payload_json.price_basis='unit_price':作戰清單會顯示「資料可用單位價判斷」,並用單位價差距做「檢查售價與活動 / 放大價格優勢」判斷。- 此路徑只同步外部價格參考與作戰清單,不寫
competitor_prices,不自動改價;目標是減少人工補資料,而不是放寬正式價差寫入。
25. 2026-06-16 V10.622 外部報價同步後即時刷新作戰清單
- 新增
services/pchome_growth_cache_state.py,以data/pchome_growth_cache_epoch.txt作為跨 Gunicorn worker 的作戰清單快取失效標記。 sync_legacy_momo_reference_offers()與sync_targeted_momo_candidates_to_external_offers()只要成功寫入external_offers,就呼叫mark_pchome_growth_cache_stale()。/api/ai/pchome-growth/opportunities的 in-memory cache 會記住建立時的 epoch;讀快取前若發現共享 epoch 較新,會直接重建,不再讓使用者看到 120 秒舊清單。- 這讓「自動找 MOMO 候選 → 同步外部價格參考 → AI 情報頁作戰清單」變成同一條即時資料流,減少使用者手動重新整理或等待快取過期。
26. 2026-06-16 V10.623 比價與作戰頁工作台化
- 使用者指出前端仍像文字堆疊,無法快速知道怎麼操作;V10.623 將
/price_comparison第一屏改為主 KPI、目前卡點、四步流程與下一步 CTA。 /price_comparison的結果區新增決策摘要,先顯示「需檢查售價或活動 / 可主推曝光 / 觀察賣點」三類數字與建議,再往下看明細表。/ai_intelligence第一屏新增今日任務摘要,直接顯示今日任務、可立即處理、待補比價與最新業績日;資料來自現有 PChome growth API stats。- 測試守門新增
priceDecisionGrid、price-workflow-strip、price-result-summary-grid、growth-executive-strip與renderGrowthExecutiveSummary,避免頁面退回只有文字說明的狀態。
27. 2026-06-18 V10.624 ElephantAlpha 價格決策只進 HITL
- 部署後觀察到
price_drop_alert進入 ElephantAlpha execution plan 後可能卡在 Hermes/NemoTron step,最後以 60 秒 timeout 污染 scheduler log。 - V10.624 將價格類 trigger 的高信心路徑改為「有實證就發 L3 HITL 價格覆核通知」,不再執行 orchestrator
execution_plan,避免長任務 timeout 與自動調價誤解。 - 新增
price_decision_review決策信封,固定標示can_auto_execute=false、requires_hitl=true、execution_plan skipped;通知只呈現 DB/Hermes 具體價差實證。 - 測試新增高信心價格決策不執行長任務 step 的守門,避免未來又把價格告警回退成自主執行。
28. 2026-06-18 V10.625 背景 embedding 熔斷不扣 retry
- 部署 V10.624 後 scheduler log 顯示 GCP-A 最近 host health 不健康,GCP-B
bge-m3仍可能 30 秒 timeout;embedding worker 會在同批任務中連續把多筆 queue 標成失敗,造成 attempts 被白白消耗。 - V10.625 將 GCP embedding failure circuit 狀態公開為
is_embedding_gcp_circuit_open()/embedding_gcp_circuit_remaining_seconds(),讓 worker 可用明確狀態判斷,不再猜測空向量原因。 OpenClawLearningServiceworker 在熔斷中不 claim 新任務;若處理中開啟熔斷,當筆與同批剩餘任務會退回pending並寫入延後原因,不扣attempts、不刷成failed。- 背景 embedding 仍維持 GCP-A → GCP-B,不落 111;111 不承接
bge-m3背景批次的治理規則不變。