You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
What's Changed
Added
Redis subscribe(..., delete_on_ack=True): every entry the subscription
acks is also XDEL'd (same MULTI), so consumed messages stop occupying
Redis memory instead of waiting for MAXLEN trimming. Covers handler
success (including filtered-out messages), the retry stream, and the
reclaimer's moves to the retry stream / DLQ. A failing handler's entry
stays in the PEL under the default NACK_ON_ERROR, and is deleted under AckPolicy.ACK / ACK_FIRST (which ack it anyway). Opt-in because it
assumes a single consumer group per stream: XDEL removes the entry for
every group. connect() raises RuntimeError if another group already
reads the stream; if one joins later, the group monitor turns deletion off
for that stream (plain XACK) and logs an error.
Fixed
MCP adapter reads tool schemas from fastmcp's own Tool instead of the
protocol Tool, so it works on fastmcp 3 and 4 without touching the
fields MCP SDK 2 renamed. The mcp extra now allows fastmcp>=3,<5.
MCP adapter subscriptions declare data_type, so handlers receive parsed
request models instead of raw dicts. Covered by a new end-to-end test.
setup_tracing type errors: exporter selection is typed, endpoint is
passed explicitly, and the unused provider reassignment is gone.
A2A adapter type errors: A2AConfig imports SecurityScheme
unconditionally, and the executor no longer falls back to enqueuing a raw
dict the event queue cannot model.
CI lint and test jobs install all extras, so the tracing, a2a and mcp
modules are type-checked and tested.