@velvetmonkey/flywheel-memory 2.0.46 → 2.0.47

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.
Files changed (2) hide show
  1. package/dist/index.js +7 -6
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -3493,7 +3493,7 @@ import {
3493
3493
  } from "@velvetmonkey/vault-core";
3494
3494
 
3495
3495
  // src/core/write/wikilinkFeedback.ts
3496
- var MIN_FEEDBACK_COUNT = 10;
3496
+ var MIN_FEEDBACK_COUNT = 5;
3497
3497
  var SUPPRESSION_THRESHOLD = 0.3;
3498
3498
  var FEEDBACK_BOOST_MIN_SAMPLES = 5;
3499
3499
  var FOLDER_SUPPRESSION_MIN_COUNT = 5;
@@ -3544,7 +3544,7 @@ function getEntityStats(stateDb2) {
3544
3544
  SUM(CASE WHEN correct = 1 THEN 1 ELSE 0 END) as correct_count,
3545
3545
  SUM(CASE WHEN correct = 0 THEN 1 ELSE 0 END) as incorrect_count
3546
3546
  FROM wikilink_feedback
3547
- GROUP BY entity
3547
+ GROUP BY entity COLLATE NOCASE
3548
3548
  ORDER BY total DESC
3549
3549
  `).all();
3550
3550
  return rows.map((r) => {
@@ -3566,7 +3566,7 @@ function updateSuppressionList(stateDb2) {
3566
3566
  COUNT(*) as total,
3567
3567
  SUM(CASE WHEN correct = 0 THEN 1 ELSE 0 END) as false_positives
3568
3568
  FROM wikilink_feedback
3569
- GROUP BY entity
3569
+ GROUP BY entity COLLATE NOCASE
3570
3570
  HAVING total >= ?
3571
3571
  `).all(MIN_FEEDBACK_COUNT);
3572
3572
  let updated = 0;
@@ -3596,7 +3596,7 @@ function updateSuppressionList(stateDb2) {
3596
3596
  }
3597
3597
  function isSuppressed(stateDb2, entity, folder) {
3598
3598
  const row = stateDb2.db.prepare(
3599
- "SELECT entity FROM wikilink_suppressions WHERE entity = ?"
3599
+ "SELECT entity FROM wikilink_suppressions WHERE entity = ? COLLATE NOCASE"
3600
3600
  ).get(entity);
3601
3601
  if (row) return true;
3602
3602
  if (folder !== void 0) {
@@ -3605,7 +3605,7 @@ function isSuppressed(stateDb2, entity, folder) {
3605
3605
  COUNT(*) as total,
3606
3606
  SUM(CASE WHEN correct = 0 THEN 1 ELSE 0 END) as false_positives
3607
3607
  FROM wikilink_feedback
3608
- WHERE entity = ? AND (
3608
+ WHERE entity = ? COLLATE NOCASE AND (
3609
3609
  CASE WHEN ? = '' THEN note_path NOT LIKE '%/%'
3610
3610
  ELSE note_path LIKE ? || '/%'
3611
3611
  END
@@ -3629,7 +3629,7 @@ function getSuppressedCount(stateDb2) {
3629
3629
  function getSuppressedEntities(stateDb2) {
3630
3630
  return stateDb2.db.prepare(`
3631
3631
  SELECT s.entity, s.false_positive_rate,
3632
- COALESCE((SELECT COUNT(*) FROM wikilink_feedback WHERE entity = s.entity), 0) as total
3632
+ COALESCE((SELECT COUNT(*) FROM wikilink_feedback WHERE entity = s.entity COLLATE NOCASE), 0) as total
3633
3633
  FROM wikilink_suppressions s
3634
3634
  ORDER BY s.false_positive_rate DESC
3635
3635
  `).all();
@@ -18332,6 +18332,7 @@ async function runPostIndexWork(index) {
18332
18332
  const mentions = [];
18333
18333
  for (const entity of entitiesAfter) {
18334
18334
  if (linked.has(entity.nameLower)) continue;
18335
+ if (stateDb && isSuppressed(stateDb, entity.name)) continue;
18335
18336
  const matches = findEntityMatches2(content, entity.name, true);
18336
18337
  const valid = matches.some((m) => !rangeOverlapsProtectedZone(m.start, m.end, zones));
18337
18338
  if (valid) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@velvetmonkey/flywheel-memory",
3
- "version": "2.0.46",
3
+ "version": "2.0.47",
4
4
  "description": "MCP server that gives Claude full read/write access to your Obsidian vault. Select from 42 tools for search, backlinks, graph queries, mutations, and hybrid semantic search.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -52,7 +52,7 @@
52
52
  },
53
53
  "dependencies": {
54
54
  "@modelcontextprotocol/sdk": "^1.25.1",
55
- "@velvetmonkey/vault-core": "^2.0.46",
55
+ "@velvetmonkey/vault-core": "^2.0.47",
56
56
  "better-sqlite3": "^11.0.0",
57
57
  "chokidar": "^4.0.0",
58
58
  "gray-matter": "^4.0.3",