Files
ewoooc/docs/memory/frontend_v3_handoff_20260512.md
OoO 605250619c
All checks were successful
CD Pipeline / deploy (push) Successful in 1m3s
Frontend V3 responsive production update
2026-05-12 18:27:29 +08:00

143 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.html`
- `templates/components/_ewoooc_shell.html`
- `web/static/css/ewoooc-tokens.css`
- `web/static/css/ewoooc-shell.css`
- `web/static/css/ewoooc-dotmatrix.css`
- `web/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避免 Jinja `Undefined``tojson`
- 已同步版本:
- `app.py` `SYSTEM_VERSION = "V10.91"`
- `config.py` `SYSTEM_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`
## 已通過驗證
- 本機 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 個主要 routedesktop 1440 與 mobile 390 共 46 項皆 PASS。
- 本機 observability QA 已通過:
- focused pytest `75 passed, 1 warning`
- `git diff --check`
- `scripts/check_v3_responsive_ui.js`
- 已白名單部署到正式環境 `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` 通過。
## 重要使用提醒
- 不要用 `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。
- 使用 Browser plugin 時,應導到 localhost route不要開 template 檔。
## 未完成
- 使用者指出「很多頁面排版都有問題,且必須全部確認手機版」。
- `/daily_sales``/edm`、全頁 responsive overflow 自動化與 V10.92 正式部署已完成。
- 尚未完成所有頁面的人工 desktop/mobile 視覺逐頁設計審查;目前完成的是自動化 overflow guard 與重點頁抽看。
- 若下一輪繼續 UI/UX建議從「自動化已過但人工視覺仍需精修」的頁面開始例如長表格密度、空狀態、文案層級與 mobile 互動細節。
## 下一個 session 建議順序
1. 啟動本機 Flask server導 in-app browser 到目標 route。
2. 用 desktop 與 mobile 寬度檢查:
- 1365/1440 desktop
- 390 mobile
- 不得有 body horizontal overflow。
- text 不得重疊或被裁切。
- 表格/日曆若需要橫向滾動,必須有明確容器與提示,不能讓整頁外溢。
3. 每輪 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 頁
4. 全頁本機 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-db` orphan這是 ADR-011 已知狀態,禁止 `--remove-orphans`