v0.3.0
Pre-release
Pre-release
What's Changed
Full Changelog: v0.2.0...v0.3.0
Summary
Auth
- Google OAuth via popup window — OAuth now opens in a small popup instead of a full tab, keeping the extension popup alive during the auth flow
- Improved auth callback page — redesigned with pending / success / error states and a manual close button on success
- Removed background auth watcher — OAuth completion is now detected by session polling directly in the auth page, removing unnecessary background script complexity
API Key UX
- Read-only key display — API key field is now non-editable and non-selectable; key is shown masked by default
- Connected button group — show/hide, copy, and clear actions grouped into a single cohesive control when a key is set
- Paste button — when no key is set, a single Paste button reads directly from clipboard
- Clipboard permissions — added
clipboardReadandclipboardWriteto manifest permissions to support paste/copy
Bug Fixes
- Fixed API key not clearing
geminiServicewhen removed - Fixed whitespace-only API keys being accepted (now trimmed on read)
- Fixed clipboard copy using
.then/.catch— migrated toasync/await - Fixed
settingsReftype to use canonicalTranslationSettingsproperty names - Fixed stale
.enverror message referencing old flow instead of Settings UI - Fixed PID guard in dev script cleanup to handle early interruption safely
Chores
- Cleaned up
.env.examplefiles — clarified self-hosting context, removed unusedBETTER_AUTH_URL, pointed at shared Convex deployment for contributors - Removed unwanted
server/.env.examplefrom extension repo