Skip to content

fix: support Codex 26.803 Owl composer layout - #359

Closed
kanzaler123 wants to merge 4 commits into
Fei-Away:mainfrom
kanzaler123:codex/fix-owl-26-803-composer
Closed

fix: support Codex 26.803 Owl composer layout#359
kanzaler123 wants to merge 4 commits into
Fei-Away:mainfrom
kanzaler123:codex/fix-owl-26-803-composer

Conversation

@kanzaler123

@kanzaler123 kanzaler123 commented Aug 12, 2026

Copy link
Copy Markdown

Summary

  • add backward-compatible selector aliases for the Codex 26.803 Owl composer body, toolbar, and home utility row
  • retain every legacy selector so existing Codex versions continue to use the same generic runtime contract
  • regenerate Windows and macOS runtime assets from the canonical selector source

Scope boundary

This PR changes only the shared selector contract, generated runtime assets, regression tests, and task progress record. It does not include or modify any theme package, theme configuration, palette, artwork, background image, or user-specific setting.

Root cause and impact

Codex 26.803 Owl exposes _ComposerLayoutBody_*, _ComposerLayoutFooter_*, and _ComposerHomeUtilityBar_* CSS Module prefixes instead of the legacy composer selectors. When the editor receives focus, the shared runtime therefore misses those nodes and the native composer surface can split visually from the themed utility row.

The new aliases use stable module-name prefixes, never version hashes. After the patch, Owl and legacy layouts both receive the same theme-defined generic composer styling.

Validation

  • node tools/sync-runtime-assets.mjs --check
  • selector/runtime regression tests: 4/4 passed
  • Windows and macOS injector.mjs --check-payload: passed
  • portable Node suite: 88 passed, 2 skipped
  • live Codex 26.803 focus-state verification: passed

Three macOS-only fixtures cannot execute on the Windows validation host: directory fsync, privileged symlink creation, and /bin/bash window readiness. They are unrelated to the selector/runtime files changed here.

@kanzaler123
kanzaler123 marked this pull request as ready for review August 12, 2026 02:05
@Fei-Away

Copy link
Copy Markdown
Owner

这个 PR 指出的问题是对的,而且后续被证明比当时看到的更严重——26.814 之后 _ComposerLayoutRoot_ 才是真正的输入框壳,旧别名会误绑到内层 _ComposerLayoutFooter_,造成主题样式只落在底部工具栏(#373)。

相关别名已经通过 #372 / v1.5.15 与 v1.5.16 合入 main,当前合同里已经包含:

composer-chrome  :is(.composer-surface-chrome, [class*="_ComposerLayoutRoot_"], [data-composer-surface-variant][data-composer-radius-variant])
composer-toolbar :is(.composer-surface-chrome [class*="_footer_"], [class*="_ComposerLayoutRoot_"] [class*="_ComposerLayoutFooter_"], …)
home-utility     :is([class*="_homeUtilityBar_"], [class*="_ComposerHomeUtilityBar_"])

因此本 PR 已被 main 吸收,关闭以收敛积压。另外顺带说明:合同的 verifiedAgainst 此前一直停在 26.727,没有跟上这些扩展;#387 把它改成逐版本、带证据强度的记录,并加了 CI 闸门防止再次脱节。

@Fei-Away Fei-Away closed this Aug 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants