@prmichaelsen/remember-mcp 1.0.1 → 1.0.2

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.
@@ -2,7 +2,7 @@
2
2
 
3
3
  project:
4
4
  name: remember-mcp
5
- version: 0.2.5
5
+ version: 1.0.1
6
6
  started: 2026-02-11
7
7
  status: in_progress
8
8
  current_milestone: M5
@@ -378,6 +378,31 @@ progress:
378
378
  overall: 50%
379
379
 
380
380
  recent_work:
381
+ - date: 2026-02-12
382
+ description: v1.0.1 Released - Or Operator Bug Fix
383
+ items:
384
+ - 🎉 v1.0.1 RELEASED - Patch release with bug fix
385
+ - 🐛 Fixed "no children for operator Or" error
386
+ - ✅ Added validation to filter out undefined/null values in filter combinations
387
+ - ✅ Updated combineFiltersWithOr to validate operands
388
+ - ✅ Updated combineFiltersWithAnd to validate operands
389
+ - ✅ Added 3 new edge case tests for undefined/null handling
390
+ - ✅ All 57 tests passing (up from 54)
391
+ - ✅ Code coverage: 90.56% on weaviate-filters.ts
392
+ - ✅ Build successful
393
+ - ✅ CHANGELOG.md updated
394
+
395
+ - date: 2026-02-12
396
+ description: v1.0.0 Released - Major Version with Breaking Changes
397
+ items:
398
+ - 🎉 v1.0.0 RELEASED - First stable release
399
+ - 🚨 BREAKING: createServer is now async (returns Promise<Server>)
400
+ - ✅ Database initialization now uses await pattern
401
+ - ✅ Server factory properly waits for databases before accepting requests
402
+ - ✅ Updated all server-factory tests for async
403
+ - ✅ All 54 tests passing
404
+ - ✅ CHANGELOG.md created with migration guide
405
+
381
406
  - date: 2026-02-12
382
407
  description: Task 20 COMPLETED - Weaviate v3 Filters & Relationship Search
383
408
  items:
@@ -390,12 +415,11 @@ recent_work:
390
415
  - ✅ Updated search-memory.ts to search BOTH memories AND relationships by default
391
416
  - ✅ Updated query-memory.ts to use v3 filters
392
417
  - ✅ Results now separated into memories and relationships arrays
393
- - ✅ All 25 unit tests passing
418
+ - ✅ 29 new unit tests for filter builders
394
419
  - ✅ Build successful
395
420
  - ✅ TypeScript compiles without errors
396
421
  - 🔧 Fixed gRPC "paths needs to have an uneven number of components" error
397
422
  - 🔧 Replaced old v2 filter format (path/operator/valueText) with v3 fluent API
398
- - 📋 Ready for M5: Template System
399
423
 
400
424
  - date: 2026-02-12
401
425
  description: Project Status Review & Documentation Update
@@ -513,10 +537,11 @@ build_status:
513
537
  - ✅ Source maps generated
514
538
  - ✅ Type definitions generated (.d.ts files)
515
539
  - ✅ Package exports configured for both entry points
516
- - ✅ Version 0.2.5 published
517
- - ✅ 28 TypeScript source files (added weaviate-filters.ts)
540
+ - ✅ Version 1.0.1 published (patch release)
541
+ - ✅ 29 TypeScript source files (added weaviate-filters.ts)
518
542
  - ✅ All 12 tools implemented
519
543
  - ✅ Weaviate v3 filter API implemented
544
+ - ✅ Or/And operator validation implemented
520
545
 
521
546
  tools_status:
522
547
  memory_tools:
@@ -552,9 +577,15 @@ task_20_completion:
552
577
  date: 2026-02-12
553
578
  files_created:
554
579
  - src/utils/weaviate-filters.ts
580
+ - src/utils/weaviate-filters.spec.ts
581
+ - CHANGELOG.md
555
582
  files_modified:
556
583
  - src/tools/search-memory.ts
557
584
  - src/tools/query-memory.ts
585
+ - src/server-factory.ts
586
+ - src/server-factory.spec.ts
587
+ - tsconfig.json
588
+ - package.json
558
589
  key_changes:
559
590
  - Replaced v2 filter format with v3 fluent API
560
591
  - Implemented OR logic to search both memories and relationships
@@ -562,5 +593,11 @@ task_20_completion:
562
593
  - Added buildMemoryOnlyFilters() for backward compatibility
563
594
  - Updated search-memory to return both memories and relationships
564
595
  - Fixed gRPC "paths needs to have an uneven number of components" error
565
- tests_passing: 25/26 (1 skipped integration test)
596
+ - Fixed "no children for operator Or" error with validation
597
+ - Made createServer async for proper initialization (BREAKING CHANGE)
598
+ - Added 32 new unit tests (29 filter tests + 3 edge case tests)
599
+ tests_passing: 57/58 (1 skipped integration test)
566
600
  build_status: successful
