Semantiq v0.6.0 arrive avec deux capacités majeures : un serveur HTTP API complet pour un déploiement flexible, et une résolution des imports locaux qui améliore la précision du suivi des dépendances.
Serveur HTTP API : Au-delà du MCP Stdio
Jusqu'à présent, Semantiq communiquait uniquement via MCP (Model Context Protocol) sur stdio. Cela fonctionne parfaitement pour les assistants de codage IA comme Claude Code et Cursor, mais limite les options d'intégration.
v0.6.0 introduit un serveur HTTP API qui expose toutes les capacités de Semantiq via des endpoints REST :
1# Démarrer le serveur HTTP sur le port 80802semantiq serve --http-port 808034# Optionnel : Configurer CORS pour l'accès navigateur5semantiq serve --http-port 8080 --cors-origin "http://localhost:3000"Endpoints Disponibles
| Endpoint | Méthode | Description |
|---|---|---|
/health | GET | Vérification de santé pour les load balancers |
/stats | GET | Statistiques d'index et données de calibration |
/search | POST | Recherche sémantique de code |
/find-refs | POST | Trouver les références d'un symbole |
/deps | POST | Analyser les dépendances d'un fichier |
/explain | POST | Obtenir des explications détaillées sur un symbole |
Protections Intégrées
Le serveur HTTP inclut des middlewares prêts pour la production :
- Limite de 1MB par requête — prévient l'épuisement mémoire
- 50 requêtes simultanées — protège contre les inondations de requêtes
- CORS configurable — accès cross-origin sécurisé pour les interfaces web
- Erreurs JSON structurées — réponses d'erreur cohérentes pour les clients
Cas d'Usage
L'API HTTP supporte de nouveaux patterns d'intégration :
- Interfaces personnalisées — Construire des dashboards web pour l'exploration du code
- Intégration CI/CD — Interroger l'index pendant les builds sans MCP
- Clients multi-langages — Tout langage avec HTTP peut utiliser Semantiq
- Déploiement microservice — Exécuter Semantiq comme un service autonome
Résolution des Imports Locaux : Suivre le Code
Auparavant, Semantiq suivait les imports comme des chaînes brutes. Quand votre fichier TypeScript importait ./utils/helpers, Semantiq stockait exactement cela — la chaîne ./utils/helpers.
v0.6.0 corrige cela. Semantiq résout maintenant les chemins d'import vers les fichiers réels sur le disque :
1// Votre code2import { formatDate } from './utils/helpers';34// Ancien comportement : stocke "./utils/helpers"5// Nouveau comportement : stocke "/chemin/absolu/vers/src/utils/helpers.ts"Pourquoi C'est Important
Les chemins résolus améliorent la précision de find_refs. Considérez ce scénario :
1src/2 components/3 Button.tsx → import { theme } from '../styles'4 Card.tsx → import { theme } from '../styles'5 styles/6 index.ts → export const theme = { ... }Auparavant, rechercher les références à theme pouvait manquer ces imports car les chemins relatifs diffèrent. Maintenant, les deux imports se résolvent vers le même chemin absolu, et find_refs les identifie correctement comme références au même symbole.
Langages Supportés
La résolution des imports locaux fonctionne pour :
| Langage | Règles de Résolution |
|---|---|
| JavaScript/TypeScript | Fichiers .js, .ts, .tsx, index.* |
| Python | Fichiers .py, packages __init__.py |
| Rust | mod.rs, lib.rs, modules fichiers |
| Go | Fichiers .go dans le même package |
Migration du Schéma
La nouvelle colonne resolved_path nécessite une mise à jour du schéma (v3 → v4). La migration est automatique et incrémentale — votre index existant est préservé, et les chemins résolus sont peuplés lors du prochain passage d'indexation.
Détection de la Stdlib Python
Semantiq distingue maintenant précisément les imports de la bibliothèque standard Python des dépendances externes :
1import os # ← Bibliothèque standard2import sys # ← Bibliothèque standard3import requests # ← Dépendance externe4import numpy # ← Dépendance externeCela utilise une liste intégrée de plus de 200 modules de la bibliothèque standard avec recherche binaire pour des lookups rapides. La classification affecte l'affichage des dépendances — les imports de la bibliothèque standard sont clairement étiquetés, facilitant la compréhension des dépendances externes d'un fichier.
Suivi du Parent des Symboles
Les symboles suivent maintenant leur contexte parent. Quand vous cherchez une méthode, Semantiq vous indique à quelle classe ou structure elle appartient :
1// Avant v0.6.02// search("process") → "process" (fonction)34// Après v0.6.05// search("process") → "process" (méthode de DataProcessor)Ce contexte aide lors de l'exploration de codebases inconnues. Au lieu de voir des noms de fonctions isolés, vous comprenez la hiérarchie complète.
Déploiement Docker
Semantiq est maintenant prêt pour Docker avec un Dockerfile multi-stage optimisé pour le déploiement :
1# Récupérer l'image officielle2docker pull ghcr.io/semantiq/semantiq:latest34# Exécuter comme service5docker run -p 8080:8080 -v /votre/code:/workspace \6 ghcr.io/semantiq/semantiq serve --http-port 8080L'image est prête pour Railway pour un déploiement cloud en un clic. Montez votre codebase, exposez le port HTTP, et vous avez un service de recherche sémantique de code.
Guide de Mise à Jour
La mise à jour est simple :
1# Mettre à jour vers v0.6.02npm update -g semantiq-mcp34# Votre index existant migre automatiquement5# Lancez simplement le serveur comme d'habitude6semantiq servePour utiliser l'API HTTP, ajoutez le flag --http-port :
semantiq serve --http-port 8080Et Ensuite
v0.6.0 ajoute l'infrastructure pour les déploiements distribués de Semantiq. Les prochaines versions construiront sur cela :
- Index d'équipe — Partager les index entre équipes distribuées
- Synchronisation cloud — Synchronisation automatique des index
- Recherche multi-repo — Interroger plusieurs codebases
L'API HTTP ouvre des possibilités que nous commençons à peine à explorer. Dites-nous ce que vous construisez avec.
Commencez dès aujourd'hui :
npm install -g semantiq-mcp
semantiq init
semantiq serve --http-port 8080Des questions ? Des retours ? Rejoignez la discussion sur GitHub.