mirror of
https://github.com/czlonkowski/n8n-mcp.git
synced 2026-02-06 05:23:08 +00:00
chore: update n8n to v1.116.2 (#348)
* docs: Update CLAUDE.md with development notes * chore: update n8n to v1.116.2 - Updated n8n from 1.115.2 to 1.116.2 - Updated n8n-core from 1.114.0 to 1.115.1 - Updated n8n-workflow from 1.112.0 to 1.113.0 - Updated @n8n/n8n-nodes-langchain from 1.114.1 to 1.115.1 - Rebuilt node database with 542 nodes - Updated version to 2.20.7 - Updated n8n version badge in README - All changes will be validated in CI with full test suite Conceived by Romuald Członkowski - www.aiadvisors.pl/en 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: regenerate package-lock.json to sync with updated dependencies Fixes CI failure caused by package-lock.json being out of sync with the updated n8n dependencies. - Regenerated with npm install to ensure all dependency versions match - Resolves "npm ci" sync errors in CI pipeline 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: align FTS5 tests with production boosting logic Tests were failing because they used raw FTS5 ranking instead of the exact-match boosting logic that production uses. Updated both test files to replicate production search behavior from src/mcp/server.ts. - Updated node-fts5-search.test.ts to use production boosting - Updated database-population.test.ts to use production boosting - Both tests now use JOIN + CASE statement for exact-match prioritization This makes tests more accurate and less brittle to FTS5 ranking changes. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: prioritize exact matches in FTS5 search with case-insensitive comparison Root cause: SQL ORDER BY was sorting by FTS5 rank first, then CASE statement. Since ranks are unique, the CASE boosting never applied. Additionally, the CASE statement used case-sensitive comparison which failed to match nodes like "Webhook" when searching for "webhook". Changes: - Changed ORDER BY from "rank, CASE" to "CASE, rank" in production code - Added LOWER() for case-insensitive exact match detection - Updated both test files to match the corrected SQL logic - Exact matches now consistently rank first regardless of FTS5 score Impact: - Improves search quality by ensuring exact matches appear first - More efficient SQL (less JavaScript sorting needed) - Tests now accurately validate production search behavior - Fixes 2/705 failing integration tests Verified: - Both tests pass locally after fix - SQL query tested with SQLite CLI showing webhook ranks 1st 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * docs: update CHANGELOG with FTS5 search fix details Added comprehensive documentation for the FTS5 search ranking bug fix: - Problem description with SQL examples showing wrong ORDER BY - Root cause analysis explaining why CASE statement never applied - Case-sensitivity issue details - Complete fix description for production code and tests - Impact section covering search quality, performance, and testing - Verified search results showing exact matches ranking first This documents the critical bug fix that ensures exact matches appear first in search results (webhook, http, code, etc.) with case-insensitive matching. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
committed by
GitHub
parent
32a25e2706
commit
7300957d13
@@ -205,9 +205,20 @@ describe.skipIf(!dbExists)('Database Content Validation', () => {
|
||||
|
||||
it('MUST have FTS5 index properly ranked', () => {
|
||||
const results = db.prepare(`
|
||||
SELECT node_type, rank FROM nodes_fts
|
||||
SELECT
|
||||
n.node_type,
|
||||
rank
|
||||
FROM nodes n
|
||||
JOIN nodes_fts ON n.rowid = nodes_fts.rowid
|
||||
WHERE nodes_fts MATCH 'webhook'
|
||||
ORDER BY rank
|
||||
ORDER BY
|
||||
CASE
|
||||
WHEN LOWER(n.display_name) = LOWER('webhook') THEN 0
|
||||
WHEN LOWER(n.display_name) LIKE LOWER('%webhook%') THEN 1
|
||||
WHEN LOWER(n.node_type) LIKE LOWER('%webhook%') THEN 2
|
||||
ELSE 3
|
||||
END,
|
||||
rank
|
||||
LIMIT 5
|
||||
`).all();
|
||||
|
||||
@@ -215,7 +226,7 @@ describe.skipIf(!dbExists)('Database Content Validation', () => {
|
||||
'CRITICAL: FTS5 ranking not working. Search quality will be degraded.'
|
||||
).toBeGreaterThan(0);
|
||||
|
||||
// Exact match should be in top results
|
||||
// Exact match should be in top results (using production boosting logic with CASE-first ordering)
|
||||
const topNodes = results.slice(0, 3).map((r: any) => r.node_type);
|
||||
expect(topNodes,
|
||||
'WARNING: Exact match "nodes-base.webhook" not in top 3 ranked results'
|
||||
|
||||
Reference in New Issue
Block a user