Semantiqv0.5.2
01Home
02Features
03Docs
04Blog
05Changelog
06Support
Get Started
  1. Home
  2. Changelog
Updates

Changelog

All releases, features, and fixes.

Latest
v0.6.0
Releases
22
Changes
149
Release History
22 versions
0.6.0CurrentFeb 18, 2026

HTTP API Server & Local Import Resolution

New HTTP API server alternative to MCP stdio, local import path resolution, Python stdlib detection, and symbol parent tracking.

FeatureHTTP API server — Alternative to MCP stdio with `--http-port`, endpoints: `/health`, `/stats`, `/search`, `/find-refs`, `/deps`, `/explain`
FeatureHTTP middleware — 1MB body limit, 50 concurrent requests, CORS configurable via `--cors-origin`
FeatureLocal import resolution — Resolution of local import paths to actual files on disk (JS/TS, Python, Rust, Go)
Feature`resolved_path` column — Dependencies now store the resolved path, improving `find_refs` accuracy
FeaturePython stdlib detection — Accurate classification of Python standard vs external imports (200+ modules, binary search)
FeatureSymbol parent tracking — Symbols now include their parent (e.g., method → struct/class)
FeatureDockerfile — Multi-stage Docker image for deployment (Railway-ready)
ImprovementSchema migration v3→v4 — Automatic incremental migration (adds `resolved_path` column, no reindex required)
ImprovementAuto-indexer and CLI `index` command use local import resolution
FixCorrect git clone URL in Dockerfile
FixResolve clippy `module_inception` warning in HTTP tests
FixBump Rust version in Dockerfile to support edition 2024 and let-chains
0.5.2Feb 10, 2026

Security Hardening

Major security release with fixes for ReDoS, path traversal, and input validation vulnerabilities across the codebase.

Fix[HIGH] Fixed ReDoS vulnerability - user input is now escaped with `regex::escape()` in `TextSearcher::search()` before regex compilation
Fix[HIGH] Updated `bytes` crate 1.11.0 → 1.11.1 to fix integer overflow in `BytesMut::reserve` (RUSTSEC-2026-0007)
Fix[HIGH] Text search walker now uses `hidden(true)` and `should_exclude_entry` filtering, preventing reads from `.env`, `.git/`, and other sensitive directories
Fix[MEDIUM] Fixed path traversal in `read_file_lines()` - paths are now canonicalized and verified to stay within the project root
Fix[MEDIUM] Added input validation (empty, length ≤ 500, limit ≤ 1000) to `semantiq_find_refs`, `semantiq_explain`, and `semantiq_deps` MCP handlers
Fix[MEDIUM] Added path traversal rejection (`..`) in `semantiq_deps` file path parameter
Fix[MEDIUM] `resolve_project_root()` now canonicalizes paths to normalize `..` components and symlinks
Fix[LOW] FTS5 query escaping now strips null bytes and control characters
Fix[LOW] Query expansion limited to 10 terms to prevent amplification attacks
Fix[LOW] MCP error messages sanitized to avoid leaking internal file paths
Fix[LOW] Version check HTTP response limited to 10KB to prevent memory exhaustion
Fix[LOW] Poisoned mutex recovery in `DistanceCollector` now logs warnings instead of silently continuing
0.5.0Jan 31, 2026

Adaptive ML Thresholds

Automatic calibration of semantic search thresholds per programming language, new CLI commands, and codebase refactoring.

