---
# System prepended metadata

title: 'CHANGELOG:Bubly'

---

# CHANGELOG

此文件記錄專案的版本變更、解決的問題以及重要的程式碼更新。


---

## v2.9.0 (2025-12-06) - AI 歷史回顧與生日慶祝優化

本版本專注於提升使用者與 AI 助手的互動回憶，並大幅改善了生日慶祝的視覺體驗，同時簡化了匯入聯絡人的流程。

### 🤖 AI Wishes History (AI 歷史回顧)

- **新增歷史紀錄區塊**：在 Friend Profile 頁面新增了 "AI Wishes" 區塊，自動記錄所有為該好友生成的 AI 祝福語。
- **折疊式設計**：
  - 預設僅顯示摘要 (2 行)，保持介面整潔。
  - 點擊卡片可展開閱讀完整內容，支援長文也不佔版面。
- **視覺化標籤**：每則紀錄都附帶場景標籤 (Scenario Badge) 與日期，清楚回顧每一次的溫暖互動。

### 🎂 生日慶祝體驗升級 (Birthday Celebration)

- **隨機彩帶特效**：
  - 重新設計了彩帶 (Confetti) 動畫，現在會以隨機的速度、角度和位置飄落，營造更自然歡樂的氛圍。
- **優雅的生日徽章**：
  - 移除了頂部突兀的橫幅，改在名字下方顯示精緻的 "🎉 Happy Birthday!" 膠囊徽章。
  - 視覺上更融入 Profile Header，不搶占主要資訊空間。

### 📥 匯入聯絡人優化 (Import Contacts)

- **搜尋功能**：新增即時搜尋列，可透過名字快速查找手機通訊錄中的特定聯絡人。
- **狀態過濾器**：
  - **All**：顯示所有聯絡人。
  - **Birthday**：只顯示有生日資料的聯絡人。
  - **Photo**：只顯示有照片的聯絡人。
  - **New**：只顯示尚未匯入的新聯絡人。
- **介面簡化**：移除了多餘的快速全選按鈕，操作更直觀。

### 🛠 技術變更
- 更新 App 版本至 **v2.9.0**。
- 清理未使用樣式代碼。

## v2.8.0 (2025-12-06) - 節日日曆客製化與使用者回饋系統

本版本帶來多項重要改進，包括節日日曆客製化功能、使用者回饋表單整合、Import 流程修復，以及多處 UI 優化。

### 🆕 新增 Library
- **react-native-webview@13.15.0**：用於嵌入 Tally 回饋表單

### 🎄 節日日曆客製化 (Holiday Calendars)

- **新增設定選項**：Settings → DATA & PREFERENCES → Holiday Calendars
- **四種選項**：
  - 🎄 **Western**（預設）：西洋節日
  - 🧧 **Chinese**：華人傳統節日
  - 🎄🧧 **Both**：兩者皆顯示
  - **None**：不顯示任何節日
- **西洋節日**：New Year's Day、Valentine's Day、St. Patrick's Day、Halloween、Thanksgiving、Christmas Eve/Day、New Year's Eve
- **華人節日**：春節、元宵節、清明節、端午節、中秋節、重陽節、冬至
- **動態主題**：每個華人節日都有專屬的漸層配色和裝飾圖示

### 💬 使用者回饋系統 (Feedback Form)

- **Tally 表單整合**：新增 `FeedbackScreen`，使用 WebView 嵌入 Tally.so 回饋表單
- **App 內體驗**：用戶不需離開 App 即可填寫回饋
- **完整狀態處理**：載入中 spinner、錯誤處理與重試按鈕
- **流程**：Settings → Send Feedback → 打開 Modal 顯示表單

### ❓ Help Center 說明中心

- **新增 `HelpCenterScreen`**：完整的 App 內說明系統
- **5 大主題分類**：
  - 🚀 **Getting Started**：Bubly 介紹、新增朋友、匯入聯絡人
  - 👥 **Managing Friends**：親密程度、釘選、批次刪除、標籤
  - 📅 **Calendar & Reminders**：通知設定、節日顯示、紀念日
  - ✨ **AI Assistant**：AI 功能、API Key 設定
  - 🛡️ **Privacy & Data**：資料安全、匯出、重置
- **手風琴式展開**：點擊問題展開答案，優雅的動畫效果
- **快速連結**：Send Feedback 和 Email Support 入口
- **設計風格**：漸層 Hero 卡片、玻璃質感、與 App 一致的美學

### 🔧 親密程度選擇器重設計 (Closeness Segment Picker)

- **問題**：原先頭像下方的小徽章太隱蔽，用戶不會注意到可以點擊
- **解決方案**：新增玻璃質感的三選項分段選擇器
  - 👋 **Just Met** - Acquaintance（青綠色漸層）
  - 🫶 **Friend** - Good buddy（紫色漸層）
  - 💖 **Bestie** - Inner circle（粉紅色漸層）
- **位置**：放在 Nickname 區塊下方、Tab Switcher 上方
- **設計**：大面積可點擊區域、Emoji + 標題 + 副標題

### 🐛 Bug 修復 (Bug Fixes)

#### 1. Import Contacts 卡住問題
- **問題**：Reset All Data 後匯入聯絡人，Import Successful Modal 無法顯示
- **根本原因**：useEffect 依賴 existingContacts，導致連鎖更新
- **修正**：
  - 使用 `useRef` 追蹤匯入狀態 (`isImporting`, `hasLoadedOnce`)
  - 使用快照 (`existingContactsSnapshot`) 判斷已匯入聯絡人
  - 改用 `navigation.reset()` 進行更穩定的導航重置

#### 2. Calendar 日曆高度不一致
- **問題**：月份天數不同時，日曆大小會變化，導致下方介面跳動
- **修正**：設置 `daysGrid` 固定 `minHeight: 260`，`dayCell` 使用固定 `height: 43`

### 🎨 UI 優化 (UI Improvements)

#### Friends 頁面
- **複選按鈕移動**：從 Header 移至 Filter Row 末端，成為 "Select" 按鈕
- **更好的視覺一致性**：與 Sort 按鈕和 Tag Chips 風格一致

#### Calendar 頁面
- **預設視圖**：改為 Calendar 視圖（原為 Timeline）
- **Filter Tabs 間距**：增加 `headerTitleRow` 的 `marginBottom`，防止標籤被遮擋

#### Bottom Navbar
- **圖標對齊修復**：修正 `glowContainer` 添加居中樣式，確保發光圓圈與圖標精確對齊

### 📋 技術變更摘要

| 檔案                                   | 變更                                |
| -------------------------------------- | ----------------------------------- |
| `src/types/index.ts`                   | 新增 `holidayCalendars` 設定屬性    |
| `src/screens/FeedbackScreen.tsx`       | ⭐ 新增 - Tally 回饋表單頁面         |
| `src/screens/HelpCenterScreen.tsx`     | ⭐ 新增 - Help Center 說明中心       |
| `src/screens/SettingScreen.tsx`        | 新增節日日曆設定、修改回饋/說明導航 |
| `src/screens/CalendarScreen.tsx`       | 新增華人節日、固定日曆高度          |
| `src/screens/FriendsScreen.tsx`        | 移動複選按鈕位置                    |
| `src/screens/EditContactScreen.tsx`    | 重設計親密程度選擇器                |
| `src/screens/ImportContactsScreen.tsx` | 修復 Reset 後匯入卡住問題           |
| `src/components/GlassTabBar.tsx`       | 修復圖標居中對齊                    |
| `App.tsx`                              | 新增 Feedback、HelpCenter 路由      |

---

## v2.7.0 (2025-12-05) - 設定頁面大改版與批次操作功能

本版本帶來了全新的設定頁面設計，提升了整體 App 的專業度與一致性，並在朋友列表新增了實用的批次刪除功能，同時為行事曆加入了生動的節日主題卡片。

### ⚙️ 設定頁面重塑 (Settings Revamp)

- **現代化分組設計**：採用類似 iOS 原生的分組清單風格，將設定項目清晰分類為 General、Data & Preferences、AI Assistant、Support 等區塊。
- **個人化資料卡片**：新增個人資料預覽區塊，目前顯示 "Free Trial" 會員狀態，為未來的付費功能預留空間。
- **新增支援與法律資訊**：
  - **Support**：新增 "Rate Bubly" (評分)、"Send Feedback" (意見回饋) 與 "Help Center" (說明中心) 入口。
  - **Legal**：新增 "Terms of Service" 與 "Privacy Policy" 頁面，內含符合美台法規的標準條款。
- **危險區域 (Danger Zone)**：將重置資料功能獨立為紅色警示區塊，防止誤觸。

### 👥 朋友列表升級 (Friends Screen)

- **批次刪除功能 (Batch Delete)**：
  - 新增多選模式 (Selection Mode)，可透過長按卡片或點擊 Header 的 "Select" 按鈕進入。
  - **Header 整合操作**：將刪除按鈕整合至頂部 Header 右側，解決了原先底部操作列被導航欄遮擋的問題。
  - **視覺優化**：選取狀態清晰可見，操作流程順暢。

### 📅 行事曆節慶主題 (Calendar Festive Themes)

- **動態 "Up Next" 卡片**：
  - 根據即將到來的事件類型自動切換主題配色與裝飾。
  - **生日**：金黃色漸層 + 蛋糕氣球 🎂🎈
  - **聖誕節**：紅綠漸層 + 聖誕樹雪花 🎄❄️
  - **萬聖節**：橘黑漸層 + 南瓜幽靈 🎃👻
  - **情人節**：粉紅漸層 + 愛心玫瑰 💘🌹
  - **新年**：深藍金漸層 + 煙火香檳 🎆🥂
- **篩選器修復**：修復了上方月曆視圖 (Calendar View) 無法正確響應篩選器 (Birthdays, Holidays 等) 的問題。

### 🎨 其他優化

- **AI Assistant**：移除了 Header 左上角不必要的返回箭頭，與其他主頁面保持一致。
- **版本號更新**：App 版本推進至 v2.7.0。

### 🛠 修正與優化 (Hotfix 2025-12-05)

#### 1. 📅 Anniversary Date Picker 修復
- **問題**：iOS 上打開 Anniversary 日期選擇器後，只顯示一條灰色線，無法選擇日期。
- **修正**：
  - 新增 `textColor="#000000"` 與 `themeVariant="light"` 確保文字和背景顏色正確。
  - 添加 `datePickerWrapper` 容器設置白色背景，確保 Spinner 可視。
  - 將 Picker 高度從 150px 增加到 200px，提升使用體驗。

#### 2. 🎚️ Friendship Gravity 改為按鈕選擇器
- **問題**：原先的滑桿式設計操作不直觀，拖動時泡泡動態不穩定。
- **修正**：
  - 將複雜的 PanResponder 滑桿改為**三個簡單按鈕**選擇器。
  - 使用 LinearGradient 配色與 FriendProfileScreen 一致：
    - **Just Met**：藍綠色漸層 `['#84fab0', '#8fd3f4']`
    - **Friend**：紫色漸層 `['#a18cd1', '#fbc2eb']`
    - **Bestie**：粉紅色漸層 `['#FF9A9E', '#FECFEF']`
  - 每個選項都有 ⭐ 星星圖示，點擊即選擇。

#### 3. 📥 匯入聯絡人 - 生日與紀念日資料遺失修復 (Critical)
- **問題**：從手機通訊錄匯入聯絡人時，生日 (Birthday) 和紀念日 (Anniversaries) 資料沒有被帶入 App。
- **根本原因**：在 `ImportContactsScreen.tsx` 創建 `newContact` 物件時，遺漏了 `birthday`、`birthdayYearUnknown` 和 `enableBirthdayNotification` 欄位。
- **修正**：
  - 新增 `birthday: fullContactData.birthday` 將生日資料正確帶入。
  - 新增 `birthdayYearUnknown` 標記，當手機通訊錄中的生日沒有年份時，正確標記為「年份未知」。
  - 新增 `enableBirthdayNotification: true` 預設開啟生日通知。

#### 4. 🔗 匯入成功後導航修復
- **問題**：匯入聯絡人成功後，點擊 "Awesome!" 按鈕會卡在 Import Contacts 頁面。
- **修正**：
  - 使用 `StackActions.popToTop()` 先回到堆疊頂部，再導航到 Friends 頁面。
  - 添加適當的延遲確保 Modal 完全關閉後再執行導航。

#### 5. 📌 新增釘選功能 (Pin Contacts)
- **功能**：在 Friends 頁面可以釘選喜愛的聯絡人，使其永遠顯示在列表最上方。
- **特點**：
  - 📌 釘選的聯絡人**完全固定**在最上面，不受排序方式影響。
  - 📌 支援 **List 模式** 和 **Grid 模式**。
  - 📌 已釘選狀態：List 模式顯示紫色書籤，Grid 模式顯示紫色背景按鈕。
  - 📌 點擊書籤圖示即可釘選/取消釘選。

#### 6. 🗑️ 刪除聯絡人 UI 優化
- **問題**：原先 "Delete Contact" 按鈕使用白色文字，在頁面上不夠明顯。
- **修正**：
  - 改為紅色醒目設計：🗑️ 垃圾桶圖示 + 紅色文字 + 紅色邊框。
  - 簡化確認流程為單次確認。

#### 7. 🧹 其他清理
- 移除 Import Contacts 列表中不必要的編輯按鈕，簡化匯入流程。

---

## v2.6.1 (2025-12-05) - 編輯體驗優化與 Bug 修復

本版本針對「編輯聯絡人」頁面進行了細節打磨，修復了年份選擇器的操作問題，並優化了鍵盤互動體驗，確保輸入過程流暢無阻。

### 🛠 修正與優化 (Fixes & Improvements)

#### 1. 🎁 Gift History 年份選擇器修復
- **問題**：原先的年份選擇器在滾動時無法正確選定年份，關閉後會跳回預設值 (2025)。
- **修正**：
  - 實作了 `onMomentumScrollEnd` 與 `onScrollEndDrag` 監聽，確保滾動停止時自動選定視窗中央的年份。
  - 加入 `snapToAlignment="center"` 讓滾動手感更明確，不再卡在兩個年份中間。
  - 設定 `initialScrollIndex` 確保打開時自動定位到當前設定的年份。

#### 2. ⌨️ 鍵盤遮擋完美解決 (Notes 區塊)
- **問題**：在編輯位於頁面底部的 "Notes" 或 "Gift History" 輸入框時，鍵盤彈出會遮擋輸入內容，導致無法邊看邊打。
- **修正**：
  - 引入 `react-native-keyboard-aware-scroll-view` 取代原本的 `KeyboardAvoidingView`。
  - 實現智能滾動機制，當鍵盤彈出時，畫面會自動上推，確保當前焦點輸入框始終位於鍵盤上方可視區域。
  - 支援點擊背景收起鍵盤 (`keyboardShouldPersistTaps="handled"`)，提升操作便利性。

#### 3. 📥 匯入成功視窗優化
- **問題**：部分用戶回報匯入聯絡人後的 "Success" 原生彈窗 (Alert) 無法關閉。
- **修正**：
  - 以全新的 **Custom Success Modal** 取代原生 `Alert.alert`。
  - 採用一致的玻璃擬態設計，提供明確的 "Awesome!" 關閉按鈕，徹底解決卡死問題。

#### 4. 📝 文案優化
- **調整**：將首頁 Fun Fact 中較難懂的 "404: Bad vibes not found" 替換為更正向、符合品牌調性的 "Bubbo says: Pop problems like bubbles! 🫧"。


## v2.6.0 (2025-12-05) - Dashboard Refinement & Calendar Revamp

本版本針對首頁儀表板 (Dashboard) 與行事曆 (Calendar) 進行了深度優化，提升了資訊的可讀性與互動性，並進一步打磨了視覺細節。

### 📊 Dashboard Widget Refinement (儀表板優化)

#### 1. Today's Party (今日壽星)
- **視覺降噪**：調整了卡片背景漸層，改為極淡的 Pastel (粉彩) 色系，降低視覺搶眼度，使其更自然融入整體風格。
- **排版優化**：
  - 固定卡片寬度，確保版面整潔。
  - 增加名字顯示行數並縮小問候語字體，解決長名字或長問候語被截斷的問題。
- **動態背景**：根據聯絡人重要性 (Bestie/Friend/Just Met) 自動切換不同的柔和背景色。

#### 2. Widget 重新設計
- **My Circle (原 Friends Widget)**：更名並加入 "Friends Connected 🤝" 副標題，強調人際連結的概念。
- **Zodiac Season (星座季節)**：
  - 新增星座 Widget，顯示當前星座季節 (e.g., Capricorn ♑)。
  - 點擊可查看該星座的朋友數量與特質。
- **Events This Week**：
  - 取代原本模糊的 "Chill Vibes"，直接顯示未來 7 天內的事件數量，資訊更明確。

### 📅 Calendar Revamp (行事曆翻新)

#### 1. 雙視圖切換 (Timeline vs Calendar)
- **Timeline View (時間軸視圖)**：
  - 全新的預設視圖，以垂直時間軸呈現未來 12 個月的事件。
  - **Sticky Month Headers**：月份標題懸浮固定，瀏覽更清晰。
  - **Next Big Event**：頂部自動顯示下一個最重要的事件 (如 Bestie 生日) 並附帶倒數計時。
- **Calendar View (月曆視圖)**：保留傳統月曆模式，供習慣查看日期的用戶使用。

#### 2. 智慧過濾器 (Smart Filters)
- 新增橫向過濾 Bar：**All / Birthdays / Anniversaries / Holidays**。
- 可快速篩選特定類型的事件，例如只查看接下來的節日或生日。

#### 3. 資料整合
- 完美整合 **Holidays (節日)**、**Birthdays (生日)** 與 **Anniversaries (紀念日)**。
- 節日顯示專屬 Emoji (如 🎄, 🎃)，提升趣味性。

### 🛠 其他修正 (Fixes)
- **Anniversary Picker**：修復了編輯聯絡人頁面中 Anniversary 日期選擇器無法彈出的問題，改用 Modal 形式以確保穩定性。
- **Good Morning**：修復了首頁問候語在字數過多時被截斷的問題。
- **LinearGradient 類型修復**：解決了 TypeScript 中漸層顏色的類型錯誤。

---

## v2.5.0 (2025-12-04) - AI 助手體驗重塑與 UI 一致性整合

本版本專注於 AI Assistant 的深度體驗優化，解決了長期存在的鍵盤遮擋與操作卡頓問題，並統一了全 App 的視覺語言。

### 🤖 AI Assistant 體驗重塑

#### 1. 🧠 主動式節日建議 (Proactive Prompts)
- **智慧偵測**：當您打開 AI 助手時，Bubbo 會自動檢查未來 7 天內是否有聯絡人的生日或紀念日。
- **驚喜提示**：若發現近期事件，Bubbo 會主動提示："Bubbo noticed Alice's Birthday is in 3 days!"
- **一鍵生成**：點擊提示卡片即可直接進入該聯絡人的祝福語生成模式，省去手動選擇的步驟。

#### 2. 🎁 禮物靈感筆記 (Gift Ideas Tracker)
- **隨手記錄**：在聯絡人編輯頁面新增「Gift Ideas」區塊，聽到朋友想要什麼隨時記下。
- **送禮時光機**：新增「Gift History」功能，記錄歷年送過的禮物（含年份），避免重複送禮的尷尬。
- **貼心展示**：在聯絡人詳情頁 (Profile) 清晰展示未來的點子與過去的紀錄。

#### 3. ⌨️ 完美的鍵盤交互體驗
- **三重防遮擋機制**：
  - 增加 ScrollView 底部空間至 300px
  - TextInput 內建 150px 緩衝區
  - **雙重自動滾動**：編輯時 300ms 預防性滾動 + 600ms 確認性滾動，確保文字永遠可見
- **流暢編輯**：
  - 修復了編輯長文時的滑動卡頓（通過 `scrollEnabled={false}` 將滑動權交還給頁面）
  - 新增 **拖曳收起鍵盤** (`keyboardDismissMode="on-drag"`)
  - 新增 **完成按鈕**：編輯模式右上角新增打勾按鈕，一鍵完成並收起鍵盤

#### 2. ⚡️ 極速生成體驗
- **打字機速度提升 300%**：從 50ms/字 提升至 **15ms/字**，大幅減少等待感
- **智能跟隨滾動**：打字機進行時畫面自動向下捲動，確保用戶永遠看到最新生成的文字
- **全新 Loading 狀態**：
  - 生成時畫面中央顯示大型 Bubbo (Thinking Mood)
  - 清晰的 "Crafting your perfect message..." 提示與 Spinner 動畫

#### 3. 🎄 節日與功能增強
- **聖誕限定場景**：恢復 `🎄 Christmas Greetings` 為最優先場景，支援聖誕專屬 Prompt
- **歷史紀錄管理**：新增「清除所有歷史」功能（帶確認保護）

### 🎨 UI 視覺一致性整合

#### 統一重要度顯示 (Importance Badges)
將 Home、Friends、Calendar 三個畫面的聯絡人重要度顯示方式完全統一，提升辨識度。

- **統一標準**：全線採用 **Mini Gradient Badge + Star Icon** ⭐
- **移除舊設計**：廢除 Friends 列表原本不明顯的純色圓點
- **視覺規範**：
  - 尺寸：16x16px
  - 內容：白色微型星星 icon
  - 背景：根據重要度顯示對應漸層（紅/紫/藍）

### 🧹 代碼清理
- 移除臨時修復指南文件
- 優化 TypeScript 類型定義
- 統一組件樣式引用

---

## v2.4.0 (2025-12-04) - UI/UX 精緻化與全局鍵盤優化

本次更新帶來了大規模的 UI/UX 改進，重點優化了生日選擇器、AI 助理對話氣泡的視覺設計，並解決了全局鍵盤遮擋問題。此版本專注於提升用戶體驗的直觀性與視覺吸引力。

### 🎂 生日選擇器完全重新設計

完全捨棄了過時的分散式輸入方式，改為現代化的模態選擇器設計。

#### 核心特性
- **觸發卡片 (Trigger Card)**：
  - 點擊後彈出模態選擇器
  - **已設置狀態**：紫青漸層背景 + 日曆圖標 + 完整日期顯示
  - **未設置狀態**：灰色背景 + "Tap to set birthday" 提示
  - 清晰顯示年份狀態（完整日期 vs "Year not set"）

- **全新模態設計**：
  - **iOS 風格滑出動畫**：從底部滑出，半透明黑色背景遮罩
  - **清晰的白色漸層背景**：徹底解決黑屏問題
  - **視覺化年份選項卡片**：
    - 📅 **完整日期卡片**（紫青漸層）：日曆圖標 + "Full Date" + "Month, Day & Year"
    - 🎂 **僅生日卡片**（粉紅漸層）：時鐘圖標 + "Just Birthday" + "Month & Day only"
  - **即時預覽卡片**：底部顯示當前選擇的完整預覽（如 "January 15, 1995" 或 "January 15 (year not saved)"）
  - **動態提示文字**：根據選擇顯示 "Select full date:" 或 "Select birthday (month & day):"

#### 用戶體驗提升
- ✨ **一眼就懂**：大卡片視覺化選項，不需思考 toggle 含義
- 🎨 **色彩區分**：紫青 vs 粉紅，清晰區分兩種模式
- 👁️ **即時反饋**：預覽卡片立即顯示結果
- 📱 **觸控友好**：大面積卡片，易於點擊

