Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: agentclientprotocol/python-sdk
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.9.0
Choose a base ref
...
head repository: agentclientprotocol/python-sdk
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 0.10.0
Choose a head ref
  • 8 commits
  • 17 files changed
  • 9 contributors

Commits on Apr 11, 2026

  1. chore(deps): bump uv in the uv group across 1 directory (#88)

    Bumps the uv group with 1 update in the / directory: [uv](https://github.com/astral-sh/uv).
    
    
    Updates `uv` from 0.9.7 to 0.11.6
    - [Release notes](https://github.com/astral-sh/uv/releases)
    - [Changelog](https://github.com/astral-sh/uv/blob/main/CHANGELOG.md)
    - [Commits](astral-sh/uv@0.9.7...0.11.6)
    
    ---
    updated-dependencies:
    - dependency-name: uv
      dependency-version: 0.11.6
      dependency-type: indirect
      dependency-group: uv
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Apr 11, 2026
    Configuration menu
    Copy the full SHA
    e06ae46 View commit details
    Browse the repository at this point in the history

Commits on Apr 14, 2026

  1. chore(deps-dev): bump pytest in the uv group across 1 directory (#89)

    Bumps the uv group with 1 update in the / directory: [pytest](https://github.com/pytest-dev/pytest).
    
    
    Updates `pytest` from 8.4.2 to 9.0.3
    - [Release notes](https://github.com/pytest-dev/pytest/releases)
    - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
    - [Commits](pytest-dev/pytest@8.4.2...9.0.3)
    
    ---
    updated-dependencies:
    - dependency-name: pytest
      dependency-version: 9.0.3
      dependency-type: direct:development
      dependency-group: uv
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Apr 14, 2026
    Configuration menu
    Copy the full SHA
    d53722c View commit details
    Browse the repository at this point in the history

Commits on Apr 19, 2026

  1. fix: reject pending requests on EOF to prevent infinite hang (#86)

    * fix: reject pending requests on EOF to prevent infinite hang
    
    When the remote end closes the connection (e.g., subprocess crashes),
    _receive_loop exits cleanly on EOF without raising an exception. This
    means _on_receive_error is never called and pending outgoing request
    futures hang forever.
    
    Add reject_all_outgoing() after the receive loop breaks on EOF so
    callers get a ConnectionError instead of an infinite hang.
    
    Fixes #85
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * fix: fail fast after connection EOF
    
    ---------
    
    Co-authored-by: Debug Agent <debug@example.com>
    Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
    Co-authored-by: Chojan Shang <psiace@apache.org>
    4 people authored Apr 19, 2026
    Configuration menu
    Copy the full SHA
    88621c5 View commit details
    Browse the repository at this point in the history

Commits on Apr 22, 2026

  1. chore(deps-dev): bump python-dotenv in the uv group across 1 directory (

    #90)
    
    Bumps the uv group with 1 update in the / directory: [python-dotenv](https://github.com/theskumar/python-dotenv).
    
    
    Updates `python-dotenv` from 1.2.1 to 1.2.2
    - [Release notes](https://github.com/theskumar/python-dotenv/releases)
    - [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md)
    - [Commits](theskumar/python-dotenv@v1.2.1...v1.2.2)
    
    ---
    updated-dependencies:
    - dependency-name: python-dotenv
      dependency-version: 1.2.2
      dependency-type: direct:development
      dependency-group: uv
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Apr 22, 2026
    Configuration menu
    Copy the full SHA
    df72173 View commit details
    Browse the repository at this point in the history

Commits on May 6, 2026

  1. feat: bump acp protocol to 0.12.2 (#93)

    * feat: bump acp protocol to 0.12.2
    
    Signed-off-by: Chojan Shang <psiace@apache.org>
    
    * *: refine
    
    Signed-off-by: Chojan Shang <psiace@apache.org>
    
    ---------
    
    Signed-off-by: Chojan Shang <psiace@apache.org>
    PsiACE authored May 6, 2026
    Configuration menu
    Copy the full SHA
    03739f4 View commit details
    Browse the repository at this point in the history
  2. fix(schema): coerce string protocolVersion in InitializeRequest (#92)

    Some ACP clients (notably Zed) send a date string like "2024-11-05" as
    the protocolVersion instead of an integer.  The Rust SDK already handles
    this gracefully — its Deserialize impl maps any string to V0 with the
    comment "Old versions used strings".  The Python SDK rejected strings
    outright, causing the agent process to crash on the very first handshake.
    
    Changes:
    - Add `_coerce_protocol_version` field_validator to `InitializeRequest`
      in `src/acp/schema.py` that maps non-integer values to 1 (current
      stable version), mirroring the Rust SDK's lenient behaviour.
    - Add `CLASS_VALIDATOR_INJECTIONS` table and `_inject_field_validators`
      post-processing step to `scripts/gen_schema.py` so the validator is
      re-applied automatically on future schema regenerations.
    - Add `_ensure_pydantic_import` helper used by the injection step to
      add `field_validator` to the generated pydantic import line.
    
    Ref: https://github.com/agentclientprotocol/rust-sdk/blob/main/crates/agent-client-protocol-schema/src/version.rs
    
    Co-authored-by: liuyuan90 <liuyuan90@meituan.com>
    Co-authored-by: Chojan Shang <psiace@apache.org>
    3 people authored May 6, 2026
    Configuration menu
    Copy the full SHA
    3381092 View commit details
    Browse the repository at this point in the history

Commits on May 7, 2026

  1. fix: skip blank/whitespace-only lines in receive loop (#87)

    _receive_loop only checked for EOF (b""), but blank lines like b"\n"
    or b"\r\n" are truthy and reached json.loads(), causing JSONDecodeError.
    Strip each line and skip when empty before parsing.
    aorumbayev authored May 7, 2026
    Configuration menu
    Copy the full SHA
    589aff7 View commit details
    Browse the repository at this point in the history
  2. feat: add receive_timeout parameter to Connection class (#84)

    - Add optional receive_timeout parameter to Connection.__init__
    - Implement timeout handling in _receive_loop using asyncio.wait_for
    - Raise RequestError.internal_error on timeout for graceful error handling
    
    This allows users to configure a timeout for receiving messages from
    agents, preventing indefinite hangs when an agent becomes unresponsive.
    birdg0 authored May 7, 2026
    Configuration menu
    Copy the full SHA
    c864d7d View commit details
    Browse the repository at this point in the history
Loading