rcourtman
313648b2f1
feat(mcp): add additive fleet-context filtering
...
get_fleet_context returned the whole registry with no way to narrow it,
so a large fleet produced a payload that exceeded the agent harness's
50KB cap and forced agents to receive or page through healthy resources
that are pure noise from a triage standpoint.
Add optional additive query-param filters — hasFindings, severity,
technology, resourceType — that compose by intersection. All optional
(omitting every filter returns the full fleet, backward compatible);
unknown/unmatched values return 200 with resources: [] (a valid triage
answer, not an error). The hasFindings=true filter is the headline
triage case: show me only what needs attention.
The MCP adapter layer had no GET query-param transport — ProjectCapabilityCall
short-circuited GET after path substitution and dropped all other args.
Close that gap generically: ProjectedCall gains a Query url.Values field
populated from leftover non-path public args for GET/DELETE, and
BuildCapabilityHTTPRequest encodes it onto the request URL. Benefits any
future GET capability with filter args, not just fleet-context. The
resources/list adapter calls fleet-context with empty args and continues
to receive the unfiltered fleet.
The manifest now declares the filters via inputSchema so they are
discoverable through the capability surface the same way add_node's
params are.
- ProjectedCall.Query + GET query-param forwarding (projection.go, http.go)
- fleetContextFilter parsing/matching in HandleFleetContext
- fleetContextInputSchema + InputSchema on the capability
- Regenerated cmd/pulse-mcp/README.md via generate-pulse-intelligence-docs
- Contract updates: api-contracts, ai-runtime, agent-lifecycle, storage-recovery
- Tests: adapter query-forwarding unit tests, 7 filter handler tests
(hasFindings/severity/technology/resourceType/no-filter/unknown/compose),
contract pinning inputSchema + end-to-end query forwarding
2026-07-03 18:01:05 +01:00
..
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-13 14:11:32 +01:00
2026-05-13 14:04:14 +01:00
2026-06-23 17:26:15 +01:00
2026-05-28 13:44:20 +01:00
2026-04-22 00:05:57 +01:00
2026-04-22 00:05:57 +01:00
2026-04-22 00:05:57 +01:00
2026-02-04 14:24:42 +00:00
2026-06-23 17:26:15 +01:00
2026-07-03 17:07:41 +01:00
2026-07-03 17:07:41 +01:00
2026-06-23 17:26:15 +01:00
2026-05-12 12:06:27 +01:00
2026-06-23 17:26:15 +01:00
2026-06-23 17:26:15 +01:00
2026-06-09 17:55:09 +01:00
2026-06-29 18:03:46 +01:00
2026-06-29 18:03:46 +01:00
2026-07-02 23:27:49 +01:00
2026-06-04 08:39:31 +01:00
2026-06-12 10:46:38 +01:00
2026-06-12 10:46:38 +01:00
2026-02-04 13:43:28 +00:00
2026-06-23 17:26:15 +01:00
2026-06-23 17:26:15 +01:00
2026-06-23 17:26:15 +01:00
2026-07-03 18:01:05 +01:00
2026-07-03 18:01:05 +01:00
2026-06-23 17:26:15 +01:00
2026-04-22 22:57:08 +01:00
2026-03-24 23:59:52 +00:00
2026-03-27 08:39:59 +00:00
2026-06-23 17:26:15 +01:00
2026-06-04 11:23:05 +01:00
2026-06-23 19:38:22 +01:00
2026-03-18 16:06:30 +00:00
2026-06-23 17:26:15 +01:00
2026-03-18 16:06:30 +00:00
2026-01-25 21:08:44 +00:00
2026-06-09 21:42:21 +01:00
2026-06-23 17:26:15 +01:00
2026-03-19 04:04:14 +00:00
2026-06-23 17:26:15 +01:00
2026-04-09 20:15:17 +01:00
2026-04-11 16:47:37 +01:00
2026-06-23 17:26:15 +01:00
2026-06-25 08:49:29 +01:00
2026-03-18 16:06:30 +00:00
2026-05-15 22:45:48 +01:00
2026-03-18 16:06:30 +00:00
2026-06-07 00:06:34 +01:00
2026-07-01 10:38:57 +01:00
2026-07-01 10:38:57 +01:00
2026-04-28 15:49:18 +01:00
2026-06-03 12:29:37 +01:00
2026-03-26 17:12:27 +00:00
2026-04-11 16:47:37 +01:00
2026-03-18 16:06:30 +00:00
2026-06-27 14:43:09 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-05-28 15:10:39 +01:00
2026-06-27 14:43:09 +01:00
2026-01-25 21:08:44 +00:00
2026-05-08 02:21:31 +01:00
2026-06-30 10:37:54 +01:00
2026-06-23 17:26:15 +01:00
2026-03-18 16:06:30 +00:00
2026-06-29 22:27:01 +01:00
2026-07-02 23:27:49 +01:00
2026-03-28 21:14:54 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-05-28 13:44:20 +01:00
2026-04-22 07:59:12 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-11 16:47:37 +01:00
2026-03-25 00:36:47 +00:00
2026-01-24 22:42:23 +00:00
2026-07-01 09:55:35 +01:00
2026-05-28 14:49:20 +01:00
2026-05-04 00:16:31 +01:00
2026-05-04 00:16:31 +01:00
2026-02-04 09:52:32 +00:00
2026-03-24 23:59:52 +00:00
2026-07-02 21:59:26 +01:00
2026-03-18 16:06:30 +00:00
2026-06-10 11:37:39 +01:00
2026-06-10 11:37:39 +01:00
2026-03-18 16:06:30 +00:00
2026-06-29 22:43:13 +01:00
2026-06-26 22:52:28 +01:00
2026-03-18 16:06:30 +00:00
2026-05-05 12:59:59 +01:00
2026-05-03 12:25:56 +01:00
2026-05-03 12:25:56 +01:00
2026-04-01 01:04:06 +01:00
2026-02-02 18:59:44 +00:00
2026-06-23 17:26:15 +01:00
2026-06-23 17:26:15 +01:00
2026-06-02 12:45:48 +01:00
2026-06-02 17:34:10 +01:00
2026-06-10 10:52:05 +01:00
2026-03-26 20:51:29 +00:00
2026-05-04 09:47:54 +01:00
2026-05-04 09:47:54 +01:00
2026-05-04 23:16:15 +01:00
2026-03-18 16:06:30 +00:00
2026-06-10 17:48:11 +01:00
2026-03-18 16:06:30 +00:00
2026-04-22 01:03:10 +01:00
2026-04-09 20:15:17 +01:00
2026-06-04 14:07:14 +01:00
2026-03-18 16:06:30 +00:00
2025-12-01 23:50:10 +00:00
2026-06-12 12:10:54 +01:00
2026-06-03 22:40:30 +01:00
2026-06-09 21:42:21 +01:00
2025-12-01 14:46:00 +00:00
2026-03-18 16:06:30 +00:00
2026-04-19 20:42:22 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2025-12-02 17:21:48 +00:00
2026-04-22 20:26:15 +01:00
2026-03-18 16:06:30 +00:00
2026-06-14 10:57:46 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-28 20:35:10 +00:00
2026-03-18 16:06:30 +00:00
2026-04-26 17:26:16 +01:00
2026-06-04 14:07:14 +01:00
2026-06-09 21:42:21 +01:00
2026-06-10 10:52:05 +01:00
2026-01-25 21:08:44 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-12 12:10:54 +01:00
2026-04-10 12:33:57 +01:00
2026-03-18 16:06:30 +00:00
2026-06-03 12:29:37 +01:00
2026-05-25 18:20:11 +01:00
2026-06-03 12:29:37 +01:00
2026-05-14 00:22:18 +01:00
2026-05-14 00:22:18 +01:00
2026-05-25 18:20:11 +01:00
2026-05-06 14:25:36 +01:00
2026-05-25 18:20:11 +01:00
2026-06-03 12:29:37 +01:00
2026-04-22 01:18:33 +01:00
2026-05-13 20:16:35 +01:00
2026-07-03 18:01:05 +01:00
2026-03-18 16:06:30 +00:00
2026-04-26 15:27:10 +01:00
2026-04-26 15:27:10 +01:00
2026-05-04 09:14:09 +01:00
2026-04-11 17:20:58 +01:00
2026-05-05 12:59:59 +01:00
2026-06-03 12:29:37 +01:00
2026-05-04 09:14:09 +01:00
2026-05-04 09:14:09 +01:00
2026-05-05 12:59:59 +01:00
2026-06-10 10:52:05 +01:00
2026-03-18 16:06:30 +00:00
2026-06-23 17:26:15 +01:00
2026-06-23 17:26:15 +01:00
2026-04-30 09:23:40 +01:00
2026-06-04 10:07:10 +01:00
2026-06-23 17:26:15 +01:00
2026-03-18 16:06:30 +00:00
2026-05-20 14:54:19 +01:00
2026-06-05 09:21:53 +01:00
2026-03-24 16:05:19 +00:00
2026-06-02 23:54:48 +01:00
2026-03-18 16:06:30 +00:00
2026-06-02 23:54:48 +01:00
2025-11-29 17:06:18 +00:00
2026-06-10 10:52:05 +01:00
2026-06-13 11:50:09 +01:00
2026-06-13 14:11:32 +01:00
2026-04-30 09:13:04 +01:00
2026-06-10 10:52:05 +01:00
2026-03-28 20:35:10 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-25 23:40:22 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-03 12:29:37 +01:00
2026-04-22 04:23:23 +01:00
2026-05-13 00:28:24 +01:00
2026-05-13 00:28:24 +01:00
2026-03-18 16:06:30 +00:00
2026-02-02 22:01:46 +00:00
2026-03-18 16:06:30 +00:00
2026-01-25 21:08:44 +00:00
2026-06-10 10:52:05 +01:00
2026-03-18 16:06:30 +00:00
2026-06-02 17:34:10 +01:00
2026-04-05 13:18:30 +01:00
2026-04-28 15:49:18 +01:00
2026-04-28 15:49:18 +01:00
2026-04-28 16:36:09 +01:00
2026-03-18 16:06:30 +00:00
2026-05-04 09:33:19 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-10 12:54:12 +01:00
2026-05-05 09:26:10 +01:00
2026-05-03 12:48:01 +01:00
2026-03-18 16:06:30 +00:00
2026-05-05 12:59:59 +01:00
2026-03-18 16:06:30 +00:00
2026-06-10 10:52:05 +01:00
2026-04-28 19:12:21 +01:00
2026-04-11 16:47:37 +01:00
2026-04-10 12:33:57 +01:00
2026-06-26 13:00:42 +01:00
2026-05-05 12:59:59 +01:00
2026-04-28 19:12:21 +01:00
2026-06-11 08:44:35 +01:00
2026-05-05 12:59:59 +01:00
2026-04-16 10:17:37 +01:00
2026-06-26 13:00:42 +01:00
2026-06-11 08:44:35 +01:00
2026-06-11 08:44:35 +01:00
2026-06-11 13:12:59 +01:00
2026-06-11 13:10:16 +01:00
2026-03-18 16:06:30 +00:00
2026-02-02 22:02:22 +00:00
2025-12-12 11:05:24 +00:00
2026-04-22 00:39:53 +01:00
2026-05-04 22:43:35 +01:00
2026-05-04 22:43:35 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-15 13:40:24 +01:00
2026-05-12 21:10:58 +01:00
2026-05-12 21:10:58 +01:00
2026-06-09 21:42:21 +01:00
2026-06-10 10:52:05 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-01-19 19:26:18 +00:00
2025-12-10 00:29:07 +00:00
2026-06-09 21:42:21 +01:00
2026-06-10 22:02:48 +01:00
2026-05-10 22:59:23 +01:00
2026-06-03 12:29:37 +01:00
2026-06-23 17:26:15 +01:00
2026-03-18 16:06:30 +00:00
2026-06-03 12:29:37 +01:00
2026-03-18 16:06:30 +00:00
2026-06-23 17:26:15 +01:00
2026-04-22 05:42:45 +01:00
2026-04-22 05:42:45 +01:00
2026-03-18 16:06:30 +00:00
2026-04-11 16:47:37 +01:00
2026-04-11 16:47:37 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-09 21:42:21 +01:00
2026-06-03 12:29:37 +01:00
2026-06-03 12:29:37 +01:00
2026-06-03 12:29:37 +01:00
2026-04-23 23:04:03 +01:00
2026-06-11 13:12:59 +01:00
2026-03-18 16:06:30 +00:00
2026-01-25 21:08:44 +00:00
2026-02-02 22:02:22 +00:00
2025-12-02 16:47:13 +00:00
2026-02-04 15:10:02 +00:00
2026-06-10 10:53:57 +01:00
2026-06-10 10:53:57 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-29 16:25:09 +01:00
2026-05-04 00:16:31 +01:00
2026-06-03 12:29:37 +01:00
2026-04-22 05:42:45 +01:00
2026-04-01 16:36:44 +01:00
2026-04-22 05:42:45 +01:00
2026-03-18 16:06:30 +00:00
2026-06-30 17:12:55 +01:00
2026-06-30 17:12:55 +01:00
2026-05-25 09:25:03 +01:00
2026-05-25 09:25:03 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-05-05 12:59:59 +01:00
2026-05-25 21:47:12 +01:00
2026-05-25 21:47:12 +01:00
2026-04-22 00:39:53 +01:00
2026-06-10 10:52:05 +01:00
2026-05-25 21:38:43 +01:00
2026-05-21 15:15:23 +01:00
2026-05-21 15:15:23 +01:00
2026-06-23 17:26:15 +01:00
2026-01-19 19:26:18 +00:00
2026-06-23 17:26:15 +01:00
2026-06-13 14:11:32 +01:00
2026-06-13 14:11:32 +01:00
2026-03-18 16:06:30 +00:00
2026-02-04 14:35:08 +00:00
2026-05-04 09:33:19 +01:00
2026-04-08 20:42:36 +01:00
2026-06-10 10:52:05 +01:00
2026-05-16 13:57:53 +01:00
2026-03-18 16:06:30 +00:00
2026-03-26 20:51:29 +00:00
2026-03-26 20:51:29 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-03 23:14:25 +01:00
2026-03-27 12:04:44 +00:00
2026-04-22 00:39:53 +01:00
2026-03-18 16:06:30 +00:00
2026-02-02 18:59:44 +00:00
2026-02-02 23:01:29 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-25 23:40:22 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-26 17:26:16 +01:00
2026-01-22 00:30:15 +00:00
2026-06-09 21:42:21 +01:00
2026-06-10 10:52:05 +01:00
2026-02-04 15:01:09 +00:00
2026-04-22 00:39:53 +01:00
2026-05-01 21:36:28 +01:00
2026-07-02 22:34:37 +01:00
2026-07-01 10:38:57 +01:00
2026-06-06 18:32:21 +01:00
2026-06-06 18:32:21 +01:00
2026-04-30 12:53:29 +01:00
2026-04-11 16:47:37 +01:00
2026-04-11 16:47:37 +01:00
2026-05-16 13:57:53 +01:00
2026-06-10 17:48:11 +01:00
2026-06-10 17:48:11 +01:00
2026-03-25 22:27:35 +00:00
2026-06-10 17:10:30 +01:00
2026-03-26 09:15:15 +00:00
2026-03-26 22:58:27 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-02-04 10:28:41 +00:00
2026-06-25 20:20:35 +01:00
2026-03-18 16:06:30 +00:00
2026-05-13 14:19:59 +01:00
2026-06-23 17:26:15 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-04 21:56:36 +01:00
2026-06-25 20:20:35 +01:00
2026-07-03 17:07:41 +01:00
2026-03-18 16:06:30 +00:00
2026-04-26 17:26:16 +01:00
2026-03-18 16:06:30 +00:00
2026-04-26 15:27:10 +01:00
2026-04-28 16:36:09 +01:00
2026-03-26 17:12:27 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-22 01:18:33 +01:00
2026-04-18 00:06:50 +01:00
2026-04-23 23:04:03 +01:00
2026-04-23 23:04:03 +01:00
2026-06-09 21:42:21 +01:00
2026-05-03 12:25:56 +01:00
2026-03-18 16:06:30 +00:00
2026-06-09 21:42:21 +01:00
2026-06-09 21:42:21 +01:00
2026-02-04 10:28:41 +00:00
2026-02-04 10:28:41 +00:00
2026-05-09 23:04:22 +01:00
2026-02-04 10:28:41 +00:00
2026-04-22 00:39:53 +01:00
2026-06-07 18:01:55 +01:00
2026-03-26 21:43:30 +00:00
2026-04-26 17:26:16 +01:00
2026-03-26 21:43:30 +00:00
2026-03-26 21:43:30 +00:00
2026-06-23 17:26:15 +01:00
2026-05-07 21:58:06 +01:00
2026-05-07 21:58:06 +01:00
2026-03-18 16:06:30 +00:00
2026-06-04 14:07:14 +01:00
2026-03-18 16:06:30 +00:00
2026-04-28 16:36:09 +01:00
2026-04-26 17:26:16 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-30 12:24:22 +01:00
2026-07-03 17:07:41 +01:00
2026-06-29 18:03:46 +01:00
2026-06-29 17:39:11 +01:00
2026-03-18 16:06:30 +00:00
2026-06-03 14:42:43 +01:00
2026-06-26 22:15:48 +01:00
2026-03-18 16:06:30 +00:00
2026-07-03 11:51:08 +01:00
2026-04-29 16:25:09 +01:00
2026-05-21 16:26:00 +01:00
2026-05-03 13:19:51 +01:00
2026-05-21 16:26:00 +01:00
2026-05-03 12:48:01 +01:00
2026-04-29 16:25:09 +01:00
2026-04-01 12:00:31 +01:00
2026-05-21 16:15:53 +01:00
2026-02-04 10:28:41 +00:00
2026-03-30 09:52:07 +01:00
2026-03-30 09:52:07 +01:00
2026-07-01 10:38:57 +01:00
2026-05-04 00:50:14 +01:00
2026-05-10 22:25:34 +01:00
2026-05-10 22:25:34 +01:00
2026-04-22 07:59:12 +01:00
2026-06-03 12:29:37 +01:00
2026-07-01 09:55:35 +01:00
2026-03-24 23:59:52 +00:00
2026-03-18 16:06:30 +00:00
2026-05-04 00:50:14 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-05-04 00:50:14 +01:00
2026-05-21 12:29:32 +01:00
2026-05-28 14:49:20 +01:00
2026-05-28 14:49:20 +01:00
2026-05-28 14:49:20 +01:00
2026-06-14 10:57:46 +01:00
2026-06-11 13:12:59 +01:00
2026-04-11 14:51:10 +01:00
2026-05-03 12:48:01 +01:00
2026-04-01 12:00:31 +01:00
2026-04-01 16:36:44 +01:00
2026-04-01 16:36:44 +01:00
2026-03-18 16:06:30 +00:00
2026-06-04 14:07:14 +01:00
2026-05-05 12:59:59 +01:00
2026-05-05 12:59:59 +01:00
2026-06-03 12:29:37 +01:00
2026-04-07 10:24:53 +01:00
2026-03-18 16:06:30 +00:00
2026-06-03 12:29:37 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-09 21:42:21 +01:00
2026-04-26 17:26:16 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-10 11:37:39 +01:00
2026-06-23 17:26:15 +01:00
2026-07-02 11:50:03 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-02-04 14:48:03 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-05-04 23:16:15 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-28 16:36:09 +01:00
2026-03-29 19:50:31 +01:00
2026-03-29 20:36:43 +01:00
2026-03-29 20:13:39 +01:00
2026-06-09 21:42:21 +01:00
2026-06-10 10:52:05 +01:00
2026-03-18 16:06:30 +00:00
2026-06-03 14:42:43 +01:00
2026-06-04 11:49:17 +01:00
2026-03-18 16:06:30 +00:00
2026-06-04 14:07:14 +01:00
2026-05-13 19:00:02 +01:00
2026-06-02 10:15:35 +01:00
2026-06-04 08:39:31 +01:00
2026-05-29 14:51:18 +01:00
2026-05-29 14:19:04 +01:00
2026-03-18 16:06:30 +00:00
2026-06-03 12:29:37 +01:00
2026-03-18 16:06:30 +00:00
2026-06-02 23:54:48 +01:00
2026-06-03 09:18:07 +01:00
2026-06-03 09:18:07 +01:00
2026-06-03 09:18:07 +01:00
2026-05-28 17:22:01 +01:00
2026-03-18 16:06:30 +00:00
2026-04-22 03:06:22 +01:00
2026-06-09 21:42:21 +01:00
2026-06-10 10:52:05 +01:00
2026-06-03 12:29:37 +01:00
2026-04-22 04:46:13 +01:00