This service introduces callstack similarity for merge recommendations.

`/candidates`

endpoint provides a list of groups that are similar to a given fingerprint. Similarity is calculated by the edit distance of the callstacks. A diff of the callstacks is provided for each candidate fingerprint.

```
{
"project": "my-project",
"fingerprint": "123456789c076385a2e9075781adcddafb712018ad155459ac86c4464b080210",
"limit": 1024,
"candidacy": [{
"type": "distance",
"threshold": 5,
"truncate": 50,
"intersection": 3,
"distance": 10
}]
}
```

`/summary`

endpoint provides information for each fingerprint in a given project. It includes the number of candidate fingerprints and their edit-distance.

```
{
"project": "my-project",
"limit": 1024,
"filter": [{ "timestamp": [
["at-most", "1596484645."],
["at-least","1564862245."]
]}],
"candidacy": {
"type": "distance",
"threshold": 5,
"truncate": 50,
"intersection": 3,
"distance": 10
}
}
```

- Both endpoints have tunable parameters:
`"threshold": 5, // minimum callstack length to be considered "truncate": 50, // shorten the callstack before comparing "intersection": 3, // callstacks need to have at least n frames in common "distance": 10, // minimum distance to be considered a candidate`