compute changeset client side