@prmichaelsen/remember-mcp 2.7.2 → 2.7.3

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/CHANGELOG.md CHANGED
@@ -5,6 +5,34 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [2.7.3] - 2026-02-17
9
+
10
+ ### Fixed
11
+
12
+ - **CRITICAL: Fixed `remember_update_memory` "Memory not found" error**
13
+ - Changed `handleUpdateMemory()` to use `fetchMemoryWithAllProperties()` wrapper
14
+ - Previously used direct `collection.query.fetchObjectById()` call without fallback
15
+ - Direct call failed when querying memories with certain property configurations (e.g., `parent_id: ""`)
16
+ - Wrapper provides graceful fallback for schema evolution and property incompatibilities
17
+ - Matches pattern used in other working tools like `handlePublish()`
18
+
19
+ ### Root Cause
20
+
21
+ - `handleUpdateMemory()` bypassed the `fetchMemoryWithAllProperties()` abstraction layer
22
+ - Direct `fetchObjectById()` without property specification can fail on edge case property values
23
+ - Error was caught and converted to misleading "Memory not found" message
24
+ - Wrapper's try-catch with fallback handles these cases gracefully
25
+ - This fix ensures consistent behavior across all memory operations
26
+
27
+ ### Technical Details
28
+
29
+ - Modified: `src/tools/update-memory.ts` (lines 8, 140)
30
+ - Added import: `fetchMemoryWithAllProperties` from `weaviate/client.js`
31
+ - Replaced: `collection.query.fetchObjectById(id)` → `fetchMemoryWithAllProperties(collection, id)`
32
+ - Verified working in local testing with memories containing `parent_id: ""`
33
+
34
+ ---
35
+
8
36
  ## [2.7.2] - 2026-02-17
9
37
 
10
38
  ### Fixed
@@ -1948,7 +1948,7 @@ async function handleUpdateMemory(args, userId) {
1948
1948
  const collection = getMemoryCollection(userId);
1949
1949
  let existingMemory;
1950
1950
  try {
1951
- existingMemory = await collection.query.fetchObjectById(args.memory_id);
1951
+ existingMemory = await fetchMemoryWithAllProperties(collection, args.memory_id);
1952
1952
  } catch (fetchError) {
1953
1953
  const fetchErrorMsg = fetchError instanceof Error ? fetchError.message : String(fetchError);
1954
1954
  logger.error("Failed to fetch memory for update:", {
package/dist/server.js CHANGED
@@ -2016,7 +2016,7 @@ async function handleUpdateMemory(args, userId) {
2016
2016
  const collection = getMemoryCollection(userId);
2017
2017
  let existingMemory;
2018
2018
  try {
2019
- existingMemory = await collection.query.fetchObjectById(args.memory_id);
2019
+ existingMemory = await fetchMemoryWithAllProperties(collection, args.memory_id);
2020
2020
  } catch (fetchError) {
2021
2021
  const fetchErrorMsg = fetchError instanceof Error ? fetchError.message : String(fetchError);
2022
2022
  logger.error("Failed to fetch memory for update:", {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prmichaelsen/remember-mcp",
3
- "version": "2.7.2",
3
+ "version": "2.7.3",
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
 
6
6
  import type { Memory, MemoryUpdate } from '../types/memory.js';
7
7
  import { getMemoryCollection } from '../weaviate/schema.js';
8
+ import { fetchMemoryWithAllProperties } from '../weaviate/client.js';
8
9
  import { logger } from '../utils/logger.js';
9
10
  import { handleToolError, withErrorHandling } from '../utils/error-handler.js';
10
11
  import { isValidContentType } from '../constants/content-types.js';
@@ -133,9 +134,10 @@ export async function handleUpdateMemory(
133
134
  // Get existing memory - fetch ALL properties for replace operation
134
135
  // We need the full object to use replace() instead of update()
135
136
  // (Weaviate bug: update() only persists if vectorized fields change)
137
+ // Use fetchMemoryWithAllProperties() to handle schema evolution gracefully
136
138
  let existingMemory;
137
139
  try {
138
- existingMemory = await collection.query.fetchObjectById(args.memory_id);
140
+ existingMemory = await fetchMemoryWithAllProperties(collection, args.memory_id);
139
141
  } catch (fetchError) {
140
142
  const fetchErrorMsg = fetchError instanceof Error ? fetchError.message : String(fetchError);
141
143
  logger.error('Failed to fetch memory for update:', {