search: FTS special characters are deleted, not separated, so leaf(entry) matches nothing
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 1/5
- Temps estimé
- Moins d'une heure
- Accessibilité débutants
- 88/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- typescript
- Domaine
- search
Piste de recherche
Commence à src/db/queries.ts vers la ligne 2036, là où le replace des caractères spéciaux FTS5 construit le terme de recherche ; reproduis d'abord avec codegraph query "leaf(entry)" sur le fichier d'exemple pour confirmer le résultat vide. Remplace la substitution par un espace afin que chaque côté devienne un terme distinct entre guillemets, puis relance leaf(entry), leaf^entry, leaf() et une requête simple leaf entry pour vérifier qu'il n'y a pas de régression. C'est terminé lorsque les requêtes d'appels de fonction renvoient les symboles nommés et que les tests de recherche existants passent toujours.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Full-text search deletes FTS5 special characters instead of turning them into separators, so identifiers on either side of a (, ), ^, :, ", ' or * merge into one token that matches nothing.
// a.ts
export function entry() { mid1(); mid2(); }
export function leaf() { return 1; }
| query | result on main |
|---|---|
codegraph query "leaf entry" |
entry, leaf ✓ |
codegraph query "leaf(entry)" |
No results found |
codegraph query "leaf()" |
leaf ✓ (nothing follows the paren) |
The same happens through the library (searchNodes('leaf(entry)'), 'leaf^entry', 'leaf"entry' all return []). The LIKE and fuzzy fallbacks don't recover it.
Cause. db/queries.ts#L2036: .replace(/['"*():^]/g, '') // Remove FTS5 special chars turns leaf(entry) into the single term "leafentry"*.
Reproduced on main at 7973df0d with CODEGRAPH_KERNEL=0. Linux/WSL2, Node 22.23.2.
Why it matters. Agents and people paste call expressions and signatures into search (render(props), getUser(id), Foo::bar(x)), and those come back empty instead of finding the named symbols.
Fix. Replace with a space instead of the empty string (.replace(/['"*():^]/g, ' ')). Each side then becomes its own quoted term.
- Langage dominant
- C
- Étoiles
- 73.2k
- Forks
- 4.7k
- Merge moyen
- 3 h 15 min
- PR mergées (30 j)
- 576
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de colbymchenry/codegraph
-
mcp: a projectPath naming a file inside a project returns isError ("Path is not a directory")Peut-être pris @maxmilian l’a pris il y a 1 jour. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
colbymchenry/codegraph#2982 ·
Les mainteneurs répondent en général sous 1 jour
-
mcp: a non-object tools/call arguments crashes the handler and is reported as an internal error to retryPeut-être pris @kjgggggg l’a pris il y a 2 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
colbymchenry/codegraph#2981 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
colbymchenry/codegraph#2974 ·
Les mainteneurs répondent en général sous 1 jour
-
[Security Vulnerabiliy] Vulnerable bundled `node.exe` detected (Node2Shell - CVE-2026-111497)Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
colbymchenry/codegraph#2959 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
TypeScript: an import resolves to a same-named method of an exported object literal instead of the exported functionPeut-être pris @inth3shadows l’a pris il y a 2 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
colbymchenry/codegraph#2945 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de colbymchenry/codegraph
Issues similaires
-
vim.filetype.match() prefixes a URL buffer name with the cwd before passing it to filetype functionsOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 73/100
Les mainteneurs répondent en général sous 1 jour
-
compilation errorOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
COVESA/dlt-daemon#925 · 1 réaction ·
-
stream_curl: retry_count never resets after a successful reconnect, so long sequential streams die after 5 dropsPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
mpv-player/mpv#18728 ·
Les mainteneurs répondent en général sous 1 jour
-
followup Prio 📌
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
cyrusimap/cyrus-imapd#6640 ·
Les mainteneurs répondent en général sous 2 jours