Skip to content

[codex] fix Pet activity pill theme compatibility - #339

Draft
semantic-craft wants to merge 4 commits into
Fei-Away:mainfrom
semantic-craft:codex/fix-pet-overlay-compat
Draft

[codex] fix Pet activity pill theme compatibility#339
semantic-craft wants to merge 4 commits into
Fei-Away:mainfrom
semantic-craft:codex/fix-pet-overlay-compat

Conversation

@semantic-craft

@semantic-craft semantic-craft commented Aug 4, 2026

Copy link
Copy Markdown

What changed

  • recognize only Codex Pet activity-slot-0 through activity-slot-3 composition surfaces
  • give the native activity-pill material an opaque Codex surface-token background while Dream Skin is active
  • revalidate the live target, restore the bounded style after reload, and remove it before pause or shutdown
  • exclude the Pet initialRoute=/avatar-overlay root from main-renderer discovery so operation progress and the full theme payload never enter that auxiliary window
  • on watcher startup, remove only Dream Skin's own stale operation host from exact known Pet auxiliary surfaces, covering upgrades from an older watcher that could inject just before shutdown
  • leave the main renderer, avatar root, mascot, microphone, and voice-control surfaces untouched

Why

Codex Pet activity pills are separate transparent native composition windows. When Dream Skin paints a high-contrast wallpaper behind them, their transparent material samples that wallpaper and produces repeated rounded wallpaper strips. Separately, the Pet avatar root can expose enough generic shell markers to pass the old renderer probe, allowing an operation-progress host to be shown there without receiving the matching completion event. The Pet renderer itself is healthy; Dream Skin needs explicit auxiliary-window boundaries plus a narrowly scoped compatibility treatment for the four activity surfaces.

Impact

The Pet remains visible and interactive, but its task pills no longer duplicate the active wallpaper. No Codex app bundle, signature, or native Pet assets are modified, and applying the fix does not require restarting Codex.

Validation

  • node --check macos/scripts/injector.mjs
  • node macos/tests/injector-bootstrap.test.mjs
  • git diff --check
  • bash macos/tests/run-tests.sh
  • live macOS verification across all four activity slots, auxiliary mascot/voice surfaces, target replacement, and user-confirmed native composite
  • live begin/finish-operation regression proving the exact token appears only in the main renderer, never in avatar-overlay, and leaves zero operation hosts after completion
  • live old-watcher-to-new-watcher migration verification proving auxiliary operation hosts are cleared while Pet activity styling remains bounded

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.

1 participant