Skip to content

fix(ratewise): 654/655/656 批次修復——導向豁免、FAQ 目錄、離線 manifest - #672

Merged
s123104 merged 3 commits into
experiment/ratewise-product-2026h2from
fix/654-656-batch
Jul 7, 2026
Merged

fix(ratewise): 654/655/656 批次修復——導向豁免、FAQ 目錄、離線 manifest#672
s123104 merged 3 commits into
experiment/ratewise-product-2026h2from
fix/654-656-batch

Conversation

@s123104

@s123104 s123104 commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Summary

三個獨立小 issue 的批次修復,單一 PR、三個獨立 commit(每 commit 對應一個 issue,含各自 changeset 與 002 條目)。

Closes #654
Closes #655
Closes #656

Commit 對照表

Commit Issue 修法摘要
fix(ratewise): 記住畫面導向豁免任何帶參數深連結 #654 深連結豁免由 from/to/amount/cardRate 白名單改為 isDeepLinkEntry 通用豁免(任何帶 query 進站皆豁免 remembered redirect);RateWise 偏好寫入共用同一契約。issue 驗收允許白名單方案,擇通用豁免因更不易漂移(新增 URL 參數不需回頭補白名單);trade-off:帶 utm_* 等追蹤參數進站亦不還原 multi,屬深連結語意的一致行為
feat(ratewise): 常見問題頁新增目錄與每題錨點深連結 #655 錨點 id 由 seo-metadata SSOT 序位派生(faq-qN,對齊指南頁 step-N 慣例)+scroll-mt safe-area(1rem 慣例,對齊 #658 去 sticky 後語意);TOC 對齊指南頁 rail 模式(桌面 sticky 側欄、行動摺疊);hash 深連結與 TOC 側跳自動展開目標 details
fix(ratewise): 離線時 manifest 回退快取副本消除請求失敗 #656 manifest route 由 NetworkOnly 改為自訂 network-first handler:線上永遠走網路(no-cache+ETag 條件請求行為不變,AGENTS.md 假陽性註記行為保留),僅離線回退 manifest-cache 副本;不引入 Workbox NetworkFirst 以保持 navigation 防回歸斷言

驗收證據

#654(單元測試+實機)

  • 測試矩陣 8 進站組合(from/to/amount/cardRate/converter=legacy/converter=v2/utm_source/unknown)皆不導向;?converter=legacy 且使用者設定 v2 時 override 解析為 legacy
  • 實機(vite preview):persisted multi+純 / 進站 → 落 /multi(記憶不回歸);persisted multi+/?converter=legacy → 停留 /?converter=legacy(v1 單幣別)

#655(單元測試+三視口截圖)

  • FAQ.test.tsx 5 項:21 錨點齊全、TOC 連結(行動+桌面 ×21)皆指向有效錨點、TOC 位於 nav 內且零新增 heading(SSG heading outline 不變)、hash 進站/hashchange 自動展開
  • 錨點跳轉精度:點擊 TOC 後目標 details 頂緣 = 16px(scroll-mt 1rem),open=true
  • visible-text parity 差異申報:TOC 為新增節點,但整段包在 <nav> 導覽 chrome 內——verify-visible-text-parity.mjs 正規化規則會剝除 <nav>,故可見內容文字節點集合零變動
  • 截圖(本機 screenshots/,依 QA 規則不入 repo):faq-toc-mobile-390.png(行動摺疊展開)、faq-anchor-jump-mobile-390.png(錨點跳轉)、faq-toc-tablet-768.pngfaq-toc-desktop-1440.png(sticky 側欄)

#656(sw 單元測試+實機離線)

  • sw.test.ts 補 3 項 handler 行為測試(線上寫入 cache/離線回退副本/無副本不吞錯)+策略守門更新,49 passed
  • 實機(vite preview+SW active):離線 reload → 零 webmanifest requestfailedfetch('manifest.webmanifest') 離線回 200(manifest-cache 副本);唯一失敗為外部 CDN 匯率(離線預期);證據 manifest-offline-reload-ok.png
  • 線上行為不變:handler 直接 fetch(request),瀏覽器 HTTP 層 no-cache+ETag 條件請求照舊

Test plan

  • 每 commit 獨立通過 pre-commit(lint-staged/typecheck/format/SSOT/002 記分守門)
  • pre-push 全量:typecheck+test+build:ratewise
  • 002 三筆條目(+184/+185/+186)、三筆 patch changeset(對齊 repo 一 topic 一 changeset 慣例)
  • CI checks 全綠(gh pr checks --watch

依指示:本 PR 不 merge,待人工審核。

Made with Cursor

haotool and others added 3 commits July 7, 2026 16:51
- RememberedHomeRoute 深連結豁免由參數白名單改為 isDeepLinkEntry 通用豁免(issue 654)
- ?converter=legacy 等 URL override 不再被 persisted multi 導向劫持;擇通用豁免避免白名單漂移
- RateWise 偏好寫入沿用同一豁免契約,帶參數進站不覆寫 lastConverterView
- 單元測試補 8 項 query 豁免矩陣與 converter=legacy override 解析斷言

測試:vitest run RememberedHomeRoute.test.tsx(21 passed);pre-commit hooks 全數通過

Co-authored-by: Cursor <cursoragent@cursor.com>
- 錨點 id 由 seo-metadata SSOT 序位派生(faq-qN,對齊指南頁 step-N 慣例)掛 scroll-mt safe-area
- TOC 對齊指南頁 rail 模式:桌面 sticky 側欄、行動摺疊;整段包在 nav 導覽 chrome 內(issue 655)
- heading outline 與可見內容文字零變動;hash 深連結與 TOC 側跳自動展開目標 details
- 新增 FAQ.test.tsx 驗收:錨點齊全、TOC 連結有效、無新增 heading、深連結展開

測試:vitest run FAQ.test.tsx(5 passed);pre-commit hooks 全數通過

Co-authored-by: Cursor <cursoragent@cursor.com>
- manifest route 由 NetworkOnly 改為自訂 network-first handler(issue 656)
- 線上永遠走網路:no-cache+ETag 條件請求行為不變,成功回應寫入 manifest-cache
- 僅離線/網路失敗時回退 runtime cache 副本;無副本維持原錯誤不吞錯
- 不引入 Workbox NetworkFirst,保持 navigation 防回歸斷言有效
- sw.test.ts 補 3 項 handler 行為測試並更新 manifest 策略守門

測試:vitest run sw.test.ts(49 passed);pre-commit hooks 全數通過

Co-authored-by: Cursor <cursoragent@cursor.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

⚠️ Deprecation Warning: The deny-licenses option is deprecated for possible removal in the next major release. For more information, see issue 997.

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

✅ SEO 審計通過!所有 2026 標準驗證項目都符合要求。

  • ✅ Sitemap 2026 標準
  • ✅ Breadcrumb Schema
  • ✅ JSON-LD 結構化數據
  • ✅ 內部連結結構

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant