# Changelog — Butler

## 0.2.3 — Patch

### Fixed
- Content script duplicate-guard no longer throws “Illegal return statement” (wrapped in IIFE)

---

## 0.2.2 — Patch

### Fixed
- More reliable startup handshake (ping/pong) so indexing starts without needing refresh
- Increased start retries to handle slow tabs / heavy YouTube pages

---

## 0.2.1 — Patch

### Fixed
- Index works on already-open playlist tabs (auto-injects importer; no manual refresh required)
- More accurate playlist title detection (e.g., “Watch later” instead of account name)
- More robust continuation handling (reduces “only 100 items” imports)

---

Tag format:
- beta_v01_watchlist_butler
- beta_v02_playlist_butler

---

## beta_v02_playlist_butler — Playlist-wide MVP

### Added
- Index the playlist you’re currently viewing (`/playlist?list=...`)
- Indexed playlist selector in the popup
- Per-playlist storage in IndexedDB (`playlists` + `playlistVideos`)
- Export per playlist (CSV/JSON)
- Progress UI (phase + ETA + completion)

### Reliability
- Incremental persistence for large playlists
- Rate limiting + retry/backoff to finish long imports reliably

### Backlog
- Global search across all indexed playlists
- Visual Reports module (private analytics)

---

## beta_v01_watchlist_butler — Watch Later-only baseline

### Added
- Watch Later indexing into a local library
- Cached instant load
- Search + basic filtering
- Export (CSV/JSON)
