Commit 6f114fc
committed
fix(client): list_all_tools prunes per-tool cache state on terminal page
Cubic P2 on PR #3083: a multi-page list_all_tools() drain called
list_tools() with a non-None cursor on every page, so
_absorb_tool_listing(complete=True) was never reached and the
per-tool cache (_x_mcp_header_maps, _tool_output_schemas) was
left in an additive-only state. Tools that had been present in
a prior list_tools() call but were absent from the drained
listing kept their cache entries indefinitely.
Run _absorb_tool_listing once more with complete=True on the
merged result after the loop ends. The merged listing is the
drained universe, so complete=True prunes cache entries for
tools no longer present, mirroring the single-page complete
listing semantic.
Test: seed the cache with stale-tool via a single-page complete
listing, then drain survivor across two pages, assert the
cache reflects only the drained universe. A second test asserts
the inverse: if every drained tool is in the union, all cache
entries stay.1 parent 66a12d4 commit 6f114fc
2 files changed
Lines changed: 84 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1195 | 1195 | | |
1196 | 1196 | | |
1197 | 1197 | | |
1198 | | - | |
1199 | | - | |
1200 | | - | |
| 1198 | + | |
| 1199 | + | |
| 1200 | + | |
| 1201 | + | |
| 1202 | + | |
| 1203 | + | |
| 1204 | + | |
1201 | 1205 | | |
1202 | 1206 | | |
1203 | 1207 | | |
| |||
1206 | 1210 | | |
1207 | 1211 | | |
1208 | 1212 | | |
1209 | | - | |
| 1213 | + | |
| 1214 | + | |
| 1215 | + | |
| 1216 | + | |
| 1217 | + | |
| 1218 | + | |
1210 | 1219 | | |
1211 | 1220 | | |
1212 | 1221 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1158 | 1158 | | |
1159 | 1159 | | |
1160 | 1160 | | |
| 1161 | + | |
| 1162 | + | |
| 1163 | + | |
| 1164 | + | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
| 1185 | + | |
| 1186 | + | |
| 1187 | + | |
| 1188 | + | |
| 1189 | + | |
| 1190 | + | |
| 1191 | + | |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
| 1195 | + | |
| 1196 | + | |
| 1197 | + | |
| 1198 | + | |
| 1199 | + | |
| 1200 | + | |
| 1201 | + | |
| 1202 | + | |
| 1203 | + | |
| 1204 | + | |
| 1205 | + | |
| 1206 | + | |
| 1207 | + | |
| 1208 | + | |
| 1209 | + | |
| 1210 | + | |
| 1211 | + | |
| 1212 | + | |
| 1213 | + | |
| 1214 | + | |
| 1215 | + | |
| 1216 | + | |
| 1217 | + | |
| 1218 | + | |
| 1219 | + | |
| 1220 | + | |
| 1221 | + | |
| 1222 | + | |
| 1223 | + | |
| 1224 | + | |
| 1225 | + | |
| 1226 | + | |
| 1227 | + | |
| 1228 | + | |
| 1229 | + | |
| 1230 | + | |
| 1231 | + | |
0 commit comments