Andrew Hundt
d4dcf23ff5
fix: frame MCP notifications by transport
...
Use one protocol writer for JSON-RPC responses and notifications so notification framing matches the active MCP transport.
When a client sends Content-Length-framed requests, _hidden_tools list_changed and resource-change notifications are now emitted as Content-Length frames instead of raw newline JSON that can corrupt the stream.
Add line-mode and framed-transport regression coverage for revealing hidden tools. The new framed fixture is Unix-only because it uses pipe/fdopen/alarm; production framing code is shared.
Signed-off-by: Andrew Hundt <ATHundt@gmail.com >
2026-06-28 11:13:14 -04:00
..
2026-06-05 21:53:25 +02:00
2026-06-05 21:53:25 +02:00
2026-06-28 08:36:56 -04:00
2026-03-15 22:37:34 +01:00
2026-05-30 18:26:44 +02:00
2026-06-22 14:46:29 -07:00
2026-06-05 21:53:25 +02:00
2026-06-28 10:46:41 -04:00
2026-04-01 23:22:44 +02:00
2026-06-28 06:34:23 -04:00
2026-06-06 22:16:04 +02:00
2026-06-05 21:53:25 +02:00
2026-05-19 22:47:53 +02:00
2026-06-14 20:12:04 +00:00
2026-06-28 08:36:56 -04:00
2026-06-23 23:46:24 +02:00
2026-06-24 17:03:07 -04:00
2026-06-23 06:38:45 +09:00
2026-03-25 09:28:11 +01:00
2026-06-28 06:34:23 -04:00
2026-06-28 06:34:23 -04:00
2026-06-28 06:34:23 -04:00
2026-06-07 12:35:53 +02:00
2026-06-08 22:55:23 +02:00
2026-06-22 19:56:46 -04:00
2026-05-31 17:22:02 +02:00
2026-06-28 06:34:23 -04:00
2026-06-22 23:51:49 +02:00
2026-03-15 22:37:34 +01:00
2026-06-05 21:53:25 +02:00
2026-06-12 02:17:39 +02:00
2026-06-28 06:34:23 -04:00
2026-06-28 06:34:23 -04:00
2026-06-28 06:34:23 -04:00
2026-06-28 06:34:23 -04:00
2026-06-28 06:34:23 -04:00
2026-06-28 06:34:23 -04:00
2026-06-28 06:34:23 -04:00
2026-06-12 02:17:39 +02:00
2026-06-26 22:37:03 -04:00
2026-05-21 22:52:16 +02:00
2026-03-31 20:04:11 +02:00
2026-06-12 02:17:25 +02:00
2026-04-01 23:22:44 +02:00
2026-06-28 06:34:23 -04:00
2026-06-28 06:34:23 -04:00
2026-06-28 09:40:25 -04:00
2026-06-28 06:34:23 -04:00
2026-06-02 18:52:37 +02:00
2026-06-02 18:52:37 +02:00
2026-06-03 01:33:25 +02:00
2026-06-28 06:34:23 -04:00
2026-06-12 02:17:39 +02:00
2026-06-06 22:30:38 +02:00
2026-06-28 06:34:23 -04:00
2026-03-15 22:37:34 +01:00
2026-06-28 08:36:56 -04:00
2026-06-28 06:34:23 -04:00
2026-06-28 06:34:23 -04:00
2026-06-28 11:13:14 -04:00
2026-06-05 21:53:25 +02:00
2026-06-28 06:34:23 -04:00
2026-06-28 08:36:56 -04:00
2026-06-16 13:26:25 +03:00
2026-06-06 22:30:38 +02:00
2026-05-29 04:20:20 +02:00
2026-05-09 16:05:45 +02:00
2026-06-28 10:03:18 -04:00
2026-05-30 20:15:30 +02:00
2026-06-05 21:53:25 +02:00
2026-05-09 15:44:09 +02:00
2026-05-09 14:16:15 +02:00
2026-05-31 03:14:17 +02:00
2026-06-22 22:04:06 +02:00
2026-06-23 13:52:08 -03:00
2026-06-03 02:13:30 +02:00
2026-05-08 22:26:56 +02:00
2026-06-24 03:15:36 +02:00
2026-06-28 06:34:23 -04:00
2026-06-05 21:53:25 +02:00
2026-06-26 19:07:26 -04:00
2026-06-24 17:30:04 -04:00
2026-06-28 06:34:23 -04:00
2026-04-11 09:22:23 -04:00
2026-05-29 03:37:56 +02:00
2026-03-24 23:48:23 +01:00
2026-06-28 06:34:23 -04:00
2026-05-29 03:37:56 +02:00
2026-06-24 16:12:00 -04:00
2026-03-24 23:48:23 +01:00
2026-03-25 09:47:59 +01:00
2026-06-28 09:40:25 -04:00
2026-06-28 10:37:02 -04:00
2026-03-24 23:48:23 +01:00
2026-06-12 10:51:11 +02:00
2026-06-10 12:11:02 +02:00
2026-04-01 23:22:44 +02:00
2026-04-09 23:15:10 -04:00
2026-06-05 21:53:25 +02:00
2026-06-24 16:12:00 -04:00
2026-06-06 19:48:48 +02:00
2026-04-10 20:09:37 -04:00
2026-04-15 23:56:03 +02:00