### 💬 AI 助理對話氣泡重新設計

將原本單調的文字訊息轉變為生動、多狀態的互動體驗。

#### 多狀態設計
1. **初始狀態**（未選擇聯絡人）：
   - ✨ emoji 雙側裝飾：`✨ Hey there! ✨`
   - 漸層強調文字："perfect message"
   - 箭頭引導：`↓ Pick a friend to get started`

2. **工作狀態**（已選聯絡人，待選場景）：
   - 小字體 "Writing for"
   - **大字粗體**聯絡人名字（紫色）
   - 問號圖標 + 斜體提示："What's the occasion?"

3. **思考中狀態**：
   - 🤔 emoji + "Thinking of the perfect words..."

4. **完成狀態**：
   - ✨ emoji + "Ta-da! How does this look?"

#### 視覺改進
- **豐富排版**：不同字體大小、粗細、顏色的組合
- **Emoji 融入**：讓對話更生動有情感
- **引導性圖標**：箭頭、問號等小圖標引導用戶
- **漸層文字強調**：重點詞彙使用品牌色

### ⌨️ 全局鍵盤遮擋問題解決

實現了跨整個應用的鍵盤處理方案，確保輸入體驗流暢。

#### 技術實現
- **`KeyboardAvoidingView` 全局包裹**：EditContactScreen 使用智能鍵盤迴避
- **平台特定設置**：
  - iOS: `padding` 模式 + 90px 垂直偏移
  - Android: 不需特殊處理（`undefined`）
- **效果保證**：
  - ✅ 鍵盤彈出時，內容自動上移
  - ✅ 當前輸入框始終可見
  - ✅ 不遮擋重要內容
  - ✅ 跨平台一致性體驗

### 🎯 AI 助理場景優化

- **移除 "Apology" 場景**：此場景不適合 AI 生成訊息，已從選項中移除
- **保留場景**：
  - Birthday - 生日祝福
  - Anniversary - 週年紀念
  - Promotion - 升職祝賀
  - Thank You - 感謝訊息
  - Cheer Up - 加油打氣

### 🎨 設計亮點

#### 生日選擇器
- 清晰的模態層次結構（Header → 選項卡片 → 日期選擇器 → 預覽）
- 豐富的視覺反饋（漸層、圖標、陰影）
- 符合 Apple 人機界面指南的設計

#### AI 助理
- 從單一文字到多層次互動體驗
- 動態內容根據狀態智能切換
- 更友善、更溫暖的對話氛圍

### 🛠 技術細節

- **新增 State 變數**：`showBirthdayPicker`, `tempBirthday`, `includeYear`
- **新增處理函數**：`handleSaveBirthday` - 從模態保存生日
- **新增樣式**：18 個新樣式支援生日模態設計
- **全局鍵盤設置**：`KeyboardAvoidingView` 配置優化

### 📱 TestFlight 準備就緒

此版本已通過完整測試，所有功能正常運行：
- ✅ TypeScript 編譯通過
- ✅ 所有 UI 改進已驗證
- ✅ 鍵盤處理在 iOS 和 Android 上測試
- ✅ 生日選擇器多種場景測試
- ✅ AI 助理所有狀態測試

### 🎄 聖誕節限定活動

為慶祝聖誕節，本版本加入了溫馨的節日元素（期間限定，活動後將移除）：

#### 聖誕裝飾
- **底部導航欄**：旋轉雪花裝飾（隨 tab 切換動畫）
- **Home 頁面**：聖誕帽 Bubbo 吉祥物
- **Friends 頁面**：聖誕樹 Bubbo（空狀態）
- **Settings 頁面**：聖誕麋鹿 Bubbo

#### 實現細節
- 新增 `ChristmasDecorations` 組件
- 5 種聖誕 Bubbo 造型（xmas, xmas-deer, xmas-tree, xmas-santa, xmas-socks）
- Tab Bar 雪花動畫（與導航同步旋轉）

#### 活動期間
- **開始**：2025-12-04
- **結束**：2025-12-27（預計）
- **移除指南**：參見 `docs/development/CHRISTMAS_EVENT.md`

---

## v2.3.1 (2025-12-04) - 列表視圖重構與節日行事曆

本次更新專注於優化朋友列表的瀏覽體驗，移除了氣泡視圖以提供更清晰的資訊呈現，並大幅增強了行事曆功能，加入了西方重要節日的自動標示。

### 📅 行事曆升級 (Calendar Upgrade)

- **西方節日標示**：行事曆現在會自動標示重要的西方節日，並在日期上方顯示對應的節日圖示：
  - 🎉 New Year's Day (Jan 1)
  - 💘 Valentine's Day (Feb 14)
  - ☘️ St. Patrick's Day (Mar 17)
  - 🎃 Halloween (Oct 31)
  - 🦃 Thanksgiving (Nov 4th Thursday)
  - 🎄 Christmas Eve (Dec 24)
  - 🎅 Christmas Day (Dec 25) - 顯示聖誕帽圖示
  - 🎆 New Year's Eve (Dec 31)
- **節日卡片**：點擊節日日期時，下方事件列表會顯示專屬的節日卡片。

### 👥 朋友列表重構 (Friends List Overhaul)

- **純列表視圖**：移除了原本的氣泡 (Bubble/Orb) 視圖，全面改為更資訊豐富的列表視圖。
- **事件膠囊 (Event Pills)**：在朋友名字旁新增了動態膠囊，顯示即將到來的生日或紀念日倒數 (e.g., "Birthday 5d" 或 "Today")。
- **預設頭像優化**：統一了全站的預設頭像邏輯，無照片的聯絡人現在會顯示一致的 `avatar_default.png`，不再顯示文字預覽。
- **FAB 佈局修正**：調整了浮動按鈕 (FAB) 的展開位置，確保與首頁佈局一致，避免被底部導航欄遮擋。

### 🛠 其他修正 (Fixes)

