Releases: Shun0212/OwlSpotLight
Release list
v0.5.3
v0.5.0
OwlSpotlight v0.5.0
This release adds Codex / MCP integration, new keyword search modes, improved indexing progress, and more robust server lifecycle handling.
Highlights
- Added MCP server support for Codex and other coding agents
- Added Keyword search mode
- Search modes now include Hybrid, Semantic, BM25, and Keyword
- Keyword / BM25 search now works without an embedding index
- Reworked indexing progress with real percentage, item count, elapsed time, and ETA
- Fixed event-loop blocking during indexing by offloading blocking work with
asyncio.to_thread() - Removed noisy
tqdmoutput from the Output panel - Added configurable
owlspotlight.serverHostandowlspotlight.serverPort - Improved server stop/restart/deactivate handling with SIGTERM → SIGKILL escalation
- Fixed stale Online / Checking status issues
- Added validation for invalid bind hosts
- Filtered noisy multiprocessing leaked semaphore warnings
- Changed the default embedding model to NightOwl-CodeEmbedding
- Fully updated the README
Codex / MCP integration
OwlSpotlight can now run as an MCP server, allowing Codex and other coding agents to use the same code search capabilities directly.
New MCP tools:
owlspotlight.search_codeowlspotlight.grep_repoowlspotlight.mark_results_usedowlspotlight.get_human_feedback
Agent searches are shown in the sidebar as compact Agent Activity entries, and human feedback submission is now supported.
Search improvements
Added Keyword mode for exact-match search. OwlSpotlight now supports four search modes:
- Hybrid
- Semantic
- BM25
- Keyword
Keyword and BM25 search no longer require an embedding index, so they can be used even before embeddings are generated.
Indexing progress
Indexing progress is now shown as a determinate progress bar in the sidebar, including percentage, processed item count, elapsed time, and ETA.
Previously, indexing could block the asyncio event loop, preventing /index_progress from being served and making progress appear frozen. This is now fixed by offloading blocking indexing work with asyncio.to_thread().
The noisy tqdm output has also been removed from the Output panel. Embedding now prints only a concise summary line:
[embed] N items in Xs
Server stability
Server lifecycle handling is now more reliable. Stop, Restart, and Deactivate now terminate the server process with SIGTERM and escalate to SIGKILL if it does not exit within 3 seconds.
This fixes cases where uvicorn could survive Stop, become orphaned, continue occupying the port, and cause future restarts to incorrectly detect that the server was already running.
Status updates are also pushed on stop and process exit, fixing cases where the sidebar remained Online after the server had stopped.
Server host / port settings
Added configurable server host and port settings:
owlspotlight.serverHostowlspotlight.serverPort
Invalid bind hosts are now detected before launch and reported with a modal and sidebar error message.
Binding and client connection hosts are also handled separately. For example, binding to 0.0.0.0 maps the client connection host to 127.0.0.1.
Full Changelog
v0.4.5
v0.4.4: feat: update version to 0.4.4 and exclude tests from package
Changelog
0.4.3
- Improved Python environment setup with uv
- Added background server process
- Added VS Code OUTPUT panel logging
- Improved CUDA auto-detection and CPU fallback
- Added Japanese query translation via Gemini API
0.4.0
- Moved server startup from integrated terminal to background process
- Added server status indicator
- Improved cache management