601
+ releases:
602
+ - v1.0.0: Major release with breaking change (async createServer)
603
+ - v1.0.1: Patch release with Or operator bug fix
@@ -1408,6 +1408,7 @@ async function handleCreateMemory(args, userId, context) {
1408
1408
  }
1409
1409
 
1410
1410
  // src/utils/weaviate-filters.ts
1411
+ import { Filters } from "weaviate-client";
1411
1412
  function buildCombinedSearchFilters(collection, filters) {
1412
1413
  const memoryFilters = buildDocTypeFilters(collection, "memory", filters);
1413
1414
  const relationshipFilters = buildDocTypeFilters(collection, "relationship", filters);
@@ -1490,10 +1491,7 @@ function combineFiltersWithAnd(filters) {
1490
1491
  if (validFilters.length === 1) {
1491
1492
  return validFilters[0];
1492
1493
  }
1493
- return {
1494
- operator: "And",
1495
- operands: validFilters
1496
- };
1494
+ return Filters.and(...validFilters);
1497
1495
  }
1498
1496
  function combineFiltersWithOr(filters) {
1499
1497
  const validFilters = filters.filter((f) => f !== void 0 && f !== null);
@@ -1503,10 +1501,7 @@ function combineFiltersWithOr(filters) {
1503
1501
  if (validFilters.length === 1) {
1504
1502
  return validFilters[0];
1505
1503
  }
1506
- return {
1507
- operator: "Or",
1508
- operands: validFilters
1509
- };
1504
+ return Filters.or(...validFilters);
1510
1505
  }
1511
1506
 
1512
1507
  // src/tools/search-memory.ts
package/dist/server.js CHANGED
@@ -1337,6 +1337,7 @@ async function handleCreateMemory(args, userId, context) {
1337
1337
  }
1338
1338
 
1339
1339
  // src/utils/weaviate-filters.ts
1340
+ import { Filters } from "weaviate-client";
1340
1341
  function buildCombinedSearchFilters(collection, filters) {
1341
1342
  const memoryFilters = buildDocTypeFilters(collection, "memory", filters);
1342
1343
  const relationshipFilters = buildDocTypeFilters(collection, "relationship", filters);
@@ -1419,10 +1420,7 @@ function combineFiltersWithAnd(filters) {
1419
1420
  if (validFilters.length === 1) {
1420
1421
  return validFilters[0];
1421
1422
  }
1422
- return {
1423
- operator: "And",
1424
- operands: validFilters
1425
- };
1423
+ return Filters.and(...validFilters);
1426
1424
  }
1427
1425
  function combineFiltersWithOr(filters) {
1428
1426
  const validFilters = filters.filter((f) => f !== void 0 && f !== null);
@@ -1432,10 +1430,7 @@ function combineFiltersWithOr(filters) {
1432
1430
  if (validFilters.length === 1) {
1433
1431
  return validFilters[0];
1434
1432
  }
1435
- return {
1436
- operator: "Or",
1437
- operands: validFilters
1438
- };
1433
+ return Filters.or(...validFilters);
1439
1434
  }
1440
1435
 
1441
1436
  // src/tools/search-memory.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prmichaelsen/remember-mcp",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Multi-tenant memory system MCP server with vector search and relationships",
5
5
  "main": "dist/server.js",
6
6
  "type": "module",
@@ -5,6 +5,7 @@
5
5
  * Replaces old v2 filter format (path/operator/valueText) with v3 collection.filter.byProperty()
6
6
  */
7
7
 
8
+ import { Filters } from 'weaviate-client';
8
9
  import type { SearchFilters } from '../types/memory.js';
9
10
 
10
11
  /**
@@ -175,12 +176,8 @@ function combineFiltersWithAnd(filters: any[]): any {
175
176
  return validFilters[0];
176
177
  }
177
178
 
178
- // Weaviate v3 uses operator/operands structure for combining filters
179
- // Only create And operator if we have 2+ valid filters
180
- return {
181
- operator: 'And',
182
- operands: validFilters
183
- };
179
+ // Weaviate v3 uses Filters.and() from weaviate-client package
180
+ return Filters.and(...validFilters);
184
181
  }
185
182
 
186
183
  /**
@@ -200,12 +197,8 @@ function combineFiltersWithOr(filters: any[]): any {
200
197
  return validFilters[0];
201
198
  }
202
199
 
203
- // Weaviate v3 uses operator/operands structure for combining filters
204
- // Only create Or operator if we have 2+ valid filters
205
- return {
206
- operator: 'Or',
207
- operands: validFilters
208
- };
200
+ // Weaviate v3 uses Filters.or() from weaviate-client package
201
+ return Filters.or(...validFilters);
209
202
  }
210
203
 
211
204
  /**