- **樣式清理**：移除了大量遺留的氣泡視圖相關代碼與樣式，減少 App 體積與維護成本。
- **頭像一致性**：修復了聯絡人詳情頁 (Profile) 在無照片時顯示不一致的問題。

---

## v2.3.0 (2025-12-03) - 新手引導通知 (Onboarding Notifications)

為了提升新用戶的黏著度與互動率，本次更新加入了針對新安裝用戶的「新手引導通知」功能。

### 🔔 新增功能 (New Features)

- **新手引導通知 (Onboarding Notifications)**：
  - **機制**：在用戶安裝 App 後的前 5 天，每天晚上 8 點發送一則推播通知。
  - **內容**：採用美式年輕用語 (Gen Z Slang) 與幽默風格 (Duolingo-style)，提醒用戶新增聯絡人或生日資訊。
  - **目的**：透過趣味性的文案 ("Ghosting your contact list? 👻", "Bruh... 💀") 增加用戶回訪意願。
  - **技術**：使用 `expo-notifications` 進行排程，並透過 `AsyncStorage` 確保僅在首次安裝時觸發。


## v2.2.0 (2025-12-03) - 聖誕節限定活動與體驗優化

本次更新帶來了溫馨的 **聖誕節限定主題**，讓 Bubbo 吉祥物換上節日新裝！同時修復了聯絡人匯入的關鍵問題，並進一步打磨了新增聯絡人的體驗與全站介面一致性。

### 🎄 聖誕節限定活動 (Limited Time Event)

> **注意**：此為季節性限定活動，後續版本將會還原為標準主題。

- **Bubbo 換新裝**：吉祥物 Bubbo 新增了多款聖誕造型，散佈在 App 各個角落：
  - **Home (主頁)**：Xmas Bubbo 迎接您的到來。
  - **AI Assistant**：Xmas Santa (聖誕老人) 為您服務。
  - **Edit Contact**：Xmas Socks (聖誕襪) 陪伴您建立新連結。
  - **Friends (空狀態)**：Xmas Tree (聖誕樹) 等待您掛上新朋友。
  - **Settings (頁尾)**：Xmas Deer (馴鹿) 藏在最後的小驚喜。

### 🐛 問題修復 (Bug Fixes)

- **批次匯入修復**：解決了從通訊錄匯入多位聯絡人時，只有最後一位被成功匯入的問題。
  - **技術細節**：在 `AppContext` 新增 `addContacts` 方法，支援一次性狀態更新與儲存，解決了迴圈呼叫導致的 Race Condition。

### 🚀 體驗優化 (UX Improvements)

#### 1. 新增聯絡人體驗升級
- **Random Avatar (隨機頭像)**：新增隨機產生卡通頭像的功能 (使用 DiceBear API)，讓沒有照片的聯絡人也能擁有獨特外觀。
- **Aura Selector 優化**：重要性光環選擇器介面翻新，加入玻璃擬態背景、光暈效果與對應圖示 (Star, User, Coffee)。
- **介面活潑化**：加入 Bubbo 吉祥物與更直觀的操作按鈕。
- **用語修正**：將 "New Friend" 統一修正為 "New Contact"。

#### 2. 全站介面一致性
- **Header 統一**：將 **AI Assistant** 與 **Settings** 頁面的標題區域樣式統一為與 **Friends** 頁面一致的大標題設計 (Left-aligned, Bold, Glassmorphism)。

---

## v2.1.0 (2025-12-03) - Aura 系統與介面精緻化

本次更新專注於提升「聯絡人」與「朋友」相關頁面的視覺質感，引入了全新的 **Aura（光環）系統** 來直觀呈現聯絡人重要性，並全面優化了 UI 細節，消除廉價感，打造更精緻的玻璃擬態體驗。

### ✨ 新增功能與視覺升級

#### 1. Aura 光環系統
- **視覺化重要性**：不再僅用文字標示重要性，改以頭像周圍的漸層光環（Aura）呈現。
  - **High**: 紅/粉色漸層 (Red/Pink Gradient)
  - **Medium**: 藍/青色漸層 (Blue/Cyan Gradient)
  - **Low**: 灰/銀色漸層 (Grey/Silver Gradient)
- **全面整合**：Aura 效果已應用於首頁（Home）、行事曆（Calendar）、朋友列表（Friends）及個人檔案（Profile）。

#### 2. 介面質感提升 (Premium Glass UI)
- **FriendsScreen (朋友列表)**：
  - 移除舊版簡單列表，改用高質感的 **BlurView 玻璃卡片**。
  - 增加卡片邊框與陰影深度，提升立體感。
  - 優化標籤（Tags）與倒數日（Next Event）的排版設計。
- **FriendProfileScreen (朋友檔案)**：
  - **玻璃時間軸**：將原本簡單的日期列表升級為精緻的玻璃卡片時間軸。
  - **玻璃筆記區**：筆記區塊改為玻璃擬態容器。
  - **圖示統一**：全面改用 **Feather Icons**，風格更簡約現代。

#### 3. 互動與細節優化
- **GlassTabBar**：優化了底部導航欄的動畫曲線與模糊強度，使其更滑順、更透亮。
- **編輯頁面**：新增了視覺化的 Aura 選擇器，讓設定重要性更直觀。

### 🛠 技術調整
- **圖示庫標準化**：大幅減少 `Ionicons` 的使用，轉向 `Feather` 以保持風格一致。
- **組件優化**：在關鍵介面直接使用 `BlurView` 搭配 `LinearGradient` 以獲得更細膩的控制，逐步取代通用的 `LiquidGlass` 封裝。

## v2.0.0 (2025-12-03) - Liquid Glass UI 重大改版

本次更新是 **Bubly** 自推出以來最重大的視覺設計改版，從原本的星空深色主題全面轉變為明亮、現代的 Liquid Glass（液態玻璃）設計語言，並加入全新的吉祥物角色 **Bobo**，大幅提升使用者體驗與視覺一致性。

### 🎨 核心設計系統重構

#### 1. 全新的 Liquid Glass 設計語言

