Releases: lcomplete/huntly
Releases · lcomplete/huntly
v0.6.1
🐛 Bug Fixes
SearchBox
- Fixed search functionality: Resolved an issue where the search box was not working properly
- Fixed type errors in autocomplete handlers that prevented search from functioning
- Corrected event handler logic for search input
- Improved TypeScript type safety to prevent similar issues
Full Changelog: v0.6.0...v0.6.1
v0.6.0
🌐 Internationalization (i18n)
- 多语言支持(英文/中文)
- i18next 基础设施
- 语言选择器
Extension 0.5.4
AI Capabilities, Export Engine & Build Modernization
🤖 AI Enhancements
- Thinking Mode: Added a thinking mode toggle in the toolbar and popup, enabling models that support reasoning to show their thought process before the final response
- Streaming Preview: Implemented streaming preview functionality with real-time reasoning support and improved UI updates
- Upgraded AI SDK: Bumped the Vercel AI SDK to
ai@6, refactoring background streaming to handle reasoning/thinking deltas - New Providers: Added OpenAI-compatible provider helpers and raw streaming support for providers such as DashScope/Qwen, Zhipu, and MiniMax; updated provider registry with new Qwen provider and refreshed model lists
📤 Export Engine
- Markdown Export: Added markdown export functionality with improved URL cleanup, making it easy to copy article content to note-taking apps
- PDF / PNG / Clipboard Export: Introduced a full export UI (Original vs AI) backed by robust utilities for PDF, PNG, clipboard, and markdown — with cross-origin safety handling, font inlining, adaptive scale calculation, and taint-error retry logic
- CORS-Safe Image Export: Cross-origin images are now fetched via the background service worker and converted to data URLs before
html2canvasruns, eliminating canvas-taint failures on pages with external images - Enhanced Clipboard Copy: Clipboard copy now includes the article title for richer paste output
⚡ Build & Tooling
- Rspack Migration: Replaced webpack with Rspack (
@rspack/core ^1.7.8) for significantly faster extension builds; addedrspack.config.jsand updated dist outputs and vendor chunk naming for both Chrome and Firefox manifests - Popup Refactor: Lazy-loaded heavy UI components (
AIToolbar,RssSubscription,SaveDetailPanel); extracted active-tab messaging helpers; converted callbacks touseCallbackfor better performance
🐛 Bug Fixes
- OpenAI Stream Parsing: Fixed handling of non-JSON payloads in OpenAI stream extraction to prevent parse errors
- XHR Response Handling: Fixed an issue where accessing XHR response data with
responseType='json'could throw an error in certain cases
🎨 UI Improvements
- Model Selector: Redesigned with a unified gradient border container; replaced the icon for the selected model indicator for a cleaner look
- Export Button: Updated icon to
IosShareIconand tightened menu item padding for a more compact feel
v0.5.9
RSS Feed Performance & Stability Improvements
🔧 Server Optimizations
- HTTP Client Caching: Enhanced HttpUtils with connection pooling and client management for RSS feed requests, reducing resource overhead and improving fetch performance
- Memory Configuration: Increased Docker JVM max heap size to 1024m for better stability under load
- Connection Timeout: Ensured connection timeout is properly configured in application.yml
🧩 Extension Improvements
- Dev Mode Indicator: Added DEV flag to context menu titles for easier debugging during development
- Code Cleanup: Simplified ArticlePreview title rendering logic by removing redundant isXTwitterSite function
v0.5.8
Save Details & Core Backend Improvements
🧩 Extension Support Enhancements
This release rolls out the necessary backend support to power the new features introduced in the latest browser extension update:
- Save Detail API: Added a new
PATCH /api/page/{id}/detailendpoint. This allows the extension's new Save Detail panel to seamlessly update saved page metadata (title, description, and source URL). - Safe Re-saving Logic: When the extension recaptures a page that already exists in your library, the server now avoids overwriting existing core content fields. This ensures any earlier text edits or previously formatted data are safely preserved.
🔧 Server Operations & Fixes
- Performance Tuning: Increased the default JVM heap limits in the Docker configuration and tuned server executor thread limits to optimize overall application responsiveness under heavy loads.
Extension 0.5.3
Save Details & UX Improvements (server update required)
✨ Save Detail Panel & UX Enhancements
A significant update bringing new ways to interact with saved content directly from the extension:
- Save Detail Panel: Edit page metadata (title, description), assign collections, and select specific parsers before saving or re-saving content.
- Save Status Badges: Added badge indicators so you can see at a glance if the current tab's URL is already saved in your library.
- Context Menus: Added right-click context menu entry points for opening Reading Mode directly from the page or selection.
🤖 AI Models & Connection
- Provider Updates: Updated DeepSeek descriptions/models and changed default Gemini ID to
gemini-3-flash-preview. - Connection Testing: Improved provider connection testing by correctly supporting empty-string responses from models.
🌐 Localization
- Multilingual Support: Localized the extension name and description for both English and Chinese.
🔧 Under the Hood improvements
- Readability: Bumped
@mozilla/readabilityto v0.6.0 to improve parsing speed and accuracy.
Extension 0.5.2
🐛 improve server connection handling
- Add graceful handling when Huntly server connection fails, showing
warning and allowing AI features to work with external providers - Hide Huntly AI option in toolbar when server is not connected
v0.5.7
AI-Powered Web Extension & Enhanced Twitter Controls
🤖 AI-Powered Web Extension
A major new feature that brings AI content processing directly to your browser extension:
- AI content processing: Summarize, translate, extract key points, and more with streaming AI support
- Multiple AI providers: Configure your preferred AI provider (OpenAI, Anthropic, etc.) directly in extension settings
- Multilingual support: Built-in system prompts for multiple languages with customizable templates
- Article preview: Real-time preview with AI processing results before saving
- Defuddle integration: Enhanced content extraction using Defuddle parser
🐦 Enhanced Twitter/X Auto-Save
New controls for fine-tuning which tweets get automatically saved:
- Minimum likes filter: Set a threshold to only auto-save tweets with a minimum number of likes
- X settings page: Dedicated settings page in the web client for Twitter/X configuration
- Concurrent save prevention: Prevent duplicate saves when multiple capture requests occur simultaneously
- Server-side optimization: Moved minLikes lookup to server-side for reduced API calls and better performance
🔧 Technical Improvements
- Separate extension releases: Independent versioning and release workflow for the browser extension
- Improved excerpt extraction: Better content parsing from HTML for article summaries
- X/Twitter URL detection: Automatic identification of Twitter URLs for special handling
- Caching optimization: Added caching in GlobalSettingService for improved performance
Full Changelog: v0.5.6...v0.5.7
Extension 0.5.1
AI-Powered Web Extension
🤖 AI-Powered Web Extension
A major new feature that brings AI content processing directly to your browser extension:
- AI content processing: Summarize, translate, extract key points, and more with streaming AI support
- Multiple AI providers: Configure your preferred AI provider (OpenAI, Anthropic, etc.) directly in extension settings
- Multilingual support: Built-in system prompts for multiple languages with customizable templates
- Article preview: Real-time preview with AI processing results before saving
- Defuddle integration: Enhanced content extraction using Defuddle parser
v0.5.6
Sorting & Data Consistency Improvements
🔄 Simplified Sorting for Unsorted Pages
Improved the sorting mechanism for unsorted (un-collected) pages:
- Simplified sorting: Use
createdAtdirectly instead of complex multi-field fallback logic - Clearer labels: "Unsorted" pages now display "Created" as the sort criteria
- Better consistency: Removed multi-field sort support for cleaner, more predictable behavior
🛠️ Data Integrity Fixes
- CollectedAt auto-population: Ensure
collectedAttimestamp is always set when pages are added to collections - Capture service fix: Pages captured with a collection assignment now properly set the collected timestamp
- Batch operation reliability: Batch move operations now reliably populate collection timestamps
Full Changelog: v0.5.5...v0.5.6