From bb8fb43464fd4631fb43b9466eaeb6e5b2af6603 Mon Sep 17 00:00:00 2001 From: efiten Date: Mon, 30 Mar 2026 09:23:53 +0200 Subject: [PATCH 01/32] local: add Matomo analytics tracking --- public/index.html | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/public/index.html b/public/index.html index 55f66d9b..b8cc5322 100644 --- a/public/index.html +++ b/public/index.html @@ -110,5 +110,19 @@ + + + From f0fc9406f4611a357cd1b62dd91d658d48e51031 Mon Sep 17 00:00:00 2001 From: efiten Date: Tue, 31 Mar 2026 10:24:40 +0200 Subject: [PATCH 02/32] chore: update MATOMO_COMMIT SHA after master rebase Co-Authored-By: Claude Sonnet 4.6 --- deploy-live.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy-live.sh b/deploy-live.sh index bc100d83..71fae575 100644 --- a/deploy-live.sh +++ b/deploy-live.sh @@ -2,7 +2,7 @@ set -e DEPLOY_DIR="$(cd "$(dirname "$0")" && pwd)" -MATOMO_COMMIT="38c30f9" +MATOMO_COMMIT="bb8fb43" cd "$DEPLOY_DIR" From a5b8e7d46b7d3020b6a37795c004eb8d9c0f9da2 Mon Sep 17 00:00:00 2001 From: efiten Date: Wed, 1 Apr 2026 23:27:07 +0200 Subject: [PATCH 03/32] fix: null-guard animLayer and liveAnimCount in nextHop after destroy Async timers (setInterval/setTimeout) started by animateHop() can fire after destroy() has nulled animLayer and removed DOM elements. This caused three console errors on the Live page when navigating away mid- animation. Guards added at each async callback site. Co-Authored-By: Claude Sonnet 4.6 --- public/index.html | 56 ++++++++++++++++++++-------------------- public/live.js | 8 +++--- test-frontend-helpers.js | 28 ++++++++++++++++++++ 3 files changed, 61 insertions(+), 31 deletions(-) diff --git a/public/index.html b/public/index.html index b8cc5322..7a406cd7 100644 --- a/public/index.html +++ b/public/index.html @@ -22,9 +22,9 @@ - - - + + + @@ -85,31 +85,31 @@
- - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + +