From b7541e45271732f6f59221043a04e626974eeb23 Mon Sep 17 00:00:00 2001 From: Mingjing <1239443+hackergene@users.noreply.github.com> Date: Mon, 17 Aug 2026 17:15:14 +0800 Subject: [PATCH] fix(macos): remove background artifacts --- CHANGELOG.md | 9 ++++++++ VERSION | 2 +- engine/assets/ai-themestore.css | 38 +++++---------------------------- engine/scripts/injector.mjs | 2 +- tests/run-tests.sh | 10 +++++++-- 5 files changed, 24 insertions(+), 37 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f31b25..dcd3bcc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 0.1.3 — 2026-08-17 + +- Removed the global tiled dot overlay that had become unusually prominent on + newer Codex task views, leaving theme artwork clean and uninterrupted. +- Removed both the 153px normal-task footer gradient and the 42px progress-state + gradient that could leave a dark edge above the composer. +- Expanded regression and live verification gates to cover every + `from-surface` footer variant and reject any restored global dot overlay. + ## 0.1.2 — 2026-08-17 - Added Codex 26.810 compatibility for its renamed Home fade, project utility, diff --git a/VERSION b/VERSION index d917d3e..b1e80bb 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.2 +0.1.3 diff --git a/engine/assets/ai-themestore.css b/engine/assets/ai-themestore.css index dcb757d..18d6342 100644 --- a/engine/assets/ai-themestore.css +++ b/engine/assets/ai-themestore.css @@ -50,20 +50,6 @@ html.ai-themestore body { font-family: "Microsoft YaHei UI", "Microsoft YaHei", "Segoe UI", system-ui, sans-serif !important; } -html.ai-themestore body::before { - content: ""; - position: fixed; - inset: 0; - z-index: 0; - pointer-events: none; - opacity: .42; - background-image: - radial-gradient(circle, color-mix(in srgb, var(--ds-lime) 72%, transparent) 0 1px, transparent 1.8px), - radial-gradient(circle, color-mix(in srgb, var(--ds-cyan) 52%, transparent) 0 1px, transparent 1.8px); - background-position: 0 0, 27px 33px; - background-size: 71px 71px, 89px 89px; -} - html.ai-themestore aside.app-shell-left-panel { background: radial-gradient(circle at 12% 4%, color-mix(in srgb, var(--ds-cyan) 10%, transparent), transparent 28%), @@ -754,10 +740,6 @@ html.ai-themestore[data-themestore-background="full"]:has(main.ai-themestore-hom var(--ai-themestore-art) var(--ds-hero-position) / cover fixed no-repeat !important; } -html.ai-themestore[data-themestore-background="full"] body::before { - opacity: .18; -} - html.ai-themestore #ai-themestore-motion { display: none; } @@ -788,10 +770,6 @@ html.ai-themestore[data-themestore-background="full"][data-themestore-media="vid user-select: none; } -html.ai-themestore[data-themestore-background="full"][data-themestore-media="video"] body::before { - z-index: 1; -} - html.ai-themestore[data-themestore-background="full"][data-themestore-media="video"] body::after { content: ""; position: fixed; @@ -880,12 +858,13 @@ html.ai-themestore[data-themestore-background="full"] clip-path: none !important; } -/* Codex 26.810 renamed the task composer footer gradient tokens. Even after - clearing its image, the 153px sticky backdrop layer can composite as an - opaque black rectangle, so remove the layer itself. */ +/* Codex 26.810 uses both a 153px from/via footer layer and a 42px + from/to-transparent layer while task progress is visible. Even after + clearing their images, sticky compositing can leave a black rectangle or + edge above the composer, so remove every from-surface footer layer. */ html.ai-themestore[data-themestore-background="full"] main.main-surface:not(.ai-themestore-home-shell) - [class~="bg-gradient-to-t"][class~="from-surface"][class~="via-surface"] { + [class~="bg-gradient-to-t"][class~="from-surface"] { display: none !important; background-image: none !important; background-clip: border-box !important; @@ -1032,13 +1011,6 @@ html.ai-themestore[data-themestore-shell="light"] body { font-family: "SF Pro Text", "PingFang SC", "Microsoft YaHei UI", system-ui, sans-serif !important; } -html.ai-themestore[data-themestore-shell="light"] body::before { - opacity: .12 !important; - background-image: - radial-gradient(circle, rgba(226, 85, 99, .35) 0 1px, transparent 1.8px), - radial-gradient(circle, rgba(243, 168, 175, .28) 0 1px, transparent 1.8px) !important; -} - html.ai-themestore[data-themestore-shell="light"] aside.app-shell-left-panel { background: linear-gradient(180deg, #ffffff 0%, #fbf7f8 100%) !important; border: 1px solid rgba(40, 30, 32, .08) !important; diff --git a/engine/scripts/injector.mjs b/engine/scripts/injector.mjs index a185a48..9d5ce0a 100644 --- a/engine/scripts/injector.mjs +++ b/engine/scripts/injector.mjs @@ -631,7 +631,7 @@ async function verifySession(session, expected = null) { : []; const taskGradientSurfaces = [...document.querySelectorAll( '[class~="bg-gradient-to-t"][class~="from-token-main-surface-primary"], ' + - '[class~="bg-gradient-to-t"][class~="from-surface"][class~="via-surface"]', + '[class~="bg-gradient-to-t"][class~="from-surface"]', )].filter((node) => !chatPaneNode?.contains(node)); const nativeSurfacesClear = chatPaneNativeSurfaces.every((node) => { const style = getComputedStyle(node); diff --git a/tests/run-tests.sh b/tests/run-tests.sh index 0947085..f516543 100755 --- a/tests/run-tests.sh +++ b/tests/run-tests.sh @@ -15,6 +15,12 @@ for script in "$ROOT"/engine/scripts/*.mjs "$ROOT"/engine/assets/*.js; do "$NODE" --check "$script" >/dev/null done +if /usr/bin/grep -F -q 'html.ai-themestore body::before' \ + "$ROOT/engine/assets/ai-themestore.css"; then + printf 'Theme CSS must not reintroduce the global tiled dot matrix.\n' >&2 + exit 1 +fi + /usr/bin/grep -F -q '.ai-themestore-composer-surface > [data-composer-layout]' \ "$ROOT/engine/assets/ai-themestore.css" || { printf 'Theme CSS must clear the opaque Codex semantic composer body.\n' >&2 @@ -24,9 +30,9 @@ done printf 'Live verification must reject opaque native layers inside the composer.\n' >&2 exit 1 } -/usr/bin/grep -F -q '[class~="from-surface"][class~="via-surface"]' \ +/usr/bin/grep -F -q '[class~="bg-gradient-to-t"][class~="from-surface"]' \ "$ROOT/engine/assets/ai-themestore.css" || { - printf 'Task coverage must remove the Codex 26.810 composer footer gradient.\n' >&2 + printf 'Task coverage must remove every Codex 26.810 composer footer gradient variant.\n' >&2 exit 1 } /usr/bin/grep -F -q 'gradientSurfaces: taskGradientMetrics' \