Releases: zj-rrissh/omniown
Release list
OmniOwn v0.1.4
OmniOwn v0.1.4 Release Notes
Release Date: 2026-06-25
Overview
v0.1.4 introduces a two-stage AI search pipeline with intelligent query analysis and strategy selection. Enhanced search accuracy through LLM-powered query understanding, combined with structured validation and document library context awareness.
Key Features
🤖 Two-Stage AI Search Pipeline
- Stage 1 (Query Analysis): LLM-powered preprocessing that rewrites queries, extracts keywords, and detects intent, category preferences, filetype filters, and time-range constraints
- Stage 2 (Strategy Selection): Intelligent strategy selection with JSON Schema validation via Zod, ensuring only valid strategies are executed
🔍 Enhanced Search Context
- Document Stats Cache: Total document count and category distribution injected into the v2 prompt system
- 60-second TTL Cache: Automatically invalidated on import and watch events
- Tiered Result Merging: FTS results prioritized; non-FTS results capped at 5 when FTS exists to reduce noise
🌐 Improved Internationalization
- All system prompts converted to English instructions with mixed CN/EN few-shot examples
- Better JSON compliance for LLM outputs
- Modularized prompt architecture for easier maintenance and reuse
Changes
Added
-
Query Analysis Prompt Module (
server/src/prompts/query-analysis.prompt.ts)- Two-phase LLM query understanding: rewrite + intent/category/filetype/time-range detection
- Structured JSON output for programmatic processing
-
Zod JSON Schema Validation
- Strategy selection output validated against
StrategyResponseSchema - Enum-checked strategy names, minimum 1 strategy requirement
- Descriptive error messages on validation failure
- Strategy selection output validated against
-
Document Library Context
getDocumentStats()service for gathering library metadata- Automatic cache invalidation on document changes
- Context injection into v2 prompt as
[Document Library Info]block
Fixed
- v2 Context Never Injected:
getDocumentStats()now properly called inselectStrategieswhen variant is 'v2' - Search context availability verified and properly passed through the pipeline
Improved
-
Prompt Modularization: Prompts extracted from
ai.service.tsinto dedicatedprompts/modulesearch-strategy.prompt.tswith v1/v2 variants- 6 few-shot examples per strategy
- Context injection and intelligent fallback
index.tsbarrel exports for clean imports
-
Result Quality: Tiered result merging reduces noise while preserving browsing capabilities
Technical Improvements
- ✅ Replaced bare
as StrategyCall[]type assertions with proper Zod validation - ✅ Cache invalidation integrated with import and watch workflows
- ✅ Prompt system isolation enables easier testing and maintenance
- ✅ Better error messages for debugging search issues
Breaking Changes
None — This release maintains backward compatibility with v0.1.3.
Migration Guide
No action required. Simply upgrade to v0.1.4 and enjoy improved search accuracy.
Performance
- Query analysis adds ~200-500ms depending on LLM endpoint
- Document stats cache reduces overhead on repeated queries
- Result filtering improves UI responsiveness with large document sets
Related Documentation
- Architecture Overview — System design and component interactions
- Search Strategy Guide — CLI usage and search capabilities
- Development Guide — Setup and contribution workflow
Known Limitations
- LLM query analysis depends on API availability
- Category detection accuracy varies by document naming conventions
- Time-range extraction requires ISO 8601 or common date formats
OmniOwn v0.1.3
OmniOwn v0.1.2
🎉 OmniOwn v0.1.2 — Windows Installer Refresh
This release keeps the v0.1.1 Windows watcher/config fixes and adds both Windows installer formats, matching the Windows assets style from v0.1.0.
📦 Windows Downloads
- OmniOwn_0.1.2_x64-setup.exe — NSIS setup installer for quick Windows installation.
- OmniOwn_0.1.2_x64_en-US.msi — MSI installer for Windows deployment workflows.
🐛 Fixes Included
- Fix packaged startup config generation so default Windows library paths are TOML-safe.
- Restart the file watcher after saving path settings so custom library directories take effect.
- Ensure packaged omniown watch receives the configured library path instead of falling back to .\library.
🔄 Changes Since v0.1.1
- Release packaging now builds both Windows MSI and NSIS setup.exe installers.
- This release intentionally publishes only Windows installer assets.
OmniOwn v0.1.1
OmniOwn v0.1.0
🎉 Omniown v0.1.0 — First Release
This is the initial release of Omniown, a local-first personal knowledge base with AI-powered search, built as a three-tier full-stack application.
🏗️ Architecture
Rust CLI (text extraction + file pipeline + MCP) → Node.js API (Express + Prisma) → Vue 3 frontend + Tauri v2 desktop shell
✨ Highlights
- FTS5 Full-text Search — SQLite FTS5 virtual tables with automatic trigger-based sync, delivering millisecond-level queries.
- AI Multi-Strategy Search — LLM-driven intent analysis selects the optimal combination from 8 search strategies, executed in parallel with deduplication.
- MCP Server — Exposes 4 tools (search_documents, get_document, list_documents, get_status), allowing AI clients to directly access your local knowledge base.
- Multi-Format Text Extraction — Supports plain text, Markdown, HTML, code, JSON/YAML/TOML/CSV, PDF, DOCX, and XLSX.
- File Import Pipeline — SHA256 deduplication, auto-classification (public/private), and interactive same-name conflict resolution.
- Tauri v2 Desktop App — System tray + floating panel, auto-spawns a Node.js child process as the API backend.
📦 What's Included
- CLI text extraction & import pipeline
- Node.js REST API (Express 5 + Prisma 5, TypeScript strict)
- Vue 3 frontend (Pinia stores, Vite 6)
- Tauri v2 desktop shell (system tray + floating panel)
- MCP server for AI client integration
- TOML-based configuration (inbox/library paths, LLM API settings)
🔄 Changes Since Pre-release
- Architecture refactored from a Rust monolith to a three-tier full-stack design
- Database module streamlined — migration, classifier, and storage logic inlined
- Frontend refactored from direct API calls to Pinia stores + service layer
- API response fields converted from snake_case to camelCase (matching Prisma native output)
❌ Removed
- Embedding-based vector search (replaced by AI multi-strategy search)
- File-watching sentinel mode (replaced by Node.js API + manual CLI import)
🐛 Fixes
- Frontend/backend API response format mismatch (wrapper + field naming)
- CI package-lock.json gitignore causing npm ci to fail
- Release CI sidecar path mismatch due to missing --target flag on tauri-action
- macOS x86_64 build switched to macos-15-intel runner
- GitHub Actions upgraded (Node.js 20 deprecation): checkout@v6, upload-artifact@v7, download-artifact@v8, setup-node@v6
- Release CI: write permissions, artifactPath, and packaging type configuration fixes