9.3 KiB
9.3 KiB
Frontend V3 Handoff 2026-05-12
目的
這份 handoff 給下一個 Codex session 接續「前端 V3 全站 UI/UX 與響應式修正」使用。
已完成
- 已閱讀並遵守專案入口規則:
AGENTS.md、CONSTITUTION.md、ADR-011 部署紅線、部署 SOP。 - 已評估 Claude Code 的「立刻 Flask → FastAPI」建議,結論改為:
- FastAPI 可作為 strangler migration 中期方向。
- 不作為前端 V3 落地前置條件。
- 不做大爆炸式後端重寫。
- 已新增
docs/adr/ADR-036-fastapi-strangler-not-frontend-prerequisite.md,並更新docs/adr/README.md。 - 已把 V3 shell/tokens/page assets 落到 Flask runtime:
templates/ewoooc_base.htmltemplates/components/_ewoooc_shell.htmlweb/static/css/ewoooc-tokens.cssweb/static/css/ewoooc-shell.cssweb/static/css/ewoooc-dotmatrix.cssweb/static/css/ewoooc-tokens-v2-alias.css- 多個
web/static/css/page-*.css - 多個
web/static/js/page-*.js
- 已保留真實功能頁,拒絕直接用
production_v3 3/templates/dashboard.html與 observability prototype 覆蓋正式頁,因為會移除 PChome、AI 挑品、歷史價格、觀測台真實資料。 - 已修
/sales_analysis首次進頁錯誤:routes/sales_routes.py補category_data=cat_data。templates/sales_analysis.html對 chart JSON payload 補 default fallback,避免 JinjaUndefined進tojson。
- 已同步版本:
app.pySYSTEM_VERSION = "V10.91"config.pySYSTEM_VERSION = "V10.91"
- 已更新
TODO_NEXT_STEPS.txt,記錄 V3 守門落地、正式推版與後續 FastAPI inventory。
已部署到正式環境
- 正式 URL:
https://mo.wooo.work - 部署方式:白名單 tarball 同步 55 個 V3 runtime 檔案,再單獨同步
config.py。 - 正式端只 recreate
momo-app:docker compose up -d --no-deps --force-recreate momo-app
- 未碰
momo-db。 - 未使用
--remove-orphans。 - 正式回滾備份:
- runtime files:
/tmp/codex_v3_predeploy_20260512_144835.tgz - config:
/tmp/config.py.pre_v3_20260512_145111
- runtime files:
已通過驗證
- 本機 focused pytest:
75 passed, 1 warning。 git diff --check通過。./scripts/quick_review.sh --check-observability-css通過。./scripts/quick_review.sh --observability-ui通過。./scripts/quick_review.sh --observability-qa --skip-production通過。- 正式:
https://mo.wooo.work/health回報V10.91。momo-pro-system、momo-scheduler、momo-telegram-bot、momo-db全部 healthy。./scripts/quick_review.sh --observability-qa --base-url https://mo.wooo.work通過。- V3 smoke 200:
/sales_analysis、/daily_sales、/monthly_summary_analysis、/ai_recommend、/auto_import、/vendor-stockout/*、/growth_analysis、/settings、/logs、/。
2026-05-12 V10.92 追更
- 已完成
/daily_sales本機 route 驗證與 responsive 修正。 - 已完成
/edm桌機外溢與 mobile responsive containment 修正。 - 已將 V3 內容最大寬度調整為
1600px,改善寬螢幕活動頁與資料表使用空間。 - 已移除 V3 主要頁面 CSS 中殘留的負字距。
- 已新增全頁 responsive overflow 自動化:
scripts/check_v3_responsive_ui.js
- 本機全頁 responsive audit 已通過,覆蓋 23 個主要 route,desktop 1440 與 mobile 390 共 46 項皆 PASS。
- 本機 observability QA 已通過:
- focused pytest
75 passed, 1 warning git diff --checkscripts/check_v3_responsive_ui.js
- focused pytest
- 已白名單部署到正式環境
https://mo.wooo.work,版本升至V10.92。 - 正式端只 recreate
momo-app:docker compose up -d --no-deps --force-recreate momo-app
- 未碰
momo-db,未使用--remove-orphans。 - 正式回滾備份:
/tmp/codex_v3_1092_predeploy_20260512_164549.tgz
- 正式驗證已通過:
/health回報V10.92。momo-pro-system、momo-scheduler、momo-telegram-bot、momo-db全部 healthy。scripts/check_v3_responsive_ui.js對https://mo.wooo.work通過:23 route × desktop/mobile = 46/46 PASS。./scripts/quick_review.sh --observability-qa --base-url https://mo.wooo.work通過。
2026-05-13 V10.115 main 追更
- main 已補 AI 觀測台 V3 responsive / overflow 守門:
scripts/check_responsive_overflow.js會把 visual overflow offenders 視為失敗。- 表格與圖表允許在
.obs-table-shell、.obs-chart-frame等局部容器內滾動,避免整頁水平外溢。
observability-system.css與 Flask mirrorweb/static/css/observability-system.css已同步補強:- bounded table/chart/mobile containment。
- badge / pill / nested surface 對比規範。
- hero / panel 密度收斂,避免 inline legacy template 保留裝飾空白。
- 本機 QA 已通過:
python3 scripts/sync_observability_css.py --check./scripts/quick_review.sh --observability-ui./scripts/quick_review.sh --observability-qa --skip-production- focused frontend / Phase 3f pytest。
- 本段只記錄 main repo 推版與本機 QA;未在本段宣稱正式環境已完成 V10.115 部署驗證。
2026-05-13 V10.116 main 追更
- main 已補 AI 觀測台 rendered visual contract:
scripts/check_observability_visual_contract.jsscripts/check_observability_visual_contract.sh./scripts/quick_review.sh --observability-visualscripts/check_observability_suite.sh在 production smoke 後有第 4 步;--skip-production時會明確 skip rendered visual contract。
- 觀測台手機密度與商業情報頁 title/chip 對比已補強,
templates/admin/business_intel.html的 H1 已有biz-titleclass,V10.116 main 版的 local rendered contract 已覆蓋 10 頁 × desktop/tablet/mobile 30 項 PASS。 - 本機 SQLite visual QA 曾因
/observability/host_healthGET 頁嘗試寫host_health_probes而噴 BIGINT autoincrement warning;main 已改為 SQLite session 下略過 probe persistence,正式 Postgres 路徑仍保留寫入。 - 本段只記錄 main repo 推版與本機 QA;未在本段宣稱正式環境已完成 V10.116 部署驗證。
2026-05-13 V10.117 main 追更
- AI 觀測台已改成 tokenized dot-matrix 背景語彙,
scripts/check_observability_visual_contract.js會檢查 hero/signal/panel surface 的 renderedbackground-image必須是radial-gradient,並防止 legacylinear-gradient或background-image: none回流。 static/css/observability-system.css檔尾保留 terminal dot-matrix layer;不要把它移回 v3.4/v3.5 neutralizer 之前,否則 computed style 會被後段background-image: none !important覆蓋。- 本機
http://127.0.0.1:5017已重跑 rendered visual contract,10 頁 × desktop/tablet/mobile 共 30 項 PASS。
重要使用提醒
- 不要用
file://.../templates/*.html預覽 Jinja 模板。它需要 Flask route 注入url_for()、context 與 session。 - 正確本機預覽方式:
- 啟動 Flask:
LOGIN_PASSWORD=codex-local-password SECRET_KEY=codex-local-secret USE_POSTGRESQL=false .venv/bin/flask --app app:app run --host 127.0.0.1 --port 5003 - 用瀏覽器開:
http://127.0.0.1:5003/daily_sales、http://127.0.0.1:5003/edm等 route。
- 啟動 Flask:
- 使用 Browser plugin 時,應導到 localhost route,不要開 template 檔。
未完成
- 使用者指出「很多頁面排版都有問題,且必須全部確認手機版」。
/daily_sales、/edm、全頁 responsive overflow 自動化與 V10.92 正式部署已完成。- 尚未完成所有頁面的人工 desktop/mobile 視覺逐頁設計審查;目前完成的是自動化 overflow guard 與重點頁抽看。
- 若下一輪繼續 UI/UX,建議從「自動化已過但人工視覺仍需精修」的頁面開始,例如長表格密度、空狀態、文案層級與 mobile 互動細節。
下一個 session 建議順序
- 啟動本機 Flask server,導 in-app browser 到目標 route。
- 用 desktop 與 mobile 寬度檢查:
- 1365/1440 desktop
- 390 mobile
- 不得有 body horizontal overflow。
- text 不得重疊或被裁切。
- 表格/日曆若需要橫向滾動,必須有明確容器與提示,不能讓整頁外溢。
- 每輪 UI 變更後跑全頁 responsive overflow guard:
scripts/check_v3_responsive_ui.js,至少覆蓋://edm/sales_analysis/daily_sales/monthly_summary_analysis/growth_analysis/ai_recommend/auto_import/vendor-stockout//vendor-stockout/import/vendor-stockout/list/settings/logs/observability/*10 頁
- 全頁本機 QA 通過後,才按部署 SOP 白名單同步正式。
當前工作樹注意事項
- 工作樹很髒,混有多批未提交變更與大量 untracked 原型/文件/前端資料夾。
- 不要整包 rsync 或整包 commit。
- 不要 revert 使用者或其他 session 的變更。
- 部署只能用白名單。
- 特別避免同步:
.claude/production_v3*/frontend/MOMO Pro/uploads/data/dashboard_full_cache.pkl- 未確認的 docs/design dump
已知本機/正式 warning
- 本機 Python 3.9 / LibreSSL 會有 urllib3 warning。
- 本機 SQLite 缺
embedding_retry_queue時 OCLearn worker 會 warning。 - 正式 compose 會警告
momo-dborphan,這是 ADR-011 已知狀態,禁止--remove-orphans。