Skip to content

v0.6.0

Latest

Choose a tag to compare

@github-actions github-actions released this 28 Sep 07:24
3fb9a27

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.

Installation

pip install eggai==0.6.0