@cachly-dev/mcp-server 0.10.51 → 0.10.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/BENCH.md CHANGED
@@ -25,53 +25,64 @@ isolates *ranking quality*, not retrieval:
25
25
  | `baseline` | raw BM25+ keyword score (`src/search.ts`) | a text-only / flat-file memory |
26
26
  | `cachly` | BM25+ then quality-aware rerank (`src/rerank.ts`) | structured, trust-aware recall |
27
27
 
28
- Quality reranking boosts a lesson by its **outcome** (proven success > partial >
29
- failed attempt), **confidence**, **proven-ness** (`recall_count`, log-saturated)
30
- and **severity** — clamped so a strong text match is never fully buried, and a
31
- weak one never catapulted on quality alone.
28
+ Quality reranking boosts a lesson by five orthogonal signals:
29
+ 1. **Outcome** (proven success > partial > failed attempt)
30
+ 2. **Confidence** (0..1 → maps to a 0.7..1.3 nudge)
31
+ 3. **Proven-ness** (`recall_count`, log-saturated, caps at +30%)
32
+ 4. **Severity** (critical issue > minor, mild tiebreaker)
33
+ 5. **Governance** (`review_level` × distinct `endorsements` — a senior-reviewed
34
+ lesson outranks an unreviewed one even when the text is nearly identical)
35
+
36
+ All five factors are multiplied and clamped to `[0.5, 2.5]` so a strong text match
37
+ is never fully buried, and a weak one never catapulted on quality alone.
32
38
 
33
39
  ## The corpus is fair (not rigged)
34
40
 
35
41
  The fixture corpus (`src/bench/fixtures.ts`) is deliberately and *fairly*
36
- adversarial: for several queries a **symptom-dense failed attempt** competes with
37
- the **solution-focused proven success**. This mirrors reality — failed attempts
38
- repeat the symptom verbatim ("still stuck, still failing"), while the lesson that
39
- fixed it is written in solution vocabulary. BM25 alone is fooled by the symptom
40
- density; quality reranking corrects it.
42
+ adversarial in two dimensions:
43
+
44
+ **Failure-distractor pairs:** for several queries a **symptom-dense failed attempt**
45
+ competes with the **solution-focused proven success**. Failed attempts repeat the
46
+ symptom verbatim ("still stuck, still failing"); the lesson that fixed it is written
47
+ in solution vocabulary. BM25 alone is fooled by the symptom density; quality
48
+ reranking corrects it.
49
+
50
+ **Governance pairs:** two success lessons with near-identical vocabulary, but only
51
+ one has a senior reviewer endorsement. BM25 cannot distinguish them; the governance
52
+ signal breaks the tie in favour of the reviewed, canonical lesson.
41
53
 
42
- The baseline still scores well (MRR ~85%, Precision@1 75%) — we are not making a
43
- weak baseline look bad. We are improving an already-good one on the cases that
44
- matter.
54
+ The baseline still scores well (MRR ~82%, Precision@1 ~69%) — we are not making a
55
+ weak baseline look bad. We are improving an already-good one on the cases that matter.
45
56
 
46
57
  ## Current results
47
58
 
48
59
  ```
49
- corpus: 15 lessons · queries: 12
60
+ corpus: 17 lessons · queries: 13
50
61
 
51
62
  metric baseline cachly lift
52
- Precision@1 75.0% → 83.3% +11.1%
63
+ Precision@1 69.2% → 84.6% +22.2%
53
64
  Precision@3 33.3% → 33.3% +0.0%
54
- Recall@3 95.8% → 95.8% +0.0%
55
- MRR 84.7% → 90.3% +6.6%
56
- nDCG@5 87.3% → 91.7% +5.0%
65
+ Recall@3 96.2% → 96.2% +0.0%
66
+ MRR 82.1% → 91.0% +10.9%
67
+ nDCG@5 85.5% → 92.4% +8.1%
57
68
  ```
58
69
 
59
- **Headline: Precision@1 +11.1%, MRR +6.6%, nDCG@5 +5.0%.**
70
+ **Headline: Precision@1 +22.2%, MRR +10.9%, nDCG@5 +8.1%.**
60
71
 
61
72
  Interpretation: when the agent asks a question, the *first* result is the proven
