diff --git a/api/wevia-ux-scroll-fix-apply.sh b/api/wevia-ux-scroll-fix-apply.sh new file mode 100755 index 000000000..5d133f5c3 --- /dev/null +++ b/api/wevia-ux-scroll-fix-apply.sh @@ -0,0 +1,94 @@ +#!/bin/bash +# Doctrine 223 opus-phase80 - FIX scroll splat + body display:flex conflict +PAGE="${1:-weval-technology-platform}" +TS=$(date +%Y%m%d-%H%M%S) +TARGET="/var/www/html/${PAGE}.html" + +if [ ! -f "$TARGET" ]; then + echo "{\"ok\":false,\"err\":\"not found\"}" + exit 1 +fi + +if grep -q "DOCTRINE-223-SCROLL-FIX-FINAL" "$TARGET"; then + echo "{\"ok\":true,\"page\":\"$PAGE\",\"already\":true}" + exit 0 +fi + +GOLD="/var/www/html/vault-gold/opus/${PAGE}.html.doctrine223-scrollfix-${TS}.bak" +mkdir -p /var/www/html/vault-gold/opus +cp "$TARGET" "$GOLD" +SIZE_BEFORE=$(stat -c%s "$TARGET") + +# HIGH-SPECIFICITY override at end of head (winning cascade) +read -r -d '' PAYLOAD <<'CSS' + + + + + + +CSS + +TMP=$(mktemp) +awk -v payload="$PAYLOAD" '/<\/head>/ && !done { print payload; done=1 } { print }' "$TARGET" > "$TMP" + +sudo chattr -i "$TARGET" 2>/dev/null || true +cp "$TMP" "$TARGET" +sudo chattr +i "$TARGET" 2>/dev/null || true +rm -f "$TMP" + +SIZE_AFTER=$(stat -c%s "$TARGET") +MARKER_OK=$(grep -c "DOCTRINE-223-SCROLL-FIX-FINAL" "$TARGET") + +if [ "$MARKER_OK" -ge "1" ] && [ "$SIZE_AFTER" -gt "$SIZE_BEFORE" ]; then + echo "{\"ok\":true,\"page\":\"$PAGE\",\"applied\":true,\"size_before\":$SIZE_BEFORE,\"size_after\":$SIZE_AFTER,\"delta\":$((SIZE_AFTER-SIZE_BEFORE)),\"backup\":\"$GOLD\"}" +else + sudo chattr -i "$TARGET" 2>/dev/null || true + cp "$GOLD" "$TARGET" + sudo chattr +i "$TARGET" 2>/dev/null || true + echo "{\"ok\":false,\"err\":\"verify fail\"}" + exit 1 +fi diff --git a/weval-technology-platform.html b/weval-technology-platform.html index 81cbdc394..bfd5f29c4 100644 --- a/weval-technology-platform.html +++ b/weval-technology-platform.html @@ -606,6 +606,53 @@ body::before { })(); + + + +