From ff13234b3d22cebb56aaa1bfbf2b5403ec80f304 Mon Sep 17 00:00:00 2001 From: Codeman maintainer Date: Sat, 15 Aug 2026 06:49:39 +0200 Subject: [PATCH] review fixes: pin alert-overlay opacity against tab-enter's ::before, guard stripBottom against a non-finite strip.top Co-Authored-By: Claude Fable 5 --- src/web/public/constants.js | 4 +++- src/web/public/styles.css | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/web/public/constants.js b/src/web/public/constants.js index b716b05b..56f3852a 100644 --- a/src/web/public/constants.js +++ b/src/web/public/constants.js @@ -286,7 +286,9 @@ function computeLineagePath(input) { // sitting above further rows (see the corridor note above the constants). const span = Math.abs(cx - px); const stripBottom = - strip && Number(strip.height) > 0 ? Number(strip.top) + Number(strip.height) : Number.NEGATIVE_INFINITY; + strip && Number(strip.height) > 0 && Number.isFinite(Number(strip.top)) + ? Number(strip.top) + Number(strip.height) + : Number.NEGATIVE_INFINITY; const baseline = Math.max(pBottom, cBottom, stripBottom); const dip = Math.min(LINEAGE_DIP_MAX_PX, Math.max(LINEAGE_DIP_MIN_PX, LINEAGE_DIP_BASE_PX + span * LINEAGE_DIP_PER_PX)) + diff --git a/src/web/public/styles.css b/src/web/public/styles.css index 1f8056cc..5df82884 100644 --- a/src/web/public/styles.css +++ b/src/web/public/styles.css @@ -1486,6 +1486,12 @@ html[data-line-anim="packet"] .connection-line.line-enter { inset: -2px; border-radius: inherit; pointer-events: none; + /* Explicit: .tab-enter::before (entrance animations) parks ::before at + opacity 0 with fill-mode both, and an alerted tab that is also entering + would otherwise inherit that and render an invisible alert. Our animation + shorthand already displaces theirs at this specificity; the opacity must + be pinned the same way. */ + opacity: 1; border: 2px solid var(--red); background: rgba(239, 68, 68, 0.12); box-shadow: 0 0 8px rgba(239, 68, 68, 0.4); @@ -1505,6 +1511,7 @@ html[data-line-anim="packet"] .connection-line.line-enter { inset: -2px; border-radius: inherit; pointer-events: none; + opacity: 1; /* see the action variant above */ border: 2px solid var(--yellow); background: rgba(234, 179, 8, 0.1); box-shadow: 0 0 8px rgba(234, 179, 8, 0.35);