Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
6e33881
fix(ratewise): 修復 lint 基線
May 12, 2026
f8c814b
fix(ratewise): 收斂正式公開路由表面
May 12, 2026
9cf44bb
fix(ratewise): 改善全域錯誤可觀測性
May 12, 2026
8e3e16f
test(ratewise): 補強生產級 QA 閘門
May 12, 2026
1abab9c
build(ratewise): 收斂生成產物 SSOT
May 12, 2026
e7f76aa
refactor(ratewise): 建立幣別路由 registry
May 12, 2026
325ebff
test(ratewise): 對齊 internal route 預渲染契約
May 12, 2026
2529742
fix(ratewise): 收斂 fallback 匯率快照
May 12, 2026
4527f53
fix(ratewise): 修正多幣別匯率標籤
May 12, 2026
bfedf89
fix(ratewise): 修正多幣別無障礙對比
May 12, 2026
d358efd
test(ratewise): 修復 E2E 測試矩陣漂移
May 13, 2026
bb5eb9b
fix(ratewise): 補強遠端匯率失敗 fallback
May 13, 2026
5870651
fix(ratewise): 修復 SSG 金額頁快照來源
May 13, 2026
4569006
Merge remote-tracking branch 'origin/main' into chore/ratewise-produc…
May 13, 2026
75c46bf
fix(ratewise): 更新 fallback 快照與刷新輸出
May 13, 2026
146fd3f
ci(ratewise): 收斂資料 PR 合併治理
May 13, 2026
596426d
fix(ratewise): 補齊跨瀏覽器 fetch 失敗分類
May 14, 2026
ab61b65
refactor(ratewise): 收斂 Sentry beforeSend 與 errorClassification SSOT
May 14, 2026
f6a9298
perf(ratewise): 換錢所趨勢線收斂為 aggregate SSOT
May 15, 2026
3ff42f2
refactor(ratewise): 收斂 moneybox aggregate 註解與快取寫入點
May 15, 2026
e4c1b63
ci(ratewise): moneybox workflow 發布 aggregate 30-day history
May 15, 2026
56c7924
refactor(ratewise): 收斂 UIUX 與設計 Token SSOT
May 23, 2026
05b3e49
refactor(ratewise): 收斂設計 Token SSOT 至生產級別
May 30, 2026
07c7756
chore(ratewise): 生產治理同步與 PWA shell 品牌色收斂
May 30, 2026
cc67165
fix(ratewise): 收斂換錢所 rateMode 選價 SSOT 並移除內容頁 sticky header
s123104 Jun 10, 2026
3440a56
fix(ratewise): 補齊互動元件 44px 觸控目標與鍵盤焦點指示
s123104 Jun 10, 2026
7b1b8be
refactor(ratewise): 圓角 SSOT 終局收斂並新增防回歸守門
s123104 Jun 10, 2026
e31ab53
fix(ratewise): 修正 open-data 端點路徑 320px 水平溢出
s123104 Jun 10, 2026
6790b17
fix(ratewise): 移除 CDN If-None-Match 避免 jsDelivr preflight 失敗
Jun 13, 2026
065955e
docs(ratewise): 新增 2026 產品級 UX 規格與 Phase 1 計畫
Jun 13, 2026
83c793f
feat(split-meow): 新增 KRW 貨幣支援與換錢所匯率整合
Jun 18, 2026
6462118
fix(ratewise): 更新 sw.test.ts 對齊 precache-first 導覽策略
Jun 18, 2026
28dd0f2
fix(ratewise): 更新 pwa-offline.test.ts 對齊 precache-first 導覽策略
Jun 18, 2026
9e20410
fix(ratewise): 對齊 nitro 主題色票 SSOT(themes.ts ↔ index.css)
Jun 19, 2026
51066c5
feat(split-meow): 以固定底部面板取代 BottomSheet 解決鍵盤遮擋問題
Jun 19, 2026
86c77b4
fix(ratewise): 以 precache-first 取代 3s timeout 修復 iOS PWA eviction 假離線
Jun 19, 2026
cbd116c
fix(ratewise): 移除 moneybox CDN ETag 請求,更新 OpenData 與 SeoTech 說明
Jun 19, 2026
a9eae3d
fix(ratewise): 為導覽 case-3 加上有界網路 fallback (#426)
s123104 Jun 26, 2026
5ccd813
fix(ci): MoneyBox history 檔名改用資料的首爾 snapshot date
Jun 26, 2026
e99b0d1
chore(ratewise): 合併 main 至 production-governance-v2
Jun 26, 2026
b1c5806
fix(ratewise): rate service 採 PR425 的 cache no-cache 並移除冗餘 ETag chang…
Jun 26, 2026
76407fd
Merge remote-tracking branch 'origin/main' into chore/ratewise-produc…
Jun 26, 2026
b161ab1
fix(ratewise): 移除 typescript-eslint 8.59.3 標記的冗餘型別斷言
Jun 26, 2026
dcbf5f8
Merge remote-tracking branch 'origin/main' into chore/ratewise-produc…
Jun 26, 2026
40529f0
test(ratewise): 搶救 MoneyBox 首爾時區守門測試(自 PR428 關閉)
Jun 26, 2026
f6becdd
chore(ratewise): 合併 main 至 production-governance-v2(套用 E2E 1.61.1 修復)
Jun 26, 2026
8b1e51b
feat(ratewise): 收編金融級計價基準 SSOT 與計算機即時換算預覽 (#441)
s123104 Jun 26, 2026
c52a7c6
refactor(ratewise): 收斂計算機衍生狀態與計價基準 i18n SSOT (#453)
s123104 Jun 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/converge-uiux-rate-basis.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@app/ratewise': minor
---

換算結果新增計價基準標示(臺銀賣出/買入、換錢所等六種基準 pill),收藏與全幣種清單標示臺銀賣出價基準與 TWD 單位;計算機輸入時即時顯示目標幣別換算預覽;換算結果加入螢幕閱讀器 aria-live 宣告;多幣別收藏星與字級補足無障礙觸控目標與對比下限。
5 changes: 5 additions & 0 deletions .changeset/fix-nitro-theme-ssot.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@app/ratewise': patch
---

對齊 nitro 主題色票 SSOT:themes.ts primary 從 #00D4FF 改為 #0096E6,與 index.css 保持一致
5 changes: 5 additions & 0 deletions .changeset/fix-ratewise-pwa-ios-eviction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@app/ratewise': patch
---

修復 iOS PWA precache 驅逐後 3s timeout 導致在線用戶看到 offline.html 的假離線問題,改用 precache-first 冷啟動策略
5 changes: 5 additions & 0 deletions .changeset/quiet-breadcrumb-token-refactor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@app/ratewise': patch
---

收斂內容頁返回導覽、麵包屑與核心 UI shell 的 design token,改善 PWA 與小螢幕顯示穩定性。
5 changes: 5 additions & 0 deletions .changeset/ratewise-a11y-touch-target-focus.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@app/ratewise': patch
---

無障礙與操作體驗改善:評分視窗星星按鈕、開放資料頁複製按鈕、Email 連結與計算機關閉鈕補齊 44px 觸控目標與鍵盤焦點指示;小型標籤與代碼區塊圓角統一為設計系統規格。
5 changes: 5 additions & 0 deletions .changeset/ratewise-artifact-ssot.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@app/ratewise': patch
---

Clarify generated artifact buckets and remove local build report files from tracked source.
5 changes: 5 additions & 0 deletions .changeset/ratewise-calculator-preview-derived-ssot.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@app/ratewise': patch
---

內部收斂:計算機即時預覽改以衍生值(useMemo)取代冗餘狀態與同步 effect,並將計價基準的 i18n key 集中為單一來源。對外顯示與換算行為不變,僅提升可維護性與一致性。
5 changes: 5 additions & 0 deletions .changeset/ratewise-currency-route-registry.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@app/ratewise': patch
---

Consolidate currency landing route registration behind a registry with parity checks.
5 changes: 5 additions & 0 deletions .changeset/ratewise-data-pr-governance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@app/ratewise': patch
---

Strengthen scheduled rate data update governance by requiring generated data PRs to pass branch protection before merge.
5 changes: 5 additions & 0 deletions .changeset/ratewise-design-token-ssot.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@app/ratewise': patch
---

收斂設計 Token 為語義化 SSOT:圓角與陰影全站統一為語義 token,恢復 Tailwind 標準預設值避免第三方整合風險
5 changes: 5 additions & 0 deletions .changeset/ratewise-eslint-8593-redundant-assertions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@app/ratewise': patch
---

移除 typescript-eslint 8.59.3 新規則標記的冗餘型別斷言(MiniTrendChart、exchangeRateService);內部 lint 清理,使用者無可見影響。
5 changes: 5 additions & 0 deletions .changeset/ratewise-exchange-shop-ratemode-nav-header.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@app/ratewise': patch
---

修正換錢所匯率模式選價:選「中間價」時正確以(買入+賣出)÷2 計算、選「賣出」時雙向採用賣出價,趨勢圖與多幣別列同步跟隨所選模式;內容頁頂部「返回+麵包屑」導覽改為不固定的圓角按鈕樣式,修復部分 iOS PWA 用戶頂部內容被遮擋的問題。
5 changes: 5 additions & 0 deletions .changeset/ratewise-opendata-mobile-overflow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@app/ratewise': patch
---

修正開放資料頁 API 端點路徑在小螢幕(320px 等窄視口)造成的水平溢出,長路徑現在會正確斷行。
5 changes: 5 additions & 0 deletions .changeset/ratewise-pwa-shell-brand-sync.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@app/ratewise': patch
---

PWA shell 品牌色同步至 Violet 主題,CDN 備援日誌降噪至 debug 等級
5 changes: 5 additions & 0 deletions .changeset/ratewise-radius-ssot-guard.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@app/ratewise': patch
---

視覺一致性收斂:匯率卡趨勢圖底部圓角對齊卡片外框、骨架載入與小型元素圓角統一為設計系統規格,並新增圓角防回歸守門測試。
5 changes: 5 additions & 0 deletions .changeset/ratewise-sw-bounded-nav.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@app/ratewise': patch
---

離線/弱網下載入更穩定,不再可能卡白屏。
22 changes: 19 additions & 3 deletions .github/workflows/update-moneybox-rates.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,13 +94,26 @@ jobs:
id: save-history
if: steps.fetch-rates.outcome == 'success'
run: |
CURRENT_DATE=$(TZ=Asia/Taipei date +%Y-%m-%d)
MONEYBOX_HISTORY_FILE="${MONEYBOX_HISTORY_DIR}/${CURRENT_DATE}.json"
mkdir -p "$MONEYBOX_HISTORY_DIR"
if [[ ! -f "$MONEYBOX_FETCH_OUTPUT_FILE" ]]; then
echo "❌ Current MoneyBox fetch snapshot missing: ${MONEYBOX_FETCH_OUTPUT_FILE}"
exit 1
fi
# history 檔名 SSOT:直接採用資料本身宣告的首爾掛牌日(updateTime),
# 與 fetch script 的 date-rollover 判斷 (extractSeoulSnapshotDate) 同源,
# 避免 runner wall-clock 與資料日期在跨日視窗不一致。提取失敗時 fallback 首爾 wall-clock。
CURRENT_DATE=$(node --input-type=module -e "
import { readFileSync } from 'node:fs';
const { extractSeoulSnapshotDate } = await import('./scripts/fetch-moneybox-rates.js');
const data = JSON.parse(readFileSync(process.env.MONEYBOX_FETCH_OUTPUT_FILE, 'utf8'));
const d = extractSeoulSnapshotDate(data);
if (d) process.stdout.write(d);
")
if [[ ! "$CURRENT_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
CURRENT_DATE=$(TZ=Asia/Seoul date +%Y-%m-%d)
echo "⚠️ 無法從資料提取首爾 snapshot date,fallback 至首爾 wall-clock: ${CURRENT_DATE}"
fi
MONEYBOX_HISTORY_FILE="${MONEYBOX_HISTORY_DIR}/${CURRENT_DATE}.json"
mkdir -p "$MONEYBOX_HISTORY_DIR"
if [[ ! -f "$MONEYBOX_HISTORY_FILE" ]] || [[ -n "$(git status --short --untracked-files=all -- "$MONEYBOX_LATEST_FILE")" ]]; then
cp "$MONEYBOX_FETCH_OUTPUT_FILE" "$MONEYBOX_HISTORY_FILE"
echo "✅ MoneyBox history snapshot refreshed: ${MONEYBOX_HISTORY_FILE}"
Expand Down Expand Up @@ -135,6 +148,9 @@ jobs:
if [[ -n "$(git status --short --untracked-files=all -- "$MONEYBOX_HISTORY_DIR/")" ]]; then
echo "changed=true" >> $GITHUB_OUTPUT
fi
if [[ ! -f "$MONEYBOX_AGGREGATE_FILE" ]]; then
echo "changed=true" >> $GITHUB_OUTPUT
fi
if [[ "$RETIRED_ALIASES_CHANGED" == "true" ]]; then
echo "changed=true" >> $GITHUB_OUTPUT
fi
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,9 @@ squirrel.toml
.agents/skills/*/references/
.agents/skills/*/AGENTS.md

# Third-party local skill bundles (tool-synced, not project source)
.agents/skills/impeccable/

# AI tool local skill copies (synced from .agents/skills/)
.claude/
.codex/
Expand Down
25 changes: 25 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -823,5 +823,30 @@ Agent 在結案或提交時,應能提供下列證據(依任務適用性)

---

## Learned User Preferences

- 偏好極簡 UI 設計:卡片與按鈕不加外框(border/outline),保持乾淨俐落
- 多幣別轉換器中,非主幣項目使用極淺背景色 token,避免視覺突兀
- 匯率顯示採 Google 模式:上方為原始幣、下方為目標幣,顯示買入價與其倒數,不使用「買入/賣出」術語
- 匯率來源切換為三態(即期/現金/換錢所),無資料者灰色顯示並自動 fallback 至下一個可用來源
- RateWise UI/UX 標竿為韓系金融 App(Toss、Wowpass),並行多面向審查追求高真度體驗
- Kawaii 主題色票偏好較淺、較飽和粉嫩,避免暗沉色;Nitro/Ocean 等深色主題 primary 按鈕使用淺白字
- 頁面資訊應精簡去重,避免重複雜亂堆疊;單幣別輸入應減少 Modal 閘門與多步摩擦
- 所有修復需保持原子化,不得順便重構或加入不必要註解
- 期望持續迭代直到完美收斂:監控 Codex review 並逐一解決、推送、驗證

## Learned Workspace Facts

- `docs/prompt/UIUX.md` 為 UI/UX 變更的正式審查清單,用於審視未提交改動
- `feat/ratewise-fintech-uiux-p0` 為最新 RateWise UI/UX 分支(含 governance 與計價基準 pill);若被 worktree 占用,開發/審查使用 `.claude/worktrees/ratewise-uiux-p0`
- 2026 UX 規格與 Phase 1 計畫見 `docs/superpowers/specs/` 與 `docs/superpowers/plans/`
- 品牌名稱 SSOT 為「HaoRate 匯率好工具」
- RateWise 趨勢圖曾因 `TREND_CHART_DEFER_MS = 10000` 導致感知延遲,需保持 defer 時間在合理範圍
- SEO 生產驗證三腳本組合:`verify-production-resources.mjs`(資源可達)→ `verify-all-apps.mjs`(語義)→ `verify-precache-assets.mjs`(PWA live)
- Codex review 收斂為標準工作流:使用 `pnpm review:codex:audit` 盤點 → `gh` 逐條回覆 → 標記 resolved
- 使用者會透過瀏覽器元素選取(browser_element)直接指定要修改的 UI 節點

---

**最後更新**: 2026-05-02T09:00:00+0800
**版本**: v5.5(SEO 迭代 SOP 與監控治理補齊)
Loading
Loading