FeatureAdaptive ML thresholds - automatic calibration of semantic search thresholds per programming language
FeatureBootstrap mode - collects 100% of distance observations until 500 samples
FeatureProduction mode - switches to 10% sampling after bootstrap completes
FeatureAuto-calibration - triggers automatically when bootstrap completes
FeaturePercentile-based thresholds - uses p90 for max_distance, p10 for min_similarity
FeaturePer-language calibration with fallback cascade (language → global → defaults)
FeatureNew `calibrate` CLI command - manual threshold calibration with `--dry-run` option
FeatureML stats in `stats` command - shows bootstrap progress, observations per language, calibrated thresholds
FeatureNew database tables - `distance_observations` and `threshold_calibration` for ML data
FeatureCI workflows for `dev` branch - tests, Clippy, format checks, and multi-platform builds
ImprovementRefactored `store.rs` (2108 lines → 8 modules) - better code organization with dedicated modules for files, symbols, chunks, dependencies, observations, calibrations, and tests
ImprovementRefactored `engine.rs` (1049 lines → 5 modules) - cleaner architecture with dedicated modules for search, threshold, analysis, and tests
BreakingSchema version bumped to 3 - triggers automatic reindex on upgrade
0.4.0Jan 28, 2026

JSON Logging & MCP Tests

Structured JSON logging throughout the codebase, MCP test coverage, and CI/security workflows.

FeatureJSON logging support - structured logging throughout the codebase
FeatureJSON logging by default for `serve` command - better integration with log aggregators
FeatureMCP tests - test coverage for MCP server functionality
FeatureCI and security workflows - automated testing and security scanning
Improvement`init-cursor` command is now language-agnostic - works with any project type
ImprovementUpdated `deny.toml` to v2 schema
0.3.4Jan 20, 2026

macOS Intel Support & Optional ONNX

Restored macOS Intel (x86_64) support and made ONNX feature optional for broader platform compatibility.

FeaturemacOS Intel (x86_64-apple-darwin) support restored - binary now available for Intel Macs
FeatureCI build workflow - new build.yml for testing builds on push/PR without publishing
ImprovementONNX feature now optional - `--features onnx` required on supported platforms (Apple Silicon, Linux, Windows)
ImprovementIntel Mac builds use StubEmbeddingModel (no ONNX) due to missing prebuilt binaries
ImprovementUpdated CI to use macos-15 runner for Intel Mac cross-compilation
0.3.3Jan 19, 2026

Search Filtering Options

New search filtering capabilities for semantiq_search with min_score, file_type, and symbol_kind parameters.

Feature`min_score` parameter for `semantiq_search` - minimum relevance score threshold (0.0-1.0, default: 0.35)
Feature`file_type` parameter for `semantiq_search` - filter results by file extension
Feature`symbol_kind` parameter for `semantiq_search` - filter by symbol type (function, class, etc.)
FeatureCLI flags `--min-score`, `--file-type`, `--symbol-kind` for `semantiq search` command
FeatureSmart default exclusions - automatically excludes non-code files from search
Feature`SearchOptions` struct in `semantiq-retrieval` with builder pattern for flexible configuration
0.3.2Jan 19, 2026

Gitignore Support in init-cursor

The init-cursor command now automatically handles .gitignore entries for Semantiq database files.

Feature`.gitignore` support in `init-cursor` - automatically adds Semantiq database entries
FeatureCreates `.gitignore` if not present
FeatureUpdates existing `.gitignore` preserving original content
FeatureSkips if entries already present (no duplication)
Feature3 new tests for `.gitignore` handling in `init_cursor.rs`
0.3.1Jan 19, 2026

Cursor/VS Code Init Command

New init-cursor command for automatic Cursor/VS Code configuration setup, plus centralized CLI utilities.

FeatureNew `init-cursor` command for Cursor/VS Code configuration setup
FeatureCreates `.cursor/rules/project.mdc` (general project guidelines)
FeatureCreates `.cursor/rules/semantiq.mdc` (Semantiq MCP tools usage)
FeatureCreates `.cursor/mcp.json` (MCP server configuration)
FeatureCreates `.cursorignore` (indexing exclusions)
FeatureCreates `.vscode/` config (settings, tasks, launch, extensions)
FeaturePreserves existing files (skip instead of overwrite)
ImprovementCentralized `DEFAULT_DB_NAME` and path resolution utilities in `common.rs`
ImprovementRefactored all CLI commands to use shared utilities
ImprovementCLI description now generic ("for a project" instead of "for a Rust project")
Feature7 new unit tests for `common.rs` and `init_cursor.rs`
0.3.0Jan 19, 2026

