From d98711643430544b66ab1d94c9da071982027ff5 Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 8 Oct 2026 08:42:20 -0700 Subject: [PATCH 1/8] [dashboard] Remove text-shadow --- dashboard/dashboard.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dashboard/dashboard.go b/dashboard/dashboard.go index e10098939..221483f75 100644 --- a/dashboard/dashboard.go +++ b/dashboard/dashboard.go @@ -506,13 +506,13 @@ h2 { margin: .25em 0 0 0; font-size: 110%; } from { transform: rotate(0deg); } to { transform: rotate(360deg); } } -.error { color: #ff3355; text-shadow: 0 0 8px rgba(255, 23, 68, 0.65); } +.error { color: #ff3355; } .error.symbol::before { content: "\2717"; font-family: 'Inconsolata', monospace; font-weight: bold;} -.success { color: #00e676; text-shadow: 0 0 8px rgba(0, 230, 118, 0.55); } +.success { color: #00e676; } .success.symbol::before { content: "\2713"; font-family: 'Inconsolata', monospace; font-weight: bold;} -.warning { color: #ffd600; text-shadow: 0 0 8px rgba(255, 214, 0, 0.55); } +.warning { color: #ffd600; } .warning.symbol::before { content: ""; display: inline-block; position: relative; top: -2px; box-sizing: border-box; width: 0.8ch; height: 0.8ch; border: 2px solid #444; border-top-color: #ffd600; border-radius: 50%; animation: spin 3.2s linear infinite; } -.other { color: #e040fb; text-shadow: 0 0 8px rgba(224, 64, 251, 0.55); } +.other { color: #e040fb; } .other.symbol::before { content: "~"; font-family: 'Inconsolata', monospace; font-weight: bold;} .missing { color: #666; } .missing.symbol::before { content: "\00b7"; font-family: 'Inconsolata', monospace; font-weight: bold;} From d7cdc89e142494dae9b5e96df065e2ab32d65958 Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 8 Oct 2026 08:47:16 -0700 Subject: [PATCH 2/8] [dashboard] Replace status glyphs with CSS circles --- dashboard/dashboard.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/dashboard/dashboard.go b/dashboard/dashboard.go index 221483f75..0a2c83186 100644 --- a/dashboard/dashboard.go +++ b/dashboard/dashboard.go @@ -507,13 +507,11 @@ h2 { margin: .25em 0 0 0; font-size: 110%; } to { transform: rotate(360deg); } } .error { color: #ff3355; } -.error.symbol::before { content: "\2717"; font-family: 'Inconsolata', monospace; font-weight: bold;} .success { color: #00e676; } -.success.symbol::before { content: "\2713"; font-family: 'Inconsolata', monospace; font-weight: bold;} .warning { color: #ffd600; } -.warning.symbol::before { content: ""; display: inline-block; position: relative; top: -2px; box-sizing: border-box; width: 0.8ch; height: 0.8ch; border: 2px solid #444; border-top-color: #ffd600; border-radius: 50%; animation: spin 3.2s linear infinite; } .other { color: #e040fb; } -.other.symbol::before { content: "~"; font-family: 'Inconsolata', monospace; font-weight: bold;} +.error.symbol::before, .success.symbol::before, .other.symbol::before { content: ""; display: inline-block; position: relative; top: -2px; width: 0.8ch; height: 0.8ch; background: currentColor; border-radius: 50%; } +.warning.symbol::before { content: ""; display: inline-block; position: relative; top: -2px; box-sizing: border-box; width: 0.8ch; height: 0.8ch; border: 2px solid #444; border-top-color: #ffd600; border-radius: 50%; animation: spin 3.2s linear infinite; } .missing { color: #666; } .missing.symbol::before { content: "\00b7"; font-family: 'Inconsolata', monospace; font-weight: bold;} td.timeline > .missing:nth-child(even) { color: #333; } From 6bd562ae405eeb5d8b412cc1121f6da906774494 Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 8 Oct 2026 08:56:58 -0700 Subject: [PATCH 3/8] [dashboard] Color intermediate commit dots with build status --- dashboard/dashboard.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/dashboard/dashboard.go b/dashboard/dashboard.go index 0a2c83186..b435b6673 100644 --- a/dashboard/dashboard.go +++ b/dashboard/dashboard.go @@ -506,15 +506,15 @@ h2 { margin: .25em 0 0 0; font-size: 110%; } from { transform: rotate(0deg); } to { transform: rotate(360deg); } } +.missing { color: #666; } .error { color: #ff3355; } .success { color: #00e676; } .warning { color: #ffd600; } .other { color: #e040fb; } -.error.symbol::before, .success.symbol::before, .other.symbol::before { content: ""; display: inline-block; position: relative; top: -2px; width: 0.8ch; height: 0.8ch; background: currentColor; border-radius: 50%; } -.warning.symbol::before { content: ""; display: inline-block; position: relative; top: -2px; box-sizing: border-box; width: 0.8ch; height: 0.8ch; border: 2px solid #444; border-top-color: #ffd600; border-radius: 50%; animation: spin 3.2s linear infinite; } -.missing { color: #666; } +.error:not(.missing).symbol::before, .success:not(.missing).symbol::before, .other:not(.missing).symbol::before { content: ""; display: inline-block; position: relative; top: -2px; width: 0.8ch; height: 0.8ch; background: currentColor; border-radius: 50%; } +.warning:not(.missing).symbol::before { content: ""; display: inline-block; position: relative; top: -2px; box-sizing: border-box; width: 0.8ch; height: 0.8ch; border: 2px solid #444; border-top-color: #ffd600; border-radius: 50%; animation: spin 3.2s linear infinite; } .missing.symbol::before { content: "\00b7"; font-family: 'Inconsolata', monospace; font-weight: bold;} -td.timeline > .missing:nth-child(even) { color: #333; } +td.timeline > .missing:nth-child(even) { opacity: 0.5; } .symbol { display: inline-block; width: 1ch; text-align: center; } .symbol:has(.commit) { vertical-align: bottom; } .commit { display: inline-block; writing-mode: sideways-lr; white-space: nowrap; font-size: 12px; line-height: 12px; padding-bottom: 4px; } @@ -706,13 +706,14 @@ $(function() { } } var timeline strings.Builder + style := "" for d := 0; d <= maxDist; d++ { if s, ok := byDist[d]; ok { - style := class(s) + style = class(s) fmt.Fprintf(&timeline, "%s", s.BuildUrl, s.Revision, d, span(style+" symbol", "")) } else { - timeline.WriteString(span("missing symbol", "")) + timeline.WriteString(span("missing "+style+" symbol", "")) } } r += td("class=\"timeline\"", timeline.String()) From 0beebb7c5b1cb6e456e46cb3acd6119871da34ea Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 8 Oct 2026 09:03:29 -0700 Subject: [PATCH 4/8] [dashboard] Use Inconsolata font everywhere and right-align bot labels --- dashboard/dashboard.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/dashboard/dashboard.go b/dashboard/dashboard.go index b435b6673..8caae01e7 100644 --- a/dashboard/dashboard.go +++ b/dashboard/dashboard.go @@ -493,12 +493,12 @@ func main() { dashboard - + - `) + tz, err := time.LoadLocation("America/Los_Angeles") + if err != nil { + fmt.Println("err: ", err.Error()) + } + fmt.Println(time.Now().In(tz).Format("

2006-Jan-2
15:04:05 MST

")) + fmt.Println(`
`) cachePath := filepath.Join(*cacheDir, "cache.json") cache := loadCache(cachePath) @@ -720,16 +725,7 @@ $(function() { } fmt.Println(tr(r)) } - fmt.Println(`
`) - fmt.Println(`

go/dynamic-tools-dashboard, `) - tz, err := time.LoadLocation("America/Los_Angeles") - if err != nil { - fmt.Println("err: ", err.Error()) - } - fmt.Println(time.Now().In(tz).Format("2006-Jan-2 15:04:05 MST")) - fmt.Println(` -

+ fmt.Println(` - -`) +`) } From 6527c6944eca3338baa07e395d9574499c11c3d9 Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 8 Oct 2026 09:19:32 -0700 Subject: [PATCH 6/8] [dashboard] Format timestamp in browser local timezone as YYYY-MM-DD --- dashboard/dashboard.go | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/dashboard/dashboard.go b/dashboard/dashboard.go index d89b9d3d2..6d25cd3a0 100644 --- a/dashboard/dashboard.go +++ b/dashboard/dashboard.go @@ -541,11 +541,7 @@ $(function() { `) - tz, err := time.LoadLocation("America/Los_Angeles") - if err != nil { - fmt.Println("err: ", err.Error()) - } - fmt.Println(time.Now().In(tz).Format("

2006-Jan-2
15:04:05 MST

")) + fmt.Printf("

\n", time.Now().UnixMilli()) fmt.Println(``) cachePath := filepath.Join(*cacheDir, "cache.json") From d94f7d9cdebd077771bc3a2524bb95dd175c04b8 Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Thu, 8 Oct 2026 09:26:59 -0700 Subject: [PATCH 7/8] [dashboard] Reduce vertical spacing between bot rows --- dashboard/dashboard.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dashboard/dashboard.go b/dashboard/dashboard.go index 6d25cd3a0..f5bd36aa4 100644 --- a/dashboard/dashboard.go +++ b/dashboard/dashboard.go @@ -525,9 +525,11 @@ td.timeline > .missing:nth-child(even) { opacity: 0.5; } table { width: 100%; flex-shrink: 0; + border-collapse: collapse; } -td { white-space: nowrap; padding-right: 0.6em; font-size: 18px; text-align: right; } -td.timeline { width: 100%; max-width: 0; overflow: hidden; padding-right: 0; font-size: 24px; text-align: left; } +td { white-space: nowrap; padding: 0 0.6em 0 0; font-size: 18px; line-height: 20px; text-align: right; } +td:nth-child(2) { font-size: 14px; } +td.timeline { width: 100%; max-width: 0; overflow: hidden; padding-right: 0; font-size: 24px; line-height: 20px; text-align: left; }