# Changelog
All notable changes to the Mesh API will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

The versions used in the changelog are _API_ versions, not Mesh versions. Each release entry should include both
the API version, and the Mesh version in which said API has been released.

## [1.1] - Released 2022-06-23 (Mesh 1.2.0) 
### Added
- MESH-10 Introduces `mesh-target-id` metadata, which is compared to this node's ID. If the provided ID does
  not match this node's ID, the request is rejected with a new `RpcWrongTarget` error.
- MESH-10 Introduces `RpcProvisionNodeRequest.node_id` to allow removed nodes to be re-added to the cluster
  under a new node ID.
  
## [1.2] - Released 2022-07-28 (Mesh 1.3.0)
### Added
- MESH-7 Introduces `RepositoryService/VerifyConsistency` and `TransactionService/VerifyConsistency`.
- MESH-19 Introduces `ManagementService/GetConfiguration` to allow the control plane to retrieve a node's
  configuration (for debugging purposes).
- MESH-20 Introduces node, partition and hierarchy level draining. To support this, `ManagementService/Drain` and
  supporting message types have been added.

## [1.3] - Released 2022-11-10 (Mesh 1.4.0)
### Added
- MESH-27 Introduces `RepositoryService/GetRepositories` and introduces the `RpcRepository` type.
- MESH-31 Introduces the `RpcPermissionDenied` which is returned when an RPC is called with insufficient permissions.
- MESH-32 Adds `RpcPartitionReplicaMigration` and `RpcTopology.partition_migrations` which allows the control plane
  to inform Mesh nodes of ongoing migrations in partitions they host.

## [1.4] - Released 2023-07-19 (Mesh 2.0.6)
### Added
- MESH-90 - Introduces `RpcOutOfBandRefUpdates` and a new field on `RpcSidebandFollowerFragment` to send back out-
  of-band ref updates to the control plane when a push is cancelled.

## [1.5] - Released 2023-07-20 (Mesh 2.1.0)
### Added
- MESH-86 Introduces `CommitService/Revert` and introduces `RpcRevertRequest`, `RpcRevertResponse`, `RpcRevertFragment`, `RpcRevertResponseFragment`, `RpcRunRevertHooks`, `RpcRevertConflicted` and `RpcRevertFailed` types.

## [1.6] - Released 2023-10-23 (Mesh 2.2.0)
### Added
- `RpcAnnotatedTag.tagger_timestamp` allowing to determine when the tag was tagged.

## [1.7] - Unreleased (Mesh 2.3.0)
### Added
- Introduces `RpcSigningFailed` which is returned when an RPC is called that requires an object to be signed but can't.