I am following this as well. I thought the Sandbox here would help, but I'm still quite stuck.
For example, I'm passing the cluster graphic this is clicked to the following function, which is really close to what the Sandbox provides. My screen does register a change, but it never is pulling back ONLY the features in the cluster.
The popup label does accurately count how many features are clustered, but is there any updated guidance on accessing the underlying features?
async displayClusterExtent(graphic) {
const query = this.layerView.createQuery();
query.aggregateIds = [graphic.getObjectId()];
const { extent } = await this.layerView.queryExtent(query);
this.view.goTo(extent);
}