diff --git a/syz-cluster/dashboard/handler.go b/syz-cluster/dashboard/handler.go
index 537e5413661f..d443d134c1c6 100644
--- a/syz-cluster/dashboard/handler.go
+++ b/syz-cluster/dashboard/handler.go
@@ -117,6 +117,7 @@ func (h *dashboardHandler) seriesList(w http.ResponseWriter, r *http.Request) er
WithFindings: r.FormValue("with_findings") != "",
Limit: perPage,
Offset: offset,
+ Name: r.FormValue("name"),
},
// If the filters are changed, the old offset value is irrelevant.
FilterFormURL: urlutil.DropParam(baseURL, "offset", ""),
@@ -171,6 +172,7 @@ func (h *dashboardHandler) seriesInfo(w http.ResponseWriter, r *http.Request) er
*db.Series
Patches []*db.Patch
Sessions []SessionData
+ Versions []*db.Series
TotalPatches int
}
var data SeriesData
@@ -187,6 +189,11 @@ func (h *dashboardHandler) seriesInfo(w http.ResponseWriter, r *http.Request) er
return fmt.Errorf("failed to query patches: %w", err)
}
data.TotalPatches = len(data.Patches)
+ // Note: There may be some false positives, but there's no straightforward way to filter them out.
+ data.Versions, err = h.seriesRepo.ListAllVersions(ctx, data.Series.Title)
+ if err != nil {
+ return fmt.Errorf("failed to query all series versions: %w", err)
+ }
sessions, err := h.sessionRepo.ListForSeries(ctx, data.Series)
if err != nil {
return fmt.Errorf("failed to query sessions: %w", err)
diff --git a/syz-cluster/dashboard/templates/index.html b/syz-cluster/dashboard/templates/index.html
index b52da738f4ef..afaa87d73df7 100644
--- a/syz-cluster/dashboard/templates/index.html
+++ b/syz-cluster/dashboard/templates/index.html
@@ -6,6 +6,10 @@
+
+
+
+