ml
Build and Publish / Metadata (push) Successful in 2s
Build and Publish / BuildAndDeployAmd64 (push) Successful in 1m3s

This commit is contained in:
mats committed 2026-09-19 06:50:19 +00:00
1 parent 21f04d696b
commit 8f5c267444
26 files changed
+3039 -10

No files matched your search

+6 -3
View File
@@ -153,7 +153,7 @@ func NewTracker() *Tracker {
// fingerprint.
func (t *Tracker) Record(kind, service, title string, sample Sample) {
normalizeSample(&sample, title)
id := fingerprint(kind, service, NormalizeTitle(title))
id := Fingerprint(kind, service, NormalizeTitle(title))
bucket := HourBucket(sample.Timestamp)
t.mu.Lock()
@@ -174,7 +174,7 @@ func (t *Tracker) Record(kind, service, title string, sample Sample) {
NormalizedTitle: NormalizeTitle(title),
}
issue.PatternSignature = patternSignature(kind, service, title, sample)
issue.PatternID = fingerprint("pattern", issue.PatternSignature)
issue.PatternID = Fingerprint("pattern", issue.PatternSignature)
t.issues[id] = issue
}
@@ -653,7 +653,10 @@ func decodeStatus(encoded string) string {
return b.String()
}
func fingerprint(parts ...string) string {
// Fingerprint creates the stable opaque identifier used for canonical issue
// grouping. Normalization uses it for error rows so offline feature exports
// can count the same issue identity as the live issue tracker.
func Fingerprint(parts ...string) string {
h := fnv.New64a()
_, _ = h.Write([]byte(strings.Join(parts, "\x00")))
return fmt.Sprintf("%016x", h.Sum64())