**設計理念轉變**：
- **從深色星空 → 明亮液態玻璃**：移除了原本的深色宇宙/星空主題，改為以白色為基底的明亮介面
- **玻璃擬態設計**：採用毛玻璃模糊（Glassmorphism）效果，營造出輕盈、透明、流動的視覺感受
- **漸層色彩系統**：主要色彩從橘金色系轉變為青藍（Cyan `#6DD5FA`）到紫羅蘭（Violet `#BF85EC`）的漸層

**配色方案革新**（[colors.ts:1-80](src/constants/colors.ts#L1-L80)）：
- **背景色**：
  - `background.main`: 純白色 `#FFFFFF`（主背景）
  - `background.subtle`: 極淺冷灰 `#F5F7FA`（區段背景）
  - 移除了 `deepSpace`、`darkNebula`、`starField` 等深色定義，改為淺色映射

- **主色調**：
  - `primary.cyan`: `#6DD5FA`（漸層起點，取代原本的橘色）
  - `primary.violet`: `#BF85EC`（漸層終點）
  - 保留 `primary.orange`: `#FF6B35` 作為次要品牌色

- **文字顏色**：
  - 從白色系改為深色系以提高可讀性
  - `text.primary`: 午夜藍 `#2C3E50`（高對比）
  - `text.secondary`: 石板藍 `#5D6D7E`（中對比）
  - 新增 `text.inverse`: `#FFFFFF`（用於漸層背景上的白字）

- **新增陰影系統**（[colors.ts:58-71](src/constants/colors.ts#L58-L71)）：
  - `shadows.soft`: 使用 Cyan 色彩的柔和陰影
  - `shadows.button`: 使用 Violet 色彩的按鈕陰影
  - 提供帶有色彩的懸浮感，符合 Liquid Glass 美學

#### 2. 新增核心 UI 組件

**LiquidGlass 組件**（[src/components/LiquidGlass.tsx](src/components/LiquidGlass.tsx)）：
- 使用 `expo-blur` 的 `BlurView` 實現毛玻璃效果
- 結合 `LinearGradient` 創造邊框光暈效果
- 支援自訂：
  - `intensity`：模糊強度（預設 30）
  - `tint`：色調（light/dark/default）
  - `shape`：形狀（rectangle/circle/pill）
  - `borderOpacity`：邊框透明度
- 包含頂部光澤效果（shine effect）增強玻璃質感
- Android 平台自動降級為半透明背景作為備用方案

**BoboMascot 組件**（[src/components/BoboMascot.tsx](src/components/BoboMascot.tsx)）：
- 全新的吉祥物角色「Bobo」，為應用注入親和力
- 支援 6 種情緒狀態：
  - `standard`：標準狀態（有背景版）
  - `happy`：開心
  - `no-idea`：不知道
  - `point`：指向你
  - `say-hi`：打招呼
  - `thinking`：思考中
- 自帶浮動動畫效果（可選開關）
- 高度可自訂尺寸與樣式

**StarryBackground 組件重構**：
- 原本的星空背景組件進行了簡化
- 移除複雜的宇宙星雲效果，改為輕量級的裝飾性背景
- 與新的 Liquid Glass 設計語言相容

### 📱 全畫面 UI 重新設計

**所有主要畫面均已重新設計**，包含但不限於：

1. **首頁（HomeScreen）**（[src/screens/HomeScreen.tsx](src/screens/HomeScreen.tsx)）：
   - 改用 Liquid Glass 卡片元件
   - 整合 Bobo 吉祥物於多個互動區域
   - 白色背景配搭彩色漸層按鈕

2. **朋友列表（FriendsScreen）**（[src/screens/FriendsScreen.tsx](src/screens/FriendsScreen.tsx)）：
   - 列表項改用 Liquid Glass 效果
   - 標籤系統採用新配色方案
   - 浮動新增按鈕使用 Cyan-Violet 漸層

3. **行事曆（CalendarScreen）**（[src/screens/CalendarScreen.tsx](src/screens/CalendarScreen.tsx)）：
   - 日期選擇器採用玻璃效果
   - 事件卡片使用 Liquid Glass 組件
   - 空狀態顯示 Bobo 吉祥物（thinking 模式）

4. **朋友詳細頁（FriendProfileScreen）**（[src/screens/FriendProfileScreen.tsx](src/screens/FriendProfileScreen.tsx)）：
   - 頭像與資訊卡片採用玻璃效果
   - 按鈕改用新的漸層色彩
   - 整體配色從深色轉為淺色高對比

5. **AI 助理（AIAssistantScreen）**（[src/screens/AIAssistantScreen.tsx](src/screens/AIAssistantScreen.tsx)）：
   - 整合 Bobo 吉祥物作為 AI 代表
   - 對話氣泡採用 Liquid Glass 設計
   - 按鈕與輸入框使用新的色彩系統

6. **設定頁（SettingScreen）**（[src/screens/SettingScreen.tsx](src/screens/SettingScreen.tsx)）：
   - 設定項目改用 Liquid Glass 卡片
   - 開關與控制元件配合新主題
   - 版本資訊區域重新設計

7. **其他畫面**：
   - 編輯聯絡人（EditContactScreen）
   - 標籤管理（TagsManagementScreen）
   - 聯絡人選擇器（ContactSelectorScreen）
   - 匯入聯絡人相關畫面（ImportContactsScreen、ImportContactDetailScreen）
   - 全部配合新的設計語言進行調整

### 🎭 新增視覺資源

**Bobo 吉祥物圖片資源**（`/assets/`）：
- `bobo_wt_bg.png`：標準版（帶背景）
- `bobo_happy.png`：開心表情
- `bobo_no idea.png`：不知道表情
- `bobo_point at you.png`：指向動作
- `bobo_say hi.png`：打招呼動作
- `bobo_thinking.png`：思考表情

**應用圖示更新**：
- `icon.png`、`adaptive-icon.png`、`favicon.png` 均已更新為新的品牌識別

### 🔧 技術改進

#### 依賴套件更新
- 新增 `expo-blur`: `^15.0.7`（用於 Liquid Glass 效果）
- `expo-linear-gradient` 升級至 `~15.0.7`（用於漸層效果）

#### 程式碼品質
- 28 個檔案變更，1222 行新增，1211 行刪除
- 所有畫面組件統一採用新的設計系統
- 移除過時的深色主題相關程式碼
- 改善型別定義與程式碼結構

### 📐 設計系統指南

**給開發者的設計原則**：
1. **使用 `<LiquidGlass>` 包裹卡片元素**：不再手動設定陰影與邊框，改用 LiquidGlass 組件
2. **色彩使用**：
   - 背景使用 `colors.background.main` 或 `colors.background.subtle`
   - 主要互動元素使用 `gradients.primary`（Cyan 到 Violet）
   - 文字使用 `colors.text.primary/secondary/tertiary`
   - 保留 `colors.primary.orange` 作為品牌提示色
3. **陰影**：使用 `shadows.soft` 或 `shadows.button` 取代手動設定
4. **吉祥物整合**：在空狀態、引導流程、互動回饋中適當加入 Bobo

### ⚠️ 重大變更（Breaking Changes）

- **色彩常數重命名**：舊的 `deepSpace`、`darkNebula` 等深色定義已重新映射為淺色，若有自訂組件引用這些色彩需要更新
- **背景元件變更**：`StarryBackground` 組件行為已改變，不再顯示星空效果
- **主題系統**：目前僅支援 Light Mode，Dark Mode 支援已暫時移除（未來會重新加入）

### 🎯 使用者體驗提升

- **視覺一致性**：所有畫面統一採用 Liquid Glass 設計語言
- **可讀性提升**：從深色背景白字改為淺色背景深字，減少眼睛疲勞
- **現代感**：Glassmorphism 是當前主流的 UI 趨勢，提升應用的時尚感
- **親和力**：Bobo 吉祥物的加入讓應用更有溫度與個性
- **清晰度**：高對比配色方案提升介面元素的辨識度

### 🔄 遷移指南

如果您從舊版本升級，請注意：
1. 執行 `npm install` 安裝新的依賴套件（`expo-blur`）
2. 檢查自訂的色彩引用，確認是否需要調整
3. 若有自製組件使用舊的 `colors` 定義，請參考新的 `src/constants/colors.ts` 進行更新
4. Bobo 圖片資源已包含在 `/assets/` 中，無需額外下載

---

## v1.1.0 (2025-11-06) - Build修正與程式碼優化

本次更新主要解決了先前版本無法成功透過 `expo build` 或 `eas build` 進行建置的嚴重問題，並包含了一系列的程式碼品質提升和依賴套件升級。

### 解決的重大問題 (Solved Issues)

#### 1. Expo/EAS 建置失敗

-   **問題描述**: 在執行 `expo build` 或 `eas build` 時，prebuild 階段必定失敗，並顯示找不到 `./assets/icon.png` 的錯誤。

-   **根本原因**: 此問題由兩個環環相扣的錯誤所導致。

    1.  **原因一：App Icon 位置不正確 (直接原因)**
        Expo 的建置系統被設定為從專案根目錄下的 `./assets/icon.png` 來讀取 App Icon。然而，該圖示檔案當時並未在此路徑，這是導致建置流程找不到檔案並立即失敗的直接原因。

    2.  **原因二：`.gitignore` 設定錯誤 (根本原因)**
        更根本的問題在於，專案的 `.gitignore` 檔案中包含了 `*.png` 規則。這個設定會命令 Git 忽略所有 `.png` 檔案。因此，即使手動將 `icon.png` 移至正確位置，它也無法被提交到版本控制系統。這意味著任何協作者或自動化建置環境在下載專案時，都無法取得 icon 檔案，最終仍會導致建置失敗。

-   **解決方案**: 必須同時解決上述兩個問題。
    1.  **移動 Icon**: 將 `icon.png` 檔案放置到正確的 `/assets/icon.png` 路徑下。
    2.  **修改 .gitignore**: 移除 `.gitignore` 中忽略 `*.png` 和 `*.jpg` 的規則，確保圖片資源能被正常追蹤並提交。

### 程式碼與函式庫變更 (Code & Library Changes)

#### 1. 依賴套件升級 (Dependency Upgrades)

為了提升穩定性與安全性，更新了多個核心依賴套件，包含：
-   `expo`: `~54.0.12` -> `54.0.22`
-   `react-native`: `0.81.4` -> `0.81.5`
-   `expo-contacts`: `^15.0.9` -> `~15.0.10`
-   以及其他相關的 `metro`, `babel` 等底層套件。
-   (詳細變更請參考 `package-lock.json` 的 diff)

#### 2. 程式碼品質優化 (Code Refinements)

-   **`src/constants/colors.ts`**: 為 `gradients` 物件中的陣列加上了 `as const`，將其轉換為唯讀元組，增加了型別的嚴謹性與安全性。
-   **`src/lib/openaiService.ts`**: 移除了不再需要的 `console.log`，使程式碼更簡潔。
-   **`src/screens/FriendsScreen.tsx`**: 在 `map` 迴圈中為 `tagId` 加上了明確的 `string` 型別，提升程式碼可讀性。
-   **`src/screens/ImportContactsScreen.tsx`**: 重構了從系統聯絡人匯入生日的邏輯，新的寫法能更穩定地處理 `expo-contacts` 可能回傳的不同日期格式，避免因格式問題導致的閃退或錯誤。

### 給開發者的說明 (Notes for Developers)

-   **初始設定**: 新加入的開發者在 `git clone` 專案後，請務必執行 `npm install` 來安裝所有依賴。
-   **App Icon**: 未來若要更換 App Icon，請直接替換 `/assets/icon.png` 檔案即可。
-   **快取問題**: 如果遇到無法解釋的錯誤，可以嘗試用 `npx expo start -c` 來清除 Expo 的快取後重啟。
