Commit fabdc54
authored
* planning: Add design for SDK rework against compacted tool surface
The memoryhub SDK still calls per-action MCP tools but the deployed
primary server only exposes register_session + memory after #198/#202.
Issue #202 called for keeping per-action tools as deprecation aliases;
that step was skipped. The kagenti-adk integration in kagenti/adk#231
hit this when run against the live server.
Decision recorded: take the SDK forward to the new surface rather
than back-porting server-side aliases. Public method signatures stay
stable; only the wire format changes. Bump SDK 0.6.0 → 0.7.0.
Tracks #210.
Assisted-by: Claude Code (Opus 4.7)
Signed-off-by: rdwj <wjackson@redhat.com>
* sdk: Rework client against compacted memory(action=...) tool surface
Every public MemoryHubClient method now dispatches through the
unified `memory` tool (#198/#202) instead of the legacy per-action
tool names. Public Python API is unchanged — only the wire format
changes. This restores end-to-end behavior against the primary
memory-hub-mcp deployment, which exposes only register_session +
memory after the consolidation.
The cutover replaces the deprecation-alias path that was scoped in
#202 but never shipped.
Signature stability is the load-bearing property here: the
kagenti-adk MemoryStore wrapper (kagenti/adk#231) calls search,
write, read, update, delete, etc. directly — those signatures are
preserved, so consumers only need to bump the dependency pin.
Smoke-tested against the live primary server: search, get_session,
and list_projects all succeed. Note: server-side max_results
behavior on search appears to over-return appendix entries; that's
a separate server bug, not SDK.
Tracks #210.
Assisted-by: Claude Code (Opus 4.7)
Signed-off-by: rdwj <wjackson@redhat.com>
* sdk: Bump to 0.7.0 with BREAKING wire-format note
The 0.6.0 → 0.7.0 cutover swaps every MCP tool call from the legacy
per-action names to memory(action=..., options={...}). Public Python
API is unchanged but the wire format is incompatible with servers
that only expose the per-action surface, and 0.6.0 is incompatible
with the primary memory-hub-mcp deployment.
Tracks #210.
Assisted-by: Claude Code (Opus 4.7)
Signed-off-by: rdwj <wjackson@redhat.com>
* sdk: Add kagenti-adk contract test (#208)
Pins the SDK surface that kagenti-adk's MemoryHubMemoryStoreInstance
depends on: constructor (api_key + OAuth modes), search/write/read/
update/delete signatures, the WriteResult.curation.reason path that
the wrapper raises MemoryRejectionError on, and NotFoundError on
missing-id reads/deletes.
Uses the SDK's existing mocked transport — no live server needed.
A failure here is the cue to coordinate with kagenti-adk maintainers
before shipping the SDK release.
Closes #208.
Assisted-by: Claude Code (Opus 4.7)
Signed-off-by: rdwj <wjackson@redhat.com>
---------
Signed-off-by: rdwj <wjackson@redhat.com>
1 parent 9fb9aa8 commit fabdc54
6 files changed
Lines changed: 700 additions & 202 deletions
File tree
- planning
- sdk
- src/memoryhub
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
6 | 20 | | |
7 | 21 | | |
8 | 22 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| |||
0 commit comments