v2 pet look-direction rows (9-10) never activate — pet does not look toward cursor (feature-gated?)

Open 💬 2 comments Opened Jul 19, 2026 by feifeifeifeifeifeifei
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

Summary

Valid spriteVersionNumber: 2 pets (8×11 atlas with the 16 look-direction cells in rows 9–10) render and animate correctly for all 9 standard states, but the look-direction behavior never activates — the pet never turns its head toward the cursor. Rows 9–10 appear to be completely unused at runtime.

Possibly related to #20706 (pet/avatar overlay feature gate blocked) — this looks like it could be the same server-side gating, but for the look-direction runtime specifically rather than the overlay itself.

Environment

  • Desktop app: ChatGPT.app for macOS, build 26.715.31925 (prod flavor)
  • Codex CLI: 0.145.0-alpha.18 (originator: Codex Desktop / vscode source)
  • OS: macOS 15 (Darwin 24.6.0), Apple Silicon
  • Plan: ChatGPT account login (auth_mode = chatgpt)
  • Pets: custom pets installed under ~/.codex/pets/<id>/ per the v2 pet contract

Steps to reproduce

  1. Install a valid v2 pet under ~/.codex/pets/<id>/ with:
  • pet.json containing "spriteVersionNumber": 2
  • spritesheet.webp, 1536×2288 RGBA, 8 columns × 11 rows (192×208 cells)
  • rows 0–8 = standard states, rows 9–10 = the 16 clockwise look directions (000° = up)
  1. Select the pet, summon it via pet mode.
  2. Fully quit and relaunch the app (⌘Q) to rule out stale caching.
  3. Move the cursor slowly around / near the pet.

Expected

Per the v2 contract shipped with the bundled hatch-pet skill (references/codex-pet-contract.md): rows 9–10 provide a 16-direction look loop; neutral/front is the pointer deadzone falling back to idle. The pet should glance toward the cursor.

Actual

  • All row 0–8 animations play normally (idle, running, waving, jumping, failed, waiting, review).
  • The pet never enters any look-direction pose. Rows 9–10 are never sampled, regardless of cursor position or proximity.
  • No errors in the desktop logs; the avatar overlay window is created and visible (rendererWindowAppearance=avatarOverlay, rendererWindowVisible=true).

What I verified before filing

  • Atlas validity: 1536×2288, 8×11 grid, mode=RGBA, transparent background, zero RGB residue under fully transparent pixels; passes the bundled hatch-pet deterministic validation.
  • Manifest: pet.json declares spriteVersionNumber: 2 and the correct spritesheetPath; the 2288-px sheet is accepted (a v1-declared sheet of this height is rejected, so the version field is definitely being read).
  • Reproduces with multiple pets: two independent, fully valid v2 pets (one upgraded from v1 via the hatch-pet skill, one installed via npx codex-pets add) show identical behavior — standard rows fine, look rows never used.
  • Not a permissions issue: the overlay reads the cursor via Electron's screen.getCursorScreenPoint() (no Accessibility permission required), and the app bundle does contain the cursor-tracking and spriteVersionNumber handling code paths.

Questions

  1. Is the look-direction runtime currently behind a server-side feature gate (Statsig), similar to what was reported in #20706?
  2. If so, is there a rollout timeline, a minimum app build, or any user-visible way to tell whether the feature is enabled for an account/build?
  3. If it is not gated, what else does the runtime require beyond spriteVersionNumber: 2 and a valid 8×11 atlas?

Happy to provide the full validation JSON, sample atlas, or logs if useful. Thanks — the pets feature is genuinely delightful, looking forward to the head-turning part

View original on GitHub ↗

2 Comments

github-actions[bot] contributor · 1 month ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #33224

Powered by Codex Action

RitsuTsao · 11 days ago

I can still reproduce this issue on a newer Codex Desktop build as of August 17, 2026.

Environment:

  • macOS 26.5.2 (25F84), Apple Silicon
  • Codex Desktop 26.810.52044, build 6662
  • Codex CLI 0.148.0-alpha.9
  • ChatGPT account login
  • Three independently packaged custom v2 pets tested

All three pet packages have:

  • "spriteVersionNumber": 2
  • A valid 1536 × 2288 WebP spritesheet
  • Populated look-direction rows 9–10
  • Successful local v2 structural validation

The standard animations continue to work, but moving the physical mouse cursor around or near the pet never activates any look-direction frame. Computer Use was not active during these tests.

Fully quitting and reopening Codex, tucking away and waking the pet, switching pets, and refreshing the custom-pet list do not change the behavior.

I also confirmed that macOS Reduce Motion is not enabled. I could not find any user-facing cursor-following or gaze-tracking setting under Pets.

This appears consistent with the physical-cursor input-path issue described here and in #33224, rather than a malformed pet package or local configuration problem.

Transparency disclosure: This comment was drafted and will be posted through Codex at my request. Codex inspected the local app version, pet manifests, spritesheet dimensions, validation results, and relevant bundled runtime behavior; I reviewed and approved the comment before posting.