Commit 679909b
feat(mcp): redesign variant_details card with parent-derived context
Variants don't carry uom, default supplier, or batch-tracking on their
attrs model — those live on the parent product/material. The previous
card forced agents to guess UoM (e.g., "250 = 250ml presumably"). Now
the impl bulk-fetches parents + suppliers from the cache and the card
surfaces UoM, default supplier, batch-tracked status, and config
attributes inline. Raw IDs are deprioritized to a footer-style row.
- Add uom, default_supplier_id, default_supplier_name, is_batch_tracked
to VariantDetailsResponse
- Add _enrich_variants_with_parent helper: 3 bulk cache queries
(products, materials, suppliers) per get_variant_details call,
regardless of variant count
- Rewrite build_variant_details_ui as 4-tier layout (identity → metrics
→ reference → actions); price formatter shows "\$X / uom" suffix when
uom isn't pcs/ea
- Add 5 behavior tests covering UoM render/omit, config-attr badges,
supplier name, and graceful fallback when parent lookup is empty
Closes #538.
Co-Authored-By: Claude <noreply@anthropic.com>1 parent 746d17d commit 679909b
5 files changed
Lines changed: 364 additions & 52 deletions
File tree
- katana_mcp_server
- src/katana_mcp/tools
- foundation
- tests
- tools
Lines changed: 93 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1236 | 1236 | | |
1237 | 1237 | | |
1238 | 1238 | | |
| 1239 | + | |
| 1240 | + | |
| 1241 | + | |
| 1242 | + | |
| 1243 | + | |
| 1244 | + | |
1239 | 1245 | | |
1240 | 1246 | | |
1241 | 1247 | | |
| |||
1253 | 1259 | | |
1254 | 1260 | | |
1255 | 1261 | | |
| 1262 | + | |
| 1263 | + | |
| 1264 | + | |
| 1265 | + | |
| 1266 | + | |
| 1267 | + | |
| 1268 | + | |
1256 | 1269 | | |
1257 | 1270 | | |
1258 | 1271 | | |
| |||
1302 | 1315 | | |
1303 | 1316 | | |
1304 | 1317 | | |
1305 | | - | |
| 1318 | + | |
| 1319 | + | |
| 1320 | + | |
| 1321 | + | |
| 1322 | + | |
| 1323 | + | |
1306 | 1324 | | |
1307 | 1325 | | |
1308 | | - | |
1309 | | - | |
| 1326 | + | |
| 1327 | + | |
| 1328 | + | |
| 1329 | + | |
| 1330 | + | |
1310 | 1331 | | |
1311 | 1332 | | |
1312 | 1333 | | |
| |||
1317 | 1338 | | |
1318 | 1339 | | |
1319 | 1340 | | |
| 1341 | + | |
1320 | 1342 | | |
1321 | 1343 | | |
1322 | 1344 | | |
| |||
1327 | 1349 | | |
1328 | 1350 | | |
1329 | 1351 | | |
| 1352 | + | |
| 1353 | + | |
| 1354 | + | |
| 1355 | + | |
1330 | 1356 | | |
1331 | 1357 | | |
1332 | 1358 | | |
| |||
1341 | 1367 | | |
1342 | 1368 | | |
1343 | 1369 | | |
| 1370 | + | |
| 1371 | + | |
| 1372 | + | |
| 1373 | + | |
| 1374 | + | |
| 1375 | + | |
| 1376 | + | |
| 1377 | + | |
| 1378 | + | |
| 1379 | + | |
| 1380 | + | |
| 1381 | + | |
| 1382 | + | |
| 1383 | + | |
| 1384 | + | |
| 1385 | + | |
| 1386 | + | |
| 1387 | + | |
| 1388 | + | |
| 1389 | + | |
| 1390 | + | |
| 1391 | + | |
| 1392 | + | |
| 1393 | + | |
| 1394 | + | |
| 1395 | + | |
| 1396 | + | |
| 1397 | + | |
| 1398 | + | |
| 1399 | + | |
| 1400 | + | |
| 1401 | + | |
| 1402 | + | |
| 1403 | + | |
| 1404 | + | |
| 1405 | + | |
| 1406 | + | |
| 1407 | + | |
| 1408 | + | |
| 1409 | + | |
| 1410 | + | |
1344 | 1411 | | |
1345 | 1412 | | |
1346 | 1413 | | |
| |||
1404 | 1471 | | |
1405 | 1472 | | |
1406 | 1473 | | |
1407 | | - | |
| 1474 | + | |
1408 | 1475 | | |
1409 | 1476 | | |
1410 | 1477 | | |
1411 | | - | |
| 1478 | + | |
1412 | 1479 | | |
1413 | 1480 | | |
1414 | 1481 | | |
1415 | | - | |
| 1482 | + | |
| 1483 | + | |
| 1484 | + | |
| 1485 | + | |
| 1486 | + | |
| 1487 | + | |
| 1488 | + | |
| 1489 | + | |
| 1490 | + | |
| 1491 | + | |
| 1492 | + | |
| 1493 | + | |
| 1494 | + | |
| 1495 | + | |
| 1496 | + | |
| 1497 | + | |
| 1498 | + | |
| 1499 | + | |
| 1500 | + | |
| 1501 | + | |
| 1502 | + | |
1416 | 1503 | | |
1417 | 1504 | | |
1418 | 1505 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
232 | 232 | | |
233 | 233 | | |
234 | 234 | | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
235 | 343 | | |
236 | 344 | | |
237 | 345 | | |
238 | | - | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
239 | 362 | | |
240 | | - | |
241 | | - | |
242 | | - | |
243 | | - | |
244 | | - | |
245 | | - | |
246 | | - | |
247 | | - | |
| 363 | + | |
| 364 | + | |
248 | 365 | | |
249 | 366 | | |
250 | 367 | | |
251 | 368 | | |
252 | 369 | | |
253 | | - | |
254 | | - | |
255 | | - | |
| 370 | + | |
256 | 371 | | |
257 | 372 | | |
258 | 373 | | |
259 | | - | |
260 | | - | |
261 | | - | |
| 374 | + | |
262 | 375 | | |
263 | | - | |
264 | 376 | | |
265 | | - | |
266 | | - | |
267 | | - | |
268 | | - | |
269 | | - | |
270 | | - | |
271 | | - | |
272 | | - | |
273 | | - | |
274 | | - | |
275 | | - | |
276 | | - | |
277 | | - | |
278 | | - | |
| 377 | + | |
279 | 378 | | |
280 | 379 | | |
281 | | - | |
282 | | - | |
283 | | - | |
284 | | - | |
285 | | - | |
286 | | - | |
287 | | - | |
288 | | - | |
289 | | - | |
290 | | - | |
291 | | - | |
292 | | - | |
293 | | - | |
294 | | - | |
| 380 | + | |
295 | 381 | | |
296 | 382 | | |
297 | 383 | | |
| |||
0 commit comments