Vector Search & Auto-Indexing

sqlite-vec integration for semantic vector search, automatic initial indexing, and 6 new languages.

Featuresqlite-vec integration for vector similarity search (384-dim MiniLM-L6-v2 embeddings)
FeatureAutomatic initial indexing when MCP server starts (no more manual `semantiq index` required)
Feature6 new languages: HTML, JSON, YAML, TOML, Bash, Elixir (total: 15 languages)
Featureripgrep integration for fast regex text search via `TextSearcher`
FeatureNew `search_similar_chunks()` method for semantic vector search
FeatureNew `InitialIndexResult` struct for tracking initial indexing progress
Fix"Imported by" always empty in `semantiq_deps` - rewrote `get_dependents()` to match JS/TS import paths
FixImport path resolution now handles basename matching with multiple extensions
ImprovementSchema version bumped to 2 (triggers automatic reindex)
ImprovementAdded `chunks_vec` virtual table for sqlite-vec embeddings
Improvement`start_auto_indexer()` now runs `initial_index()` before watching for changes
ImprovementImproved dependency matching with multiple LIKE patterns and post-filtering
0.2.9Jan 19, 2026

Arrow Function Indexing

Improved TypeScript/JavaScript function detection - arrow functions and function expressions are now correctly classified as functions.

FixArrow functions (const fn = () => {}) now correctly indexed as function instead of variable
FixFunction expressions (const fn = function() {}) now correctly indexed as function
ImprovementAdded is_function_variable() helper to detect functions assigned to variables
ImprovementAdded arrow_function and lexical_declaration to chunk boundaries for TypeScript/JavaScript
ImprovementBumped PARSER_VERSION to 3 (triggers automatic reindex)
0.2.8Jan 18, 2026

Security Hardening

Critical security improvements including checksum verification, path traversal protection, and memory exhaustion prevention.

FixCRITICAL: Added SHA-256 checksum verification for ONNX model downloads (TOFU + hardcoded support)
FixCRITICAL: Added path traversal protection with canonicalization in validate_path()
FixHIGH: Added MAX_AST_DEPTH=500 recursion limit in parser to prevent stack overflow attacks
FixHIGH: Added safe_slice() function to prevent panic on invalid byte indices
FixHIGH: Changed model directory fallback from "." to system temp dir (prevents writes to unexpected locations)
FixHIGH: Added pagination for get_chunks_with_embeddings() to prevent memory exhaustion DoS
FixHIGH: Reduced download size limit from 500MB to 100MB
FixHIGH: Added restrictive file permissions (0600 on Unix) for downloaded models and database
FixMEDIUM: Added explicit symlink handling (follow_links(false)) to prevent escape from project root
ImprovementRefactored download_file() with connection timeouts (30s connect, 5min global)
ImprovementImproved checksum verification with detailed warning messages
0.2.7Jan 18, 2026

Update Notifications

Automatic version update notifications at server startup with 24h local caching.

FeatureAutomatic version update notification at server startup
FeatureNon-blocking background check using GitHub Releases API
FeatureLocal cache (24h) to avoid repeated API calls
Feature--no-update-check CLI flag to disable update notifications
FeatureSEMANTIQ_UPDATE_CHECK environment variable for configuration
ImprovementUpdated author info to keyldzn
0.2.6Jan 18, 2026

Automatic Reindexation

Automatic reindexation when parser version changes, plus improved TypeScript/JavaScript support.

FeatureAutomatic reindexation when parser version changes (no more manual --force needed)
FeaturePARSER_VERSION constant to track parser logic changes
FeatureSupport for const/let variable extraction in TypeScript/JavaScript
FeatureGitHub Sponsors funding configuration
ImprovementVersion detection uses atomic transactions to prevent race conditions
ImprovementDocumentation updated with known limitations and setup guides
FixFilter out verbose ONNX Runtime logs during indexing
0.2.4Jan 18, 2026

