Releases: introfini/ZotSeek
v1.11.2 — Fix Find Similar Documents Blank Dialog
What's New
🐛 Fix "Find Similar Items" Showing Blank Dialog
The "Find similar items" right-click menu command would show an empty popup window with no results. This was caused by a Fluent localization issue where data-l10n-id on the <window> element replaced the entire dialog DOM with plain text, destroying all UI elements.
What was affected:
- The "Find similar items" context menu command showed a blank dialog
- The issue appeared after localization support was added in v1.11.0
Additional improvements:
- Pass only primitive values (item ID) between windows to prevent XPCOM dead wrapper issues
- Fix incorrect
isInitialized()call (method didn't exist) to useisReady() - Replace
console.errorwithZotero.debug()to prevent crashes in plugin context
Installation
- Download
zotseek-1.11.2.xpibelow - In Zotero: Tools → Plugins → ⚙️ → Install Plugin From File
- Select the downloaded
.xpifile - Restart Zotero
⚠️ Upgrade Notes
No action required. The fix is automatic.
Full Changelog: v1.11.1...v1.11.2
v1.11.1 — Chinese (zh-CN) Localization
What's New
🌐 Complete Chinese (zh-CN) Localization (fixes #16)
ZotSeek's entire UI is now available in Chinese for users with a Chinese system locale:
- Preferences panel (settings, stats, actions, descriptions)
- Search dialog (queries, modes, results, column headers, status messages)
- Similar documents dialog
- Context menus (right-click items, PDF text selection)
- Indexing progress messages and notifications
Built on Zotero's native Fluent (.ftl) localization system with 150+ translated strings.
🐛 Locale Interference Fix
Adding the zh-CN locale also fixes the issue where installing ZotSeek caused Better Notes and Translate for Zotero to lose their Chinese translations. The root cause was the chrome locale registry falling back to en-US when only that locale was registered.
Installation
- Download
zotseek-1.11.1.xpibelow - In Zotero: Tools > Plugins > ⚙️ > Install Plugin From File
- Select the downloaded
.xpifile - Restart Zotero
⚠️ Upgrade Notes
No action required. The localization is automatic based on your system locale.
🙏 Thanks
A big thank you to @Eternal-dj for reporting the locale interference issue, patiently testing five pre-release builds, and catching every untranslated string along the way. This complete localization wouldn't have happened without your thorough testing and feedback!
Full Changelog: v1.11.0...v1.11.1
v1.11.0 — Storage Optimization & Oversized Paragraph Fix
What's New
⚡ Storage Optimization (fixes #25)
Stats panel now shows actual database file size. Embeddings stored as base64 (~73% smaller). Schema normalized to eliminate per-chunk duplication of titles and abstracts.
| Metric | Before | After |
|---|---|---|
| Embedding size | ~16 KB (JSON) | ~4 KB (base64) |
| Schema | 1 table, data duplicated per chunk | 2 tables, normalized |
| Storage display | Estimated (often ~10x too low) | Actual file size |
Note: Re-index your library after updating to convert existing embeddings to the compact format. Use the new "Compact Database" button in Settings afterward to reclaim space.
🐛 Oversized Paragraph Fix (fixes #20)
Documents with very long paragraphs (no line breaks) were being truncated, losing up to 70% of content. Now splits at sentence boundaries into multiple properly-sized chunks.
🔧 Database Compaction
New "Compact Database" button in Settings to reclaim unused space after migrations or large deletions.
Installation
- Download
zotseek-1.11.0.xpibelow - In Zotero: Tools > Plugins > ⚙️ > Install Plugin From File
- Select the downloaded
.xpifile - Restart Zotero
⚠️ Upgrade Notes
- Schema migration (v4 → v6) runs automatically on first startup. This may take a few seconds for large libraries.
- To get the full storage reduction, re-index your library (Settings → ZotSeek → Rebuild Index), then click "Compact Database".
Full Changelog: v1.10.0...v1.11.0
v1.10.0 — Pause/Cancel Indexing, Configurable Auto-Index Delay & Resilient Embedding
What's New
⏸ Pause/Play and Cancel During Indexing
Long-running indexing operations now have full control buttons in the progress window:
- Pause (⏸) and resume (▶) buttons — pauses at batch boundaries with all progress saved
- Cancel (✕) button — stops gracefully with a quiet notification (no error alert)
- ETA calculation accounts for paused time
⏱ Configurable Auto-Index Delay (closes #21)
Control how long ZotSeek waits after the last item is added before auto-indexing starts:
- Default: 10 seconds (configurable from 1–300 seconds in Settings → ZotSeek)
- Each new item resets the countdown, preventing indexing during bulk imports
- Useful when importing large batches via browser connector or RSS feeds
🛡 Resilient Embedding (fixes #19)
Single chunk embedding failures no longer crash the entire indexing operation:
- Each chunk gets one automatic retry before being skipped
- Skipped chunks are logged and reported in the progress window
- Remaining items continue indexing normally
- Applies to both manual and auto-indexing
Changed
- Auto-index batch timer now uses proper debounce (resets on each new item instead of firing after the first)
Installation
- Download
zotseek-1.10.0.xpibelow - In Zotero: Tools → Plugins → ⚙️ → Install Plugin From File
- Select the downloaded
.xpifile - Restart Zotero
⚠️ Upgrade Notes
No action required. Existing indexes and settings are preserved.
Full Changelog: v1.9.0...v1.10.0
v1.9.0 — Tag-Based Exclusion & Auto-Cleanup
What's New
🚫 Tag-Based Exclusion
Exclude specific items from indexing by tagging them:
- Default tag:
zotseek-exclude(configurable in Settings → ZotSeek → Advanced Settings) - Works during manual indexing (Update Library Index, Index Selected, Index Collection)
- Works during auto-indexing of new items
- Leave the tag name empty to disable exclusion
Tip: Use Zotero's Advanced Search (Edit → Advanced Search) to find items by title, type, or collection, then bulk-tag them. This is more flexible than regex-based filtering since it leverages Zotero's native search capabilities.
🗑️ Auto-Cleanup on Delete/Trash
Embeddings are now automatically removed when items are deleted or trashed:
- Prevents ghost search results from orphaned data
- Always active regardless of auto-index setting (data integrity concern)
📄 "Remove from ZotSeek Index" Context Menu
New right-click menu item to manually remove items from the search index:
- Supports multi-select (remove several items at once)
- Shows quick notification with count of removed items
- Safe to use on non-indexed items (no-op, no error)
Installation
- Download
zotseek-1.9.0.xpibelow - In Zotero: Tools → Plugins → ⚙️ → Install Plugin From File
- Select the downloaded
.xpifile - Restart Zotero
⚠️ Upgrade Notes
No action required. Existing indexes are fully compatible.
Full Changelog: v1.8.0...v1.9.0
v1.8.0 — Multi-Select & Batch Operations
What's New
🎯 Multi-Select in Search Results
Select multiple items in search results using standard shortcuts:
- Shift+click to select a range of items
- Cmd/Ctrl+click to toggle individual items
- "Open Selected" button selects all items in Zotero library when multiple are selected
📋 Right-Click Context Menu
Batch operations on selected results:
- Show in Library — Selects item(s) in the main Zotero pane
- Add to Collection — Submenu to add selected items to any collection
🌙 Dark Mode Improvements
Better text contrast on selected rows in both light and dark modes.
🐛 Bug Fix: Database Persistence
Fixed database being wiped on plugin reload during development. The database is now only deleted on true uninstall, not on upgrade or reload.
Installation
- Download
zotseek-1.8.0.xpibelow - In Zotero: Tools → Plugins → ⚙️ → Install Plugin From File
- Select the downloaded
.xpifile - Restart Zotero
⚠️ Upgrade Notes
No action required. Your existing index will be preserved.
Full Changelog: v1.7.0...v1.8.0
v1.7.0 — Multi-Query Search & Progress Window Improvements
What's New
🔀 Multi-Query Search
Combine up to 4 search queries with AND/OR logic to find papers at the intersection of multiple topics:
- Click "+" to add additional query fields (up to 4 total)
- AND mode: Find papers matching ALL queries (intersection)
- OR mode: Find papers matching ANY query (union)
| AND Formula | Description |
|---|---|
| Minimum | Strictest — uses lowest score across queries |
| Product | Balanced — geometric mean of scores |
| Average | Lenient — arithmetic mean of scores |
Per-query scores shown in Match column: e.g., 73% (77|73|68) shows combined score and individual query scores.
⚡ Improved Progress Window
- Dynamic height that adjusts to content (min: 120px, max: 400px)
- Checkpoint messages now display in reverse order (newest first)
- Window stays within main Zotero window bounds
Installation
- Download
zotseek-1.7.0.xpibelow - In Zotero: Tools → Plugins → ⚙️ → Install Plugin From File
- Select the downloaded
.xpifile - Restart Zotero
⚠️ Upgrade Notes
No action required. Your existing index and settings will be preserved.
Full Changelog: v1.6.0...v1.7.0
v1.6.0 — Crash-Resilient Indexing & Settings Redesign
What's New
💾 Crash-Resilient Indexing
Indexing now saves progress every 25 items:
- Resume safely after crash by re-running "Update Index"
- Already-indexed items are automatically skipped
- No need to start over from scratch
⚙️ Redesigned Settings Panel
Modern, visual preferences UI:
- Index statistics as colorful cards (Papers, Chunks, Storage)
- Indexing mode selection with visual radio-style cards
- Organized sections with clear visual hierarchy
- Action buttons color-coded (green = recommended, yellow = destructive)
🔧 Settings Button in Search Dialog
Quick access to ZotSeek preferences directly from the search dialog (bottom-left corner).
🏷️ Improved Alerts
Dialogs now show "ZotSeek" title instead of generic "[JavaScript Application]".
Installation
- Download
zotseek-1.6.0.xpibelow - In Zotero: Tools → Plugins → ⚙️ → Install Plugin From File
- Select the downloaded
.xpifile - Restart Zotero
Full Changelog: v1.5.0...v1.6.0
v1.5.0 — Auto-Index & Column Sorting
What's New
🔄 Auto-Index New Items
Automatically index papers when you add them to your library:
- Enable in Settings → ZotSeek → "Auto-index new items"
- Waits for PDF attachments with automatic retry
- Batches items during bulk imports
- Shows live progress indicator
📊 Column Sorting
Click column headers to sort search results:
- Sort by Match %, Year, Title, Authors, or Source
- Smart defaults (Match/Year descending, text ascending)
- Visual indicators (▲/▼) show sort direction
Installation
- Download
zotseek-1.5.0.xpibelow - In Zotero: Tools → Plugins → ⚙️ → Install Plugin From File
- Select the downloaded
.xpifile - Restart Zotero
Full Changelog: v1.4.0...v1.5.0
v1.4.0 — Zotero 7 Support & Full Paper Default
What's New
📦 Zotero 7 Support
Now compatible with both Zotero 7 (stable) and Zotero 8 (beta):
- Extended compatibility from
strict_min_version: 6.999 - Same feature set across both versions
- Automatic performance optimization per version
📄 Full Paper Mode is Now Default
Full Document indexing is now the default for better search quality:
- Indexes paragraph-level content from PDFs with exact page numbers
- Best for finding specific passages and deep content search
- Can still switch to Abstract mode for faster indexing
⚡ Version-Aware Optimizations
The plugin automatically detects your Zotero version and optimizes settings:
| Setting | Zotero 7 | Zotero 8 |
|---|---|---|
| Default Max Tokens | 800 | 2000 |
| Worker Chunk Limit | 3000 chars | 8000 chars |
| Performance Warning | Shown | Hidden |
⚠️ Zotero 7 Performance Note: Full Document indexing is ~8-10x slower on Zotero 7 (Firefox 115) compared to Zotero 8 (Firefox 140+) due to WASM SIMD performance differences. For faster indexing on Zotero 7, use Abstract mode or keep Max Tokens ≤1000.
🔧 Automated Release Workflow
New npm run release command for developers:
- Interactive version bumping via bumpp
- Auto-generates
update.jsonfrompackage.json - Builds and packages XPI in one command
Installation
- Download
zotseek-1.4.0.xpibelow - In Zotero: Tools → Plugins → ⚙️ → Install Plugin From File
- Select the downloaded
.xpifile - Restart Zotero
⚠️ Upgrade Notes
No action required. The plugin will use optimized defaults based on your Zotero version.
If you previously had custom settings, they will be preserved. Consider adjusting:
- Zotero 7 users: Lower Max Tokens to ≤1000 for better performance
- Zotero 8 users: Can use higher values (2000+) without issues
Full Changelog: v1.3.0...v1.4.0