Changelog
v0.2.0
Correctness & Security2026-09-12- Runtime messages are validated (shape, length, sender); selection / image / page interactions now target an explicit window
- Storage trust boundary: content scripts can no longer read chrome.storage directly
- New Autofill side-panel view: scan a job application, review the plan, then fill; sensitive fields are off by default and existing values are never overwritten
- Anthropic native API adapter alongside the OpenAI-compatible adapter; per-profile vision model settings
- Conversation state machine with explicit cancel / retry states; conversations persist in local storage and can be deleted anytime from the side panel
- Security: marked 18 + DOMPurify 3.4, sanitized markdown, SSRF and size limits for remote images, search results treated as untrusted input
- Accessibility: keyboard navigation, focus restore, status-only streaming announcements, IME-safe Enter, no forced scroll while reading
- Engineering: 55 unit tests + 15 Playwright end-to-end tests, CI gates, whitelist packaging
v0.1.2
UI Polish2026-08-12- Compact message bubbles with action buttons moved below each message; user-bubble left alignment fixed
- Send button with three states (idle / streaming / stop), provider color dot on the model badge
- Chat tables get zebra striping and header background; code blocks wrap long lines, copy button always visible
- Settings page: all form controls unified to a strict 43px row, red delete button, right-aligned field hints, green autosave indicator
- Selection toolbar: Lucide icons on buttons, shadow-DOM font loading fixed, max-width guard on narrow screens
- Accessibility: explicit type=button everywhere, aria-expanded/pressed states, empty-state chips are real buttons
- Fixed system messages showing an infinite spinner on static/error text
- Dark mode contrast and desaturation fixes across the UI
v0.1.1
Polish2026-08-04- 4-step onboarding guide: pick provider → enter API key and pass connection test → choose model → done (skippable)
- Persistent conversation history: stored locally, chat records survive extension updates
- Streaming output now uses a blinking caret indicator instead of bouncing dots
- New "back to bottom" button: appears while scrolling up, shows unseen message count
- Selection popup panel positioning fixed after page scroll; auto-flips near viewport edges
- Keyboard focus rings improved: visible focus on every element during Tab navigation, rounded corners preserved
- Touch optimization: larger tap targets, actions always visible on touch devices
- Dark mode polish: deeper code block surfaces, better theme harmony
- Extension name simplified to "Deepdeep"
- i18n: 185 translation keys × 4 languages (EN / 中文 / 日本語 / 한국어)
v0.1.0
Initial Release2026-08-03- Text selection popup: AI toolbar on selected text (Explain / Translate / Summarize / Follow-up)
- Image understanding: Multimodal model support for describing selected images
- Sidebar chat: Native browser Side Panel with Markdown rendering + code highlighting + copy buttons
- @tab references: Type @ to select tabs, auto-extract page content as context (up to 8000 chars per tab)
- Right-click menu: Explain / Translate / Summarize selected text, send page to sidebar, view images
- Page-level actions: One-click page summary, full-page translation, content explanation (~12000 chars)
- Web search: DuckDuckGo integration, AI answers based on real-time web results
- Multi-session management: Up to 20 independent chat sessions with auto-generated titles
- Markdown export: Export conversations as .md files
- Follow-up suggestions: AI generates contextual follow-up questions after replies
- Streaming output: SSE real-time AI responses with AbortController to stop generation
- Multi-profile management: Create, rename, delete, and switch configuration profiles
- Connection test: One-click API connectivity test showing available model count
- Dark/light mode: Auto-adapts to system theme
- Keyboard shortcuts: Ctrl+Shift+D (Mac: Cmd+Shift+D) to open sidebar