Pulse/internal
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
..
actionplanner Stabilize action plan drift hashing 2026-06-13 20:49:27 +01:00
agentcapabilities feat(mcp): add additive fleet-context filtering 2026-07-03 18:01:05 +01:00
agentcontext Add discovery readiness to Assistant context 2026-06-04 21:56:36 +01:00
agentexec Add governed Docker and Podman lifecycle actions 2026-06-12 21:17:58 +01:00
agenttls Add fingerprint-pinned TLS mode for unified agent 2026-04-22 01:36:46 +01:00
agentupdate Allow local Pulse HTTP agent URLs 2026-07-03 00:24:40 +01:00
ai Ground Patrol run summaries in accepted findings 2026-07-03 10:15:55 +01:00
alerts Normalize Docker container CPU capacity 2026-07-03 11:51:08 +01:00
api feat(mcp): add additive fleet-context filtering 2026-07-03 18:01:05 +01:00
bootstrap feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
cloudcp fix: resolve 4 pre-existing test failures blocking clean CI 2026-06-26 13:30:00 +01:00
config Harden GA telemetry disclosure 2026-07-02 11:50:03 +01:00
crypto Harden secure local key file handling 2026-04-22 05:13:01 +01:00
deploy Remove monitored-system volume caps 2026-05-05 12:59:59 +01:00
discovery feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
dockeragent Allow local Pulse HTTP agent URLs 2026-07-03 00:24:40 +01:00
hostagent Allow local Pulse HTTP agent URLs 2026-07-03 00:24:40 +01:00
hosted Remove 198 unreachable Go functions 2026-06-03 12:29:37 +01:00
hostmetrics Harden release gate workflow 2026-06-14 19:19:39 +01:00
kubernetesagent Allow local Pulse HTTP agent URLs 2026-07-03 00:24:40 +01:00
license backend and governance: MCP contract, agent capabilities, API, and release-control 2026-06-23 17:26:15 +01:00
logging Stabilize backend race tests for v6 RC publish 2026-04-11 22:46:34 +01:00
maintenancesentinel Record maintenance evidence in resource timelines 2026-05-13 14:19:59 +01:00
metrics Remove 198 unreachable Go functions 2026-06-03 12:29:37 +01:00
mock Attach mock availability checks to services 2026-06-30 21:16:16 +01:00
mockmode Gate release mock fixtures behind demo entitlement 2026-04-10 12:33:57 +01:00
mockmodel Remove 198 unreachable Go functions 2026-06-03 12:29:37 +01:00
mockruntime Gate release mock fixtures behind demo entitlement 2026-04-10 12:33:57 +01:00
models Normalize Docker container CPU capacity 2026-07-03 11:51:08 +01:00
monitoring Normalize Docker container CPU capacity 2026-07-03 11:51:08 +01:00
notifications Fix security scan findings 2026-07-01 09:55:35 +01:00
platformsupport Expand Docker Swarm metadata inventory 2026-05-24 12:07:10 +01:00
proxmoxidentity Fix PBS backup identity matching 2026-06-03 11:43:20 +01:00
recovery Fix PBS backup identity matching 2026-06-03 11:43:20 +01:00
relay Aggregate simplify-review cleanups (no behavior change) 2026-05-12 17:32:11 +01:00
remoteconfig Allow local Pulse HTTP agent URLs 2026-07-03 00:24:40 +01:00
repoctl Capture v6 GA release target 2026-06-29 15:26:42 +01:00
securityutil Allow local Pulse HTTP agent URLs 2026-07-03 00:24:40 +01:00
sensors Remove 198 unreachable Go functions 2026-06-03 12:29:37 +01:00
servicediscovery fix(discovery): backfill availability suggestions for existing discoveries 2026-06-26 23:56:15 +01:00
ssh/knownhosts feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
storagehealth feat(alerts): clean alert messages + highlight all platform node tables 2026-06-27 14:34:33 +01:00
system Remove 198 unreachable Go functions 2026-06-03 12:29:37 +01:00
telemetry Harden GA telemetry disclosure 2026-07-02 11:50:03 +01:00
testutil Stabilize rc1 mock mode and metrics history 2026-04-11 16:47:37 +01:00
truenas Emit TrueNAS pool status incidents 2026-06-29 22:54:19 +01:00
unifiedresources Normalize Docker container CPU capacity 2026-07-03 11:51:08 +01:00
updates Remove 198 unreachable Go functions 2026-06-03 12:29:37 +01:00
updatesignature Fix v6 demo release signing key deployment 2026-05-05 21:40:14 +01:00
utils Clear all errcheck and gofmt violations so make lint gates on real findings 2026-06-09 21:42:21 +01:00
vmware Dedupe alerts PMG queue checks, vmware clones, licensing and proxmox client clones 2026-06-10 09:49:03 +01:00
websocket Bound server state broadcast memory 2026-07-02 23:27:49 +01:00