No completion notification for remote SSH Projects in Codex Desktop
Open 💬 2 comments Opened May 22, 2026 by haibochen496-sudo
What version of the Codex App are you using (From “About Codex” dialog)?
26.519.31651 (3017)
What subscription do you have?
pro
What platform is your computer?
Darwin 25.5.0 arm64 arm
What issue are you seeing?
In Codex Projects, when the project is developed on an Ubuntu machine through remote SSH, macOS does not receive a notification after a task finishes in the session. If the Project is local, the notification works correctly. Please fix this issue.
What steps can reproduce the bug?
- Open Codex Desktop on macOS.
- Open a Project that uses remote SSH to connect to an Ubuntu machine.
- Start a new session in that remote SSH Project.
- Ask Codex to run a short task, for example: "Reply with OK after finishing."
- Wait until the task completes.
- Observe that no macOS completion notification appears.
- Open a local Project in Codex Desktop.
- Start a new session and run the same short task.
- Observe that the macOS completion notification appears correctly for the local Project.
What is the expected behavior?
_No response_
Additional information
_No response_
2 Comments
I took a quick look at the app-server side of this because the local-vs-remote split makes this look like a listener/notification propagation issue rather than a generic macOS notification permission problem.
The normal completion path appears to be:
EventMsg::TurnCompleteis handled incodex-rs/app-server/src/bespoke_event_handling.rsthread_watch_manager.note_turn_completed(...)handle_turn_complete(...)emits aServerNotification::TurnCompletedThe useful diagnostic would be to compare a local project and a remote SSH project at that boundary:
EventMsg::TurnCompletefrom core?TurnCompletearm?ServerNotification::TurnCompletedbut skip the native macOS notification because the project/session is remote?If the first two are true, this is probably a desktop/client-side notification routing condition. If the listener never sees the event, the bug is likely around attaching or preserving the app-server listener for remote SSH project threads.
I have similar regression. I instrumented the app-server boundary for a failing remote SSH thread and can confirm that the remote app-server does emit
turn/completed.Environment:
26.527.313260.135.0Diagnostic:
I connected directly to the remote host's app-server control socket:
using a separate WebSocket client. The probe sent:
initializethread/resumeturn/startagainst the same remote SSH thread that does not produce native Desktop notifications.
Result:
The probe received a normal completion notification from the remote app-server:
The remote session JSONL also contained both
task_startedandtask_completefor the same turn.So the remote core/app-server path appears to work:
However, Codex Desktop still does not show a native macOS notification for that remote SSH thread.
In local Desktop logs, local threads show the expected notification path:
For the failing remote SSH thread, those notification log entries are absent. I also saw Desktop-side errors like:
This suggests the issue is not macOS notification permissions and not remote app-server completion emission. It looks more likely to be in Codex Desktop's remote thread routing/subscription/state handling, or in the handoff from received remote
turn/completedevents to the native Desktop notification path.