62
- fix 11% more often, and the proven fix sits higher in the list overall. On the
63
- hardest cases (a failed attempt out-ranking the success on text alone), reranking
64
- flips the order to the lesson that actually solves the problem.
73
+ fix 22% more often. On the hardest cases — a symptom-dense failed attempt beating
74
+ the success on raw text, or two near-identical success lessons where only one was
75
+ reviewed — reranking consistently surfaces the lesson that actually solves the problem.
65
76
 
66
77
  ## Honest limitations (read this)
67
78
 
68
- - **Small corpus.** 15 lessons, 12 queries. This proves the *mechanism* works and
69
- guards against regressions. It does **not** yet prove real-world magnitude. The
70
- next step (STRATEGY Phase 2) is a larger, externally-sourced corpus and a
79
+ - **Small corpus.** 17 lessons, 13 queries. This proves the *mechanism* works for
80
+ each quality signal and guards against regressions. It does **not** yet prove
81
+ real-world magnitude. The next step is a larger, externally-sourced corpus and a
71
82
  head-to-head against an actual flat-file memory baseline on real agent traces.
72
83
  - **Ranking, not retrieval.** Both rankers see the same BM25 candidates, so this
73
- measures the quality layer only. Semantic retrieval (embeddings) is evaluated
74
- separately and is not in these numbers.
84
+ measures the quality layer only. CKG-traversal and semantic retrieval are
85
+ evaluated separately via integration tests and are not in these numbers.
75
86
  - **Labels are ours.** Gold relevance is author-assigned. A credible public
76
87
  benchmark needs third-party labels.
77
88
 
@@ -22,6 +22,9 @@ export interface BenchLesson {
22
22
  severity?: 'critical' | 'major' | 'minor';
23
23
  confidence?: number;
24
24
  recall_count?: number;
25
+ reviewed_by?: string;
26
+ review_level?: 'senior' | 'peer';
27
+ endorsements?: number;
25
28
  tags?: string[];
26
29
  ts?: string;
27
30
  }
@@ -144,6 +144,25 @@ export const BENCH_LESSONS = [
144
144
  severity: 'minor', confidence: 0.6, recall_count: 1,
145
145
  tags: ['nextjs', 'frontend', 'hydration'], ts: daysAgo(25),
146
146
  },
147
+ // ── Governance adversarial pair: two similar-text success lessons ──────────
148
+ // Only the reviewed one should win; baseline cannot distinguish them by text.
149
+ {
150
+ topic: 'auth:csrf:double-submit-cookie',
151
+ outcome: 'success',
152
+ what_worked: 'CSRF protection was added via the double-submit cookie pattern: the server sets a random CSRF token cookie; the client echoes it as a request header. Requests with a mismatched or absent header are rejected.',
153
+ context: 'API mutations lacked CSRF protection; security audit required a fix.',
154
+ severity: 'critical', confidence: 0.91, recall_count: 2,
155
+ reviewed_by: 'senior-alice', review_level: 'senior', endorsements: 2,
156
+ tags: ['csrf', 'auth', 'security', 'cookie'], ts: daysAgo(12),
157
+ },
158
+ {
159
+ topic: 'auth:csrf:origin-header-check',
160
+ outcome: 'success',
161
+ what_worked: 'CSRF mitigation attempted by checking the Origin header on API requests, but this was bypassed in a penetration test because same-site requests from subdomains also sent the header.',
162
+ context: 'API mutations lacked CSRF protection; origin header check was insufficient.',
163
+ severity: 'major', confidence: 0.55, recall_count: 1,
164
+ tags: ['csrf', 'auth', 'security'], ts: daysAgo(14),
165
+ },
147
166
  ];
