Surfaced during #169 (generic backend-typed MemoryClient) and deferred from it as out of scope: several MCP tools and framework-integration wrappers still expose parameters that are no-ops on both backends. This is pre-existing — #169 did not change the runtime behavior or these public signatures — but the params (and their docstrings) mislead callers.
Affected sites
src/neo4j_agent_memory/mcp/_tools.py
memory_set_entity_feedback(..., user_identifier=...) — ignored
memory_get_entity_history(..., limit=...) — not applied
memory_get_reflections(..., limit=...) — not applied
src/neo4j_agent_memory/integrations/pydantic_ai/memory.py
set_entity_feedback(..., user_identifier=...) — ignored
get_entity_history(..., limit=...) — not applied
src/neo4j_agent_memory/integrations/strands/tools.py
set_entity_feedback(..., user_id=...) — ignored
Why they're inert
On the bolt backend get_entity_history / get_reflections / set_entity_feedback raise NotSupportedError (Platinum/NAMS-only). On NAMS, the feedback endpoint reads only user_score/confirmed (ignores user_identifier/user_id), and history/reflections don't slice by limit. So neither backend honors these args, and the base Protocol correctly omits them (as of #169). The wrapper/tool surfaces were never updated.
Options
- Remove the inert params from the tool/wrapper signatures and drop the overclaiming docstring lines ("scopes to a user identity", "capped at
limit"). Simplest; honest surface.
- Honor them locally where cheap: apply
limit by slicing the returned list in the wrapper; and/or wire per-user scoping if/when a backend supports it (feature work).
Refs: #169 (resolved review threads), tracking issue #144.
Surfaced during #169 (generic backend-typed
MemoryClient) and deferred from it as out of scope: several MCP tools and framework-integration wrappers still expose parameters that are no-ops on both backends. This is pre-existing — #169 did not change the runtime behavior or these public signatures — but the params (and their docstrings) mislead callers.Affected sites
src/neo4j_agent_memory/mcp/_tools.pymemory_set_entity_feedback(..., user_identifier=...)— ignoredmemory_get_entity_history(..., limit=...)— not appliedmemory_get_reflections(..., limit=...)— not appliedsrc/neo4j_agent_memory/integrations/pydantic_ai/memory.pyset_entity_feedback(..., user_identifier=...)— ignoredget_entity_history(..., limit=...)— not appliedsrc/neo4j_agent_memory/integrations/strands/tools.pyset_entity_feedback(..., user_id=...)— ignoredWhy they're inert
On the bolt backend
get_entity_history/get_reflections/set_entity_feedbackraiseNotSupportedError(Platinum/NAMS-only). On NAMS, the feedback endpoint reads onlyuser_score/confirmed(ignoresuser_identifier/user_id), and history/reflections don't slice bylimit. So neither backend honors these args, and the base Protocol correctly omits them (as of #169). The wrapper/tool surfaces were never updated.Options
limit"). Simplest; honest surface.limitby slicing the returned list in the wrapper; and/or wire per-user scoping if/when a backend supports it (feature work).Refs: #169 (resolved review threads), tracking issue #144.