From 82ced2f1a07473b6a24d1cce4fea7167042b1580 Mon Sep 17 00:00:00 2001 From: Krishna Thota Date: Tue, 5 Aug 2025 15:41:37 -0700 Subject: [PATCH 1/2] fix: Pass message_length param. Addresses a2aproject/A2A#861 --- src/a2a/client/transports/grpc.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/a2a/client/transports/grpc.py b/src/a2a/client/transports/grpc.py index d13f1510..e50b0ea8 100644 --- a/src/a2a/client/transports/grpc.py +++ b/src/a2a/client/transports/grpc.py @@ -138,7 +138,10 @@ async def get_task( ) -> Task: """Retrieves the current state and history of a specific task.""" task = await self.stub.GetTask( - a2a_pb2.GetTaskRequest(name=f'tasks/{request.id}') + a2a_pb2.GetTaskRequest( + name=f'tasks/{request.id}', + history_length=request.history_length, + ) ) return proto_utils.FromProto.task(task) From 02959954fc5297de6d6175dd16fce335dffd5335 Mon Sep 17 00:00:00 2001 From: Krishna Thota Date: Tue, 5 Aug 2025 15:48:56 -0700 Subject: [PATCH 2/2] Add tests --- tests/client/test_grpc_client.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/tests/client/test_grpc_client.py b/tests/client/test_grpc_client.py index 259ac75e..c6481b37 100644 --- a/tests/client/test_grpc_client.py +++ b/tests/client/test_grpc_client.py @@ -145,11 +145,31 @@ async def test_get_task( response = await grpc_transport.get_task(params) mock_grpc_stub.GetTask.assert_awaited_once_with( - a2a_pb2.GetTaskRequest(name=f'tasks/{sample_task.id}') + a2a_pb2.GetTaskRequest( + name=f'tasks/{sample_task.id}', history_length=None + ) ) assert response.id == sample_task.id +@pytest.mark.asyncio +async def test_get_task_with_history( + grpc_transport: GrpcTransport, mock_grpc_stub: AsyncMock, sample_task: Task +): + """Test retrieving a task with history.""" + mock_grpc_stub.GetTask.return_value = proto_utils.ToProto.task(sample_task) + history_len = 10 + params = TaskQueryParams(id=sample_task.id, history_length=history_len) + + await grpc_transport.get_task(params) + + mock_grpc_stub.GetTask.assert_awaited_once_with( + a2a_pb2.GetTaskRequest( + name=f'tasks/{sample_task.id}', history_length=history_len + ) + ) + + @pytest.mark.asyncio async def test_cancel_task( grpc_transport: GrpcTransport, mock_grpc_stub: AsyncMock, sample_task: Task