At the moment, the Patch.combined_check_state function is used to get the latest patch for each user-context combination. This allows us to continuously update a patch at we switch from state to state, e.g. pending -> failure. This is a bit of a hack though. We should instead store the archival state as part of the Check model.