openai / openai/codex

[macOS][Pet] Notification controls trigger the parent bubble and open the main app

Open
#38,950 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app bug pets
Dominant language
Rust
Stars
125k
Forks
19.5k
PR merge metrics
PR metrics pending

Description

What version of the Codex App are you using?

ChatGPT/Codex Desktop 26.810.52044, build 6662.

The same behavior was also observed on 26.810.50856.

What subscription do you have?

ChatGPT Plus

What platform is your computer?

macOS 26.5.2 (25F84)
Apple Silicon / arm64
Darwin 25.5.0 arm64 arm

What issue are you seeing?

Controls inside the floating Codex Pet notification bubble do not behave independently from the notification body.

Clicking the notification's close (X) control opens or activates the main ChatGPT/Codex window instead of only dismissing the notification. The notification may therefore appear not to close.

The same click-routing problem can affect the completed-task checkmark and other nested controls: clicking the displayed control can trigger the outer notification action instead of, or in addition to, the intended control action.

Clicking the notification body itself should continue to open the associated task. The problem is that clicks on nested controls propagate to that parent action.

The issue was reproduced with a custom pet, but it does not appear to be caused by the pet manifest or spritesheet. The notification tray is implemented by the shared avatar overlay UI.

What steps can reproduce the bug?
  1. Launch ChatGPT/Codex Desktop on macOS.
  2. Enable and wake the floating Codex Pet.
  3. Complete a task so the Pet displays a completion notification.
  4. Click the notification's close (X) control.
  5. Observe that the main ChatGPT/Codex window opens or activates instead of the click only dismissing the notification.
  6. Trigger another completion notification.
  7. Click the green completed-task/checkmark control.
  8. Observe that the outer notification action may also run.
What is the expected behavior?
  • Clicking the notification body should open the associated task in the main window.
  • Clicking X should dismiss the notification without opening or activating the main window.
  • Clicking the completed-task checkmark should dismiss the completed notification without triggering its parent action.
  • Reply, stop, expand/collapse, approval, and other nested controls should perform only their own actions.
Additional information

Local inspection indicates an event-propagation problem in the shared avatar-overlay notification frame.

The waiting-request action buttons already stop click and pointer propagation. However, the close, completed-task dismiss, reply, stop, and expand/collapse handlers in the affected builds do not consistently stop propagation before invoking their own callbacks.

This allows the notification row's parent click handler to receive the same click and execute the open-main-window action.

No private task IDs, task titles, local paths, or custom-pet assets are included in this report.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Search the shared avatar-overlay notification frame and inspect the close, completed-task dismiss, reply, stop, and expand/collapse handlers alongside the existing waiting-request action buttons. Reproduce the notification flow on macOS, then verify that each nested control performs only its own action while clicking the notification body still opens the associated task.

Written by the indexing model from the issue text.

Assessment

Tech stack
macos, rust
Domain
desktop
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
70/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.