ONNX Stability Fixes

Critical fixes for ONNX model download and inference, plus improved file exclusion handling.

FixModel download failing in async Tokio context (replaced reqwest::blocking with ureq)
FixDownload size limit too small for 90MB ONNX model (increased to 200MB)
FixONNX inference crash due to missing token_type_ids input
FixEmbeddings not generated during semantiq index command
Improvementsemantiq index now generates embeddings for all chunks
ImprovementCentralized file exclusion logic into exclusions.rs module
ImprovementAuto-indexer and FileWatcher now use shared exclusion patterns
0.2.3Jan 18, 2026

Semantic Search with ONNX

Semantic code search via ONNX embeddings, automatic model download, and cosine similarity matching.

FeatureONNX embedding model integration for semantic search
FeatureAutomatic model download on first run
FeatureCosine similarity search for vector matching
FeatureAlternative installation via cargo install --git
FeatureCHANGELOG.md for version history
ImprovementEmbeddings now generated automatically during auto-indexing
ImprovementSwitch from OpenSSL to rustls for better cross-compilation support
ImprovementUse ort download-binaries for automatic ONNX Runtime provisioning
BreakingRemoved macOS Intel (x86_64-apple-darwin) binary - ONNX Runtime does not support this target
0.2.2Jan 17, 2026

CLAUDE.md Improvements

Updated CLAUDE.md template to prioritize Semantiq MCP tools.

ImprovementImproved CLAUDE.md template to prioritize Semantiq tools over grep/Glob
0.2.1Jan 17, 2026

Performance & Security Fixes

Critical fixes for error handling, security, and query performance.

FixError handling with proper mutex propagation
FixSQL injection vulnerability via LIKE escaping
FixUTF-8 safety in tree-sitter text extraction
FixN+1 query pattern in get_stats() (4 queries → 1)
ImprovementShared single Arc<IndexStore> instead of 3 separate DB connections
ImprovementImproved scoring algorithm with symbol type boosting
ImprovementResults limited to 500 to prevent memory issues
ImprovementAdded PRAGMA busy_timeout=5000 for concurrent access
0.2.0Jan 17, 2026

NPM Package Automation

Automatic npm package version synchronization from git tags.

FeatureAutomatic npm package version update from git tag
0.1.3Jan 17, 2026

Project Init Command

New init command for project setup with automatic configuration.

FeatureNew semantiq init command for easy project setup
FeatureAuto-creates .claude/settings.json, CLAUDE.md, updates .gitignore
FeatureRuns initial indexation automatically
0.1.2Jan 17, 2026

Auto-Indexing

Real-time file updates with automatic re-indexing on changes.

FeatureAuto-indexing for real-time file updates
FeatureFileWatcher integration with create/modify/delete events
FeatureBackground task with 2-second polling
0.1.1Jan 17, 2026

Documentation Update

Improved npm and project documentation.

Featurenpm README documentation
ImprovementUpdated main README with correct npm package name
0.1.0Jan 17, 2026

Initial Release

First public release of Semantiq with core MCP functionality.

FeatureInitial release
FeatureMCP server with 4 tools: search, find_refs, deps, explain
FeatureSupport for 9 languages via tree-sitter
FeatureSQLite storage with FTS5 search
Semantiq

One MCP Server for every AI coding tool. Powered by Rust and Tree-sitter.

GitHub

Product

  • Features
  • Documentation
  • Changelog

Resources

  • Quick Start
  • CLI Reference
  • MCP Integration
  • Blog

Connect

  • Support
  • GitHub
// 19 languages supported
Rust
TypeScript
JavaScript
Python
Go
Java
C
C++
PHP
Ruby
C#
Kotlin
Scala
Bash
Elixir
HTML
JSON
YAML
TOML
© 2026 Semantiq.|v0.5.2|connected
MIT·Built with Rust & Tree-sitter