diff --git a/macos/CHANGELOG.md b/macos/CHANGELOG.md index 6f9d123e..be145984 100644 --- a/macos/CHANGELOG.md +++ b/macos/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 未发布 + +### 修复 + +- 修复浅色主题在宽屏任务页使用 `taskMode=full` 时正文仍继承 Codex 原生暗色外壳白字、与浅色背景失去对比的问题(#309)。完整画面模式现在与 `ambient` / `banner` 一样强制 Markdown 使用主题声明的文字色,并保留浅色外壳的可读性阴影;背景强度和主题包内容不变。 + ## 1.5.6 — 2026-07-26 ### 安全 diff --git a/macos/assets/dream-skin.css b/macos/assets/dream-skin.css index bd112ec0..2656280b 100644 --- a/macos/assets/dream-skin.css +++ b/macos/assets/dream-skin.css @@ -444,7 +444,7 @@ html[data-dream-skin="active"]:is([data-dream-task-mode="ambient"], [data-dream- backdrop-filter: none !important; } -html[data-dream-skin="active"]:is([data-dream-task-mode="ambient"], [data-dream-art-task-mode="ambient"], [data-dream-task-mode="banner"], [data-dream-art-task-mode="banner"])[data-dream-art-wide="true"] +html[data-dream-skin="active"]:is([data-dream-task-mode="ambient"], [data-dream-art-task-mode="ambient"], [data-dream-task-mode="banner"], [data-dream-art-task-mode="banner"], [data-dream-task-mode="full"], [data-dream-art-task-mode="full"])[data-dream-art-wide="true"] main.main-surface:not(:has([role="main"])) [class*="_markdown"] { color: var(--ds-text) !important; text-shadow: @@ -452,7 +452,7 @@ html[data-dream-skin="active"]:is([data-dream-task-mode="ambient"], [data-dream- 0 0 10px rgb(var(--ds-bg-rgb) / .58); } -html[data-dream-skin="active"][data-dream-shell="light"]:is([data-dream-task-mode="ambient"], [data-dream-art-task-mode="ambient"], [data-dream-task-mode="banner"], [data-dream-art-task-mode="banner"])[data-dream-art-wide="true"] +html[data-dream-skin="active"][data-dream-shell="light"]:is([data-dream-task-mode="ambient"], [data-dream-art-task-mode="ambient"], [data-dream-task-mode="banner"], [data-dream-art-task-mode="banner"], [data-dream-task-mode="full"], [data-dream-art-task-mode="full"])[data-dream-art-wide="true"] main.main-surface:not(:has([role="main"])) [class*="_markdown"] { text-shadow: 0 1px 2px rgb(var(--ds-panel-rgb) / .92), diff --git a/runtime/dream-skin.css b/runtime/dream-skin.css index b2559ffc..ecafd4fd 100644 --- a/runtime/dream-skin.css +++ b/runtime/dream-skin.css @@ -444,7 +444,7 @@ html[data-dream-skin="active"]:is([data-dream-task-mode="ambient"], [data-dream- backdrop-filter: none !important; } -html[data-dream-skin="active"]:is([data-dream-task-mode="ambient"], [data-dream-art-task-mode="ambient"], [data-dream-task-mode="banner"], [data-dream-art-task-mode="banner"])[data-dream-art-wide="true"] +html[data-dream-skin="active"]:is([data-dream-task-mode="ambient"], [data-dream-art-task-mode="ambient"], [data-dream-task-mode="banner"], [data-dream-art-task-mode="banner"], [data-dream-task-mode="full"], [data-dream-art-task-mode="full"])[data-dream-art-wide="true"] __DREAM_SELECTOR_SHELL_MAIN__:not(:has(__DREAM_SELECTOR_HOME_ROUTE_CSS__)) __DREAM_SELECTOR_MARKDOWN__ { color: var(--ds-text) !important; text-shadow: @@ -452,7 +452,7 @@ html[data-dream-skin="active"]:is([data-dream-task-mode="ambient"], [data-dream- 0 0 10px rgb(var(--ds-bg-rgb) / .58); } -html[data-dream-skin="active"][data-dream-shell="light"]:is([data-dream-task-mode="ambient"], [data-dream-art-task-mode="ambient"], [data-dream-task-mode="banner"], [data-dream-art-task-mode="banner"])[data-dream-art-wide="true"] +html[data-dream-skin="active"][data-dream-shell="light"]:is([data-dream-task-mode="ambient"], [data-dream-art-task-mode="ambient"], [data-dream-task-mode="banner"], [data-dream-art-task-mode="banner"], [data-dream-task-mode="full"], [data-dream-art-task-mode="full"])[data-dream-art-wide="true"] __DREAM_SELECTOR_SHELL_MAIN__:not(:has(__DREAM_SELECTOR_HOME_ROUTE_CSS__)) __DREAM_SELECTOR_MARKDOWN__ { text-shadow: 0 1px 2px rgb(var(--ds-panel-rgb) / .92), diff --git a/tools/renderer-runtime.test.mjs b/tools/renderer-runtime.test.mjs index c0492567..7c5fcbc1 100644 --- a/tools/renderer-runtime.test.mjs +++ b/tools/renderer-runtime.test.mjs @@ -264,6 +264,9 @@ export async function runRendererRuntimeTest(assetRoot) { assert.match(css, /--ds-task-full-veil/); assert.match(css, /data-dream-task-mode="full"/); assert.match(css, /background-image:\s*var\(--ds-task-full-veil\),\s*var\(--dream-skin-art\)/); + assert.match(css, + /:is\([^\n{}]*data-dream-task-mode="full"[^\n{}]*data-dream-art-task-mode="full"[^\n{}]*\)\[data-dream-art-wide="true"\]\n\s+main\.main-surface:not\(:has\(\[role="main"\]\)\) \[class\*="_markdown"\]\s*\{\s*color:\s*var\(--ds-text\)\s*!important/, + "Full task mode must keep Markdown on the explicit theme text color."); // Every home/project selector must stay behind the root skin gate. A // marker-class-to-:has() conversion must never leave native layout rules // active after pause/restore. diff --git a/windows/CHANGELOG.md b/windows/CHANGELOG.md index 972f3362..8a0d2ea8 100644 --- a/windows/CHANGELOG.md +++ b/windows/CHANGELOG.md @@ -1,5 +1,11 @@ # Windows Changelog +## 未发布 + +### 修复 + +- 同步修复共享渲染器中浅色 `taskMode=full` 宽屏任务页仍继承原生暗色外壳白字的问题(#309)。该缺陷已在 macOS 实机复现;Windows 平台同步生成相同 CSS,并由双端 renderer 回归锁定选择器。 + ## 1.5.6 — 2026-07-26 ### 安全 diff --git a/windows/assets/dream-skin.css b/windows/assets/dream-skin.css index bd112ec0..2656280b 100644 --- a/windows/assets/dream-skin.css +++ b/windows/assets/dream-skin.css @@ -444,7 +444,7 @@ html[data-dream-skin="active"]:is([data-dream-task-mode="ambient"], [data-dream- backdrop-filter: none !important; } -html[data-dream-skin="active"]:is([data-dream-task-mode="ambient"], [data-dream-art-task-mode="ambient"], [data-dream-task-mode="banner"], [data-dream-art-task-mode="banner"])[data-dream-art-wide="true"] +html[data-dream-skin="active"]:is([data-dream-task-mode="ambient"], [data-dream-art-task-mode="ambient"], [data-dream-task-mode="banner"], [data-dream-art-task-mode="banner"], [data-dream-task-mode="full"], [data-dream-art-task-mode="full"])[data-dream-art-wide="true"] main.main-surface:not(:has([role="main"])) [class*="_markdown"] { color: var(--ds-text) !important; text-shadow: @@ -452,7 +452,7 @@ html[data-dream-skin="active"]:is([data-dream-task-mode="ambient"], [data-dream- 0 0 10px rgb(var(--ds-bg-rgb) / .58); } -html[data-dream-skin="active"][data-dream-shell="light"]:is([data-dream-task-mode="ambient"], [data-dream-art-task-mode="ambient"], [data-dream-task-mode="banner"], [data-dream-art-task-mode="banner"])[data-dream-art-wide="true"] +html[data-dream-skin="active"][data-dream-shell="light"]:is([data-dream-task-mode="ambient"], [data-dream-art-task-mode="ambient"], [data-dream-task-mode="banner"], [data-dream-art-task-mode="banner"], [data-dream-task-mode="full"], [data-dream-art-task-mode="full"])[data-dream-art-wide="true"] main.main-surface:not(:has([role="main"])) [class*="_markdown"] { text-shadow: 0 1px 2px rgb(var(--ds-panel-rgb) / .92),