Skip to content

fix(ping): enable the documented ping default for httpStream - #369

Merged
punkpeye merged 1 commit into
punkpeye:mainfrom
ramin-010:fix/httpstream-ping-default
Sep 11, 2026
Merged

fix(ping): enable the documented ping default for httpStream#369
punkpeye merged 1 commit into
punkpeye:mainfrom
ramin-010:fix/httpstream-ping-default

Conversation

@ramin-010

Copy link
Copy Markdown
Contributor

ping.enabled is documented as defaulting to true for HTTP Stream and false for stdio, but the httpStream default was never actually being applied.

#getPingConfig tries to detect httpStream with "type" in transport && transport.type === "httpStream", but the SDK's Transport interface doesn't have a type field and nothing in fastmcp, mcp-proxy or the SDK sets one. So this branch is never reached and ping stays disabled by default. The existing ping tests also set enabled explicitly, so this wasn't covered.

FastMCPSession already gets the transport type and uses it for #needsEventLoopFlush, so I stored it and used that to determine the ping default instead of checking the transport object. SSE isn't a separate transport type here, so transportType === "httpStream" covers both HTTP Stream and the /sse endpoint.

I added a test with an httpStream server using ping: { intervalMs: 500 } without setting enabled. On main it receives no pings, while with this change it does.

This does change the default behaviour for existing httpStream users who don't configure ping — they will start sending a ping every 5s. If the documented default is not intended and ping should stay disabled unless explicitly enabled, I'm also happy to change the docs instead and keep the current runtime behaviour. The main thing I wanted to fix here is the mismatch between the documented behaviour and the actual behaviour.

@punkpeye
punkpeye merged commit 074bdf4 into punkpeye:main Sep 11, 2026
2 checks passed
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 4.20.10 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants