Léo
5f18767528
fix(mcp): show the route's rejection reason on the Integrations form too
...
The route now answers 400 with a message naming the expected shape.
admin.js was taught to print `data.detail`; the Unified Integrations
form in settings.js still printed `Failed (400)` and dropped it.
That gap is exactly where the new validation bites. The client-side
JSON.parse guard added alongside it catches unparseable input, so the
only values that reach the route's 400 are ones that parse but are not
a list — `"npx"`, `{}`, `null` — and for those the status code alone
tells the user nothing about what is wrong with what they typed.
Adds source-level coverage for both forms; the PR changed two JS files
with no test on either.
2026-09-30 17:15:52 +02:00
..
2026-09-17 10:07:40 +00:00
2026-06-03 00:30:03 +09:00
2026-09-21 06:54:03 +00:00
2026-09-17 10:07:40 +00:00
2026-09-11 06:04:19 +00:00
2026-06-03 14:17:02 +09:00
2026-06-04 03:05:37 +01:00
2026-09-17 10:07:40 +00:00
2026-09-11 06:04:19 +00:00
2026-06-03 08:57:47 +09:00
2026-06-01 22:04:00 +02:00
2026-09-11 06:04:19 +00:00
2026-09-30 12:54:09 +02:00
2026-08-16 21:03:05 +01:00
2026-09-17 10:07:40 +00:00
2026-09-17 10:07:40 +00:00
2026-09-17 10:07:40 +00:00
2026-06-03 14:16:55 +09:00
2026-09-22 13:12:19 +01:00
2026-09-22 13:12:19 +01:00
2026-08-14 08:10:30 +01:00
2026-09-21 06:54:03 +00:00
2026-09-21 06:54:03 +00:00
2026-08-14 08:10:30 +01:00
2026-09-11 06:04:19 +00:00
2026-09-17 10:07:40 +00:00
2026-09-11 06:04:19 +00:00
2026-08-07 19:34:50 +02:00
2026-07-23 14:49:02 +00:00
2026-09-17 10:07:40 +00:00
2026-09-17 10:07:40 +00:00
2026-09-17 10:07:40 +00:00
2026-09-17 10:07:40 +00:00
2026-06-24 19:44:09 +02:00
2026-06-03 13:23:35 +09:00
2026-09-17 10:07:40 +00:00
2026-09-17 10:07:40 +00:00
2026-09-21 06:54:03 +00:00
2026-09-22 23:26:43 +01:00
2026-09-17 10:07:40 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-17 10:07:40 +00:00
2026-09-21 06:54:03 +00:00
2026-06-27 13:05:44 +00:00
2026-06-23 10:24:31 +02:00
2026-06-05 02:28:42 +02:00
2026-09-11 06:04:19 +00:00
2026-09-17 10:07:40 +00:00
2026-09-21 06:54:03 +00:00
2026-09-17 10:07:40 +00:00
2026-09-21 06:54:03 +00:00
2026-09-17 10:07:40 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-08-10 20:11:48 +01:00
2026-09-17 10:07:40 +00:00
2026-09-17 10:07:40 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-06-15 21:20:15 +09:00
2026-09-22 13:12:19 +01:00
2026-09-21 06:54:03 +00:00
2026-06-03 14:16:52 +09:00
2026-08-10 20:11:48 +01:00
2026-09-17 10:07:40 +00:00
2026-06-02 11:29:29 +09:00
2026-09-11 06:04:19 +00:00
2026-06-02 11:12:54 +09:00
2026-09-11 06:04:19 +00:00
2026-06-08 10:19:18 +02:00
2026-09-22 13:12:19 +01:00
2026-09-17 10:07:40 +00:00
2026-09-22 23:26:43 +01:00
2026-09-17 10:07:40 +00:00
2026-08-16 21:03:05 +01:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-21 06:54:03 +00:00
2026-09-30 17:15:52 +02:00
2026-09-21 06:54:03 +00:00
2026-09-11 06:04:19 +00:00
2026-09-17 10:07:40 +00:00
2026-09-11 06:04:19 +00:00
2026-09-22 13:12:19 +01:00
2026-09-22 13:12:19 +01:00
2026-08-12 00:25:03 +01:00
2026-08-10 19:37:21 +01:00
2026-06-22 13:53:46 +02:00
2026-06-06 04:08:54 -06:00
2026-06-06 04:08:54 -06:00
2026-09-21 06:54:03 +00:00
2026-09-21 06:54:03 +00:00
2026-09-11 06:04:19 +00:00
2026-06-23 10:24:31 +02:00
2026-09-22 13:12:19 +01:00
2026-05-31 23:58:26 +09:00
2026-08-16 21:03:05 +01:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-17 10:07:40 +00:00
2026-05-31 23:58:26 +09:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-17 10:07:40 +00:00