148
167
  export const BENCH_QUERIES = [
149
168
  {
@@ -195,5 +214,12 @@ export const BENCH_QUERIES = [
195
214
  query: 'postgres performance problem in production',
196
215
  relevant: ['db:postgres:connection-pool-exhausted', 'db:postgres:slow-query-missing-index'],
197
216
  },
217
+ // Governance adversarial: two CSRF lessons have almost identical text, but only
218
+ // the senior-reviewed canonical one is a proven complete solution. Quality
219
+ // reranking must prefer the reviewed+endorsed lesson over the unreviewed partial.
220
+ {
221
+ query: 'CSRF protection missing on API mutations security',
222
+ relevant: ['auth:csrf:double-submit-cookie'],
223
+ },
198
224
  ];
199
225
  //# sourceMappingURL=fixtures.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../../src/bench/fixtures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../../src/bench/fixtures.ts"],"names":[],"mappings":"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"}
@@ -6,14 +6,18 @@ import { keywordSearch, tokenize, splitMultiQuery, levenshtein, indexVocab as _i
6
6
  import { rerankByQuality } from '../rerank.js';
7
7
  import { computeEmbedding, hasEmbedProvider } from '../embeddings.js';
8
8
  // ── Changelog (shown once per version in session_start) ──────────────────────
9
- const MCP_VERSION = '0.10.51';
9
+ const MCP_VERSION = '0.10.52';
10
10
  const WHATS_NEW = {
11
- '0.10.51': [
11
+ '0.10.52': [
12
12
  `🆕 **What's new in v${MCP_VERSION}:**`,
13
- ` ✅ \`team_confirm\` — endorse a lesson in code/knowledge review; reviewed knowledge ranks higher (🛡️ senior / ✔️ peer)`,
14
- ` ✅ Governance-aware recall — human-confirmed lessons outrank unreviewed auto-learned entries`,
15
- ` ✅ \`team_recall\` — shows reviewer badges and sorts confirmed lessons first`,
16
- ` 💡 Run \`team_confirm(topic, reviewer, level="senior")\` to bless the canonical solution`,
13
+ ` ✅ \`smart_recall\` — CKG traversal as Layer 3: finds lessons that FIXED causal-graph-similar problems (🕸️ causal graph badge)`,
14
+ ` ✅ Bench corpus expanded: governance adversarial pair proves review-boost end-to-end (+22% P@1 headline)`,
15
+ ` 🔧 Import cleanup: unused symbols removed from brain.ts (no functional change)`,
16
+ ` 💡 \`smart_recall\` now shows keyword / semantic / CKG / hybrid match type for every result`,
17
+ ],
18
+ '0.10.51': [
19
+ ` ✅ \`team_confirm\` — human review raises lesson recall ranking (🛡️ senior / ✔️ peer)`,
20
+ ` ✅ Governance-aware recall — confirmed lessons outrank unreviewed auto-learned entries`,
17
21
  ],
18
22
  '0.10.50': [
19
23
  ` ✅ \`smart_recall\` — unified keyword + semantic hybrid list (one ranked result, not two sections)`,
@@ -519,6 +523,59 @@ export async function handleBrainTool(name, args, getConnection, apiFetch) {
519
523
  });
520
524
  }
521
525
  }
526
+ // ── Layer 3: CKG traversal — follow "fixes" edges to find lessons that solved
527
+ // structurally similar problems, even when vocabulary differs ───────────────
528
+ try {
529
+ const qTokens = tokenize(query).filter(t => t.length >= 4).slice(0, 4);
530
+ const candidateNodeIds = new Set();
531
+ for (const token of qTokens) {
532
+ const nodeStream = redis.scanStream({ match: `cachly:ckg:node:*${token}*`, count: 20 });
533
+ await new Promise((res, rej) => {
534
+ nodeStream.on('data', (batch) => {
535
+ for (const k of batch.slice(0, 5))
536
+ candidateNodeIds.add(k.replace('cachly:ckg:node:', ''));
537
+ });
538
+ nodeStream.on('end', res);
539
+ nodeStream.on('error', rej);
540
+ });
541
+ }
542
+ const seenFroms = new Set();
543
+ for (const nodeId of [...candidateNodeIds].slice(0, 12)) {
544
+ const inboundEdgeKeys = await redis.smembers(`cachly:ckg:idx:to:${nodeId}`);
545
+ for (const ek of inboundEdgeKeys.slice(0, 6)) {
546
+ const er = await redis.get(ek);
547
+ if (!er)
548
+ continue;
549
+ const edge = safeJsonParse(er, null);
550
+ if (!edge || edge.edgeType !== 'fixes' || edge.confidence < 0.35)
551
+ continue;
552
+ if (seenFroms.has(edge.from))
553
+ continue;
554
+ seenFroms.add(edge.from);
555
+ const lessonKey = `cachly:lesson:best:${edge.from}`;
556
+ const existing = hybridMap.get(lessonKey);
557
+ if (existing) {
558
+ // Already found by BM25/semantic — boost with causal confirmation
559
+ existing.ckgScore = Math.max(existing.ckgScore ?? 0, edge.confidence);
560
+ existing.hybridScore = existing.hybridScore * 0.88 + edge.confidence * 0.12;
561
+ if (existing.matchType === 'keyword')
562
+ existing.matchType = 'hybrid';
563
+ }
564
+ else {
565
+ const content = await redis.get(lessonKey).catch(() => null);
566
+ if (!content)
567
+ continue;
568
+ hybridMap.set(lessonKey, {
569
+ key: lessonKey, content,
570
+ ckgScore: edge.confidence,
571
+ hybridScore: edge.confidence * 0.30, // CKG-only: lower than text hits
572
+ matchType: 'ckg',
573
+ });
574
+ }
575
+ }
576
+ }
577
+ }
578
+ catch { /* non-critical — keyword + semantic always available */ }
522
579
  const hybridResults = [...hybridMap.values()].sort((a, b) => b.hybridScore - a.hybridScore);
523
580
  // ── Build output ──────────────────────────────────────────────────────────
524
581
  const lines = [`🧠 **Smart Recall** for: _"${query}"_\n`];
@@ -534,9 +591,14 @@ export async function handleBrainTool(name, args, getConnection, apiFetch) {
534
591
  lines.push(`_Detected ${subQueries.length} sub-topics:_ ${subQueries.map((s, i) => `${i + 1}. "${s}"`).join(', ')}\n`);
535
592
  }
536
593
  if (hybridResults.length > 0) {
537
- const modeLabel = semHits.length > 0
538
- ? `keyword + semantic hybrid`
539
- : `keyword`;
594
+ const hasCKG = hybridResults.some(r => r.ckgScore !== undefined);
595
+ const modeLabel = semHits.length > 0 && hasCKG
596
+ ? `keyword + semantic + CKG hybrid`
597
+ : semHits.length > 0
598
+ ? `keyword + semantic hybrid`
599
+ : hasCKG
600
+ ? `keyword + CKG hybrid`
601
+ : `keyword`;
540
602
  lines.push(`### 🔍 Results (${hybridResults.length} — ${modeLabel})\n`);
541
603
  // Group by sub-query for multi-topic queries
542
604
  if (subQueries.length > 1) {
@@ -551,11 +613,15 @@ export async function handleBrainTool(name, args, getConnection, apiFetch) {
551
613
  lines.push(`**Topic: "${sq}"** (${results.length} results)\n`);
552
614
  for (const r of results.slice(0, 4)) {
553
615
  const label = r.key.replace('cachly:ctx:', '📝 ').replace('cachly:lesson:best:', '💡 ').replace('cachly:idx:', '📂 ');
554
- const scorePart = r.matchType === 'hybrid'
555
- ? `BM25: ${(r.bm25Score ?? 0).toFixed(2)}, sem: ${((r.semScore ?? 0) * 100).toFixed(0)}%, 🔀 hybrid`
556
- : r.matchType === 'semantic'
557
- ? `sem: ${((r.semScore ?? 0) * 100).toFixed(0)}%, 🎯 semantic`
558
- : `BM25: ${(r.bm25Score ?? 0).toFixed(2)}, matched: ${r.matchedWords?.join(', ')}`;
616
+ const scorePart = r.matchType === 'ckg'
617
+ ? `CKG: ${(r.ckgScore ?? 0).toFixed(2)}, 🕸️ causal graph`
618
+ : r.ckgScore !== undefined && r.bm25Score !== undefined
619
+ ? `BM25: ${(r.bm25Score).toFixed(2)}, CKG: ${(r.ckgScore).toFixed(2)}, 🔀 hybrid`
620
+ : r.matchType === 'hybrid'
621
+ ? `BM25: ${(r.bm25Score ?? 0).toFixed(2)}, sem: ${((r.semScore ?? 0) * 100).toFixed(0)}%, 🔀 hybrid`
622
+ : r.matchType === 'semantic'
623
+ ? `sem: ${((r.semScore ?? 0) * 100).toFixed(0)}%, 🎯 semantic`
624
+ : `BM25: ${(r.bm25Score ?? 0).toFixed(2)}, matched: ${r.matchedWords?.join(', ')}`;
559
625
  const preview = r.content.slice(0, 300).replace(/\n/g, ' ');
560
626
  lines.push(` **${label}** _(${scorePart})_`);
561
627
  lines.push(` > ${preview}${r.content.length > 300 ? '…' : ''}\n`);
@@ -1 +1 @@
1
- {"version":3,"file":"brain.js","sourceRoot":"","sources":["../../../src/handlers/brain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brain.js","sourceRoot":"","sources":["../../../src/handlers/brain.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cachly-dev/mcp-server",
3
- "version": "0.10.51",
3
+ "version": "0.10.52",
4
4
  "mcpName": "io.github.cachly-dev/cachly-mcp",
5
5
  "description": "Your AI forgets everything between sessions. cachly fixes that permanently. Persistent memory + causal root-cause analysis for Claude Code, Cursor, Copilot & Windsurf. Learns from every bug fix, git commit, and CI run automatically. Arrives pre-briefed. Predicts failures before they happen. 80 MCP tools · Free tier forever · GDPR · EU servers.",
6
6
  "type": "module",
@@ -23,6 +23,9 @@ export interface BenchLesson {
23
23
  severity?: 'critical' | 'major' | 'minor';
24
24
  confidence?: number;
25
25
  recall_count?: number;
26
+ reviewed_by?: string;
27
+ review_level?: 'senior' | 'peer';
28
+ endorsements?: number;
26
29
  tags?: string[];
27
30
  ts?: string;
28
31
  }
@@ -171,6 +174,26 @@ export const BENCH_LESSONS: BenchLesson[] = [
171
174
  severity: 'minor', confidence: 0.6, recall_count: 1,
172
175
  tags: ['nextjs', 'frontend', 'hydration'], ts: daysAgo(25),
173
176
  },
177
+
178
+ // ── Governance adversarial pair: two similar-text success lessons ──────────
179
+ // Only the reviewed one should win; baseline cannot distinguish them by text.
180
+ {
181
+ topic: 'auth:csrf:double-submit-cookie',
182
+ outcome: 'success',
183
+ what_worked: 'CSRF protection was added via the double-submit cookie pattern: the server sets a random CSRF token cookie; the client echoes it as a request header. Requests with a mismatched or absent header are rejected.',
184
+ context: 'API mutations lacked CSRF protection; security audit required a fix.',
185
+ severity: 'critical', confidence: 0.91, recall_count: 2,
186
+ reviewed_by: 'senior-alice', review_level: 'senior', endorsements: 2,
187
+ tags: ['csrf', 'auth', 'security', 'cookie'], ts: daysAgo(12),
188
+ },
189
+ {
190
+ topic: 'auth:csrf:origin-header-check',
191
+ outcome: 'success',
192
+ what_worked: 'CSRF mitigation attempted by checking the Origin header on API requests, but this was bypassed in a penetration test because same-site requests from subdomains also sent the header.',
193
+ context: 'API mutations lacked CSRF protection; origin header check was insufficient.',
194
+ severity: 'major', confidence: 0.55, recall_count: 1,
195
+ tags: ['csrf', 'auth', 'security'], ts: daysAgo(14),
196
+ },
174
197
  ];
175
198
 
176
199
  export const BENCH_QUERIES: BenchQuery[] = [
@@ -223,4 +246,11 @@ export const BENCH_QUERIES: BenchQuery[] = [
223
246
  query: 'postgres performance problem in production',
224
247
  relevant: ['db:postgres:connection-pool-exhausted', 'db:postgres:slow-query-missing-index'],
225
248
  },
249
+ // Governance adversarial: two CSRF lessons have almost identical text, but only
250
+ // the senior-reviewed canonical one is a proven complete solution. Quality
251
+ // reranking must prefer the reviewed+endorsed lesson over the unreviewed partial.
252
+ {
253
+ query: 'CSRF protection missing on API mutations security',
254
+ relevant: ['auth:csrf:double-submit-cookie'],
255
+ },
226
256
  ];
@@ -6,21 +6,23 @@ import { ckgSlug, extractProblemConcept, ckgUpsertNode, ckgUpdateEdge } from '..
6
6
  import { safeJsonParse } from '../utils.js';
7
7
  import type { CKGEdge, CKGNode } from '../ckg.js';
8
8
  import { keywordSearch, tokenize, splitMultiQuery, levenshtein,
9
- ZERO_RESULTS_LOG, zeroResultsTotal, indexVocab as _indexVocab } from '../search.js';
10
- import type { KeywordMatch } from '../search.js';
9
+ indexVocab as _indexVocab } from '../search.js';
11
10
  import { rerankByQuality } from '../rerank.js';
12
- import { computeEmbedding, hasEmbedProvider, embedProviderHint, EMBED_PROVIDER } from '../embeddings.js';
13
- import { detectNamespace } from '../namespace.js';
11
+ import { computeEmbedding, hasEmbedProvider } from '../embeddings.js';
14
12
 
15
13
  // ── Changelog (shown once per version in session_start) ──────────────────────
16
- const MCP_VERSION = '0.10.51';
14
+ const MCP_VERSION = '0.10.52';
17
15
  const WHATS_NEW: Record<string, string[]> = {
18
- '0.10.51': [
16
+ '0.10.52': [
19
17
  `🆕 **What's new in v${MCP_VERSION}:**`,
20
- ` ✅ \`team_confirm\` — endorse a lesson in code/knowledge review; reviewed knowledge ranks higher (🛡️ senior / ✔️ peer)`,
21
- ` ✅ Governance-aware recall — human-confirmed lessons outrank unreviewed auto-learned entries`,
22
- ` ✅ \`team_recall\` — shows reviewer badges and sorts confirmed lessons first`,
23
- ` 💡 Run \`team_confirm(topic, reviewer, level="senior")\` to bless the canonical solution`,
18
+ ` ✅ \`smart_recall\` — CKG traversal as Layer 3: finds lessons that FIXED causal-graph-similar problems (🕸️ causal graph badge)`,
19
+ ` ✅ Bench corpus expanded: governance adversarial pair proves review-boost end-to-end (+22% P@1 headline)`,
20
+ ` 🔧 Import cleanup: unused symbols removed from brain.ts (no functional change)`,
21
+ ` 💡 \`smart_recall\` now shows keyword / semantic / CKG / hybrid match type for every result`,
22
+ ],
23
+ '0.10.51': [
24
+ ` ✅ \`team_confirm\` — human review raises lesson recall ranking (🛡️ senior / ✔️ peer)`,
25
+ ` ✅ Governance-aware recall — confirmed lessons outrank unreviewed auto-learned entries`,
24
26
  ],
25
27
  '0.10.50': [
26
28
  ` ✅ \`smart_recall\` — unified keyword + semantic hybrid list (one ranked result, not two sections)`,
@@ -595,8 +597,8 @@ export async function handleBrainTool(
595
597
  // BM25 quality scores (already reranked) are re-normalized to [0,1] for merging.
596
598
  type HybridResult = {
597
599
  key: string; content: string; hybridScore: number;
598
- bm25Score?: number; semScore?: number; matchedWords?: string[];
599
- matchType: 'keyword' | 'semantic' | 'hybrid'; subQuery?: string;
600
+ bm25Score?: number; semScore?: number; ckgScore?: number; matchedWords?: string[];
601
+ matchType: 'keyword' | 'semantic' | 'ckg' | 'hybrid'; subQuery?: string;
600
602
  };
601
603
 
602
604
  const bm25Scores = kwMatches.map(m => m.score);
@@ -626,6 +628,54 @@ export async function handleBrainTool(
626
628
  });
627
629
  }
628
630
  }
631
+ // ── Layer 3: CKG traversal — follow "fixes" edges to find lessons that solved
632
+ // structurally similar problems, even when vocabulary differs ───────────────
633
+ try {
634
+ const qTokens = tokenize(query).filter(t => t.length >= 4).slice(0, 4);
635
+ const candidateNodeIds = new Set<string>();
636
+ for (const token of qTokens) {
637
+ const nodeStream = redis.scanStream({ match: `cachly:ckg:node:*${token}*`, count: 20 });
638
+ await new Promise<void>((res, rej) => {
639
+ nodeStream.on('data', (batch: string[]) => {
640
+ for (const k of batch.slice(0, 5)) candidateNodeIds.add(k.replace('cachly:ckg:node:', ''));
641
+ });
642
+ nodeStream.on('end', res);
643
+ nodeStream.on('error', rej);
644
+ });
645
+ }
646
+
647
+ const seenFroms = new Set<string>();
648
+ for (const nodeId of [...candidateNodeIds].slice(0, 12)) {
649
+ const inboundEdgeKeys = await redis.smembers(`cachly:ckg:idx:to:${nodeId}`);
650
+ for (const ek of inboundEdgeKeys.slice(0, 6)) {
651
+ const er = await redis.get(ek);
652
+ if (!er) continue;
653
+ const edge = safeJsonParse<CKGEdge | null>(er, null);
654
+ if (!edge || edge.edgeType !== 'fixes' || edge.confidence < 0.35) continue;
655
+ if (seenFroms.has(edge.from)) continue;
656
+ seenFroms.add(edge.from);
657
+
658
+ const lessonKey = `cachly:lesson:best:${edge.from}`;
659
+ const existing = hybridMap.get(lessonKey);
660
+ if (existing) {
661
+ // Already found by BM25/semantic — boost with causal confirmation
662
+ existing.ckgScore = Math.max(existing.ckgScore ?? 0, edge.confidence);
663
+ existing.hybridScore = existing.hybridScore * 0.88 + edge.confidence * 0.12;
664
+ if (existing.matchType === 'keyword') existing.matchType = 'hybrid';
665
+ } else {
666
+ const content = await redis.get(lessonKey).catch(() => null);
667
+ if (!content) continue;
668
+ hybridMap.set(lessonKey, {
669
+ key: lessonKey, content,
670
+ ckgScore: edge.confidence,
671
+ hybridScore: edge.confidence * 0.30, // CKG-only: lower than text hits
672
+ matchType: 'ckg',
673
+ });
674
+ }
675
+ }
676
+ }
677
+ } catch { /* non-critical — keyword + semantic always available */ }
678
+
629
679
  const hybridResults = [...hybridMap.values()].sort((a, b) => b.hybridScore - a.hybridScore);
630
680
 
631
681
  // ── Build output ──────────────────────────────────────────────────────────
@@ -645,8 +695,13 @@ export async function handleBrainTool(
645
695
  }
646
696
 
647
697
  if (hybridResults.length > 0) {
648
- const modeLabel = semHits.length > 0
698
+ const hasCKG = hybridResults.some(r => r.ckgScore !== undefined);
699
+ const modeLabel = semHits.length > 0 && hasCKG
700
+ ? `keyword + semantic + CKG hybrid`
701
+ : semHits.length > 0
649
702
  ? `keyword + semantic hybrid`
703
+ : hasCKG
704
+ ? `keyword + CKG hybrid`
650
705
  : `keyword`;
651
706
  lines.push(`### 🔍 Results (${hybridResults.length} — ${modeLabel})\n`);
652
707
 
@@ -662,7 +717,11 @@ export async function handleBrainTool(
662
717
  lines.push(`**Topic: "${sq}"** (${results.length} results)\n`);
663
718
  for (const r of results.slice(0, 4)) {
664
719
  const label = r.key.replace('cachly:ctx:', '📝 ').replace('cachly:lesson:best:', '💡 ').replace('cachly:idx:', '📂 ');
665
- const scorePart = r.matchType === 'hybrid'
720
+ const scorePart = r.matchType === 'ckg'
721
+ ? `CKG: ${(r.ckgScore ?? 0).toFixed(2)}, 🕸️ causal graph`
722
+ : r.ckgScore !== undefined && r.bm25Score !== undefined
723
+ ? `BM25: ${(r.bm25Score).toFixed(2)}, CKG: ${(r.ckgScore).toFixed(2)}, 🔀 hybrid`
724
+ : r.matchType === 'hybrid'
666
725
  ? `BM25: ${(r.bm25Score ?? 0).toFixed(2)}, sem: ${((r.semScore ?? 0) * 100).toFixed(0)}%, 🔀 hybrid`
667
726
  : r.matchType === 'semantic'
668
727
  ? `sem: ${((r.semScore ?? 0) * 100).toFixed(0)}%, 🎯 semantic`