openai / openai/codex

Windows Desktop: plugin Hooks settings stay on “Loading hooks…” with no local projects

Open
#43,123 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app bug hooks skills windows-os
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

Environment
  • Codex Desktop on Windows x64.
  • Installed Windows package version: 26.901.5280.0 (read from the installed package path, not the About dialog).
  • Desktop logs report release 26.901.41600.
  • Plugin: ponytail@ponytail, version 4.9.0.
  • No saved local Codex projects; only cloud ChatGPT projects are present. The affected workflow uses a projectless local task.
What issue are you seeing?

Opening the hooks settings for Ponytail leaves the UI indefinitely displaying “Loading hooks…”. The hook list and its review/trust controls never become available.

The plugin installation succeeded, the plugin is enabled, and its declared hook configuration and handler files exist.

Steps to reproduce

The following describes the affected setup; it has not been repeated in a clean profile:

  1. Use Codex Desktop on Windows with no saved local projects.
  2. Install and enable Ponytail 4.9.0, which declares plugin lifecycle hooks.
  3. Open a projectless task.
  4. Open the plugin's hooks settings.
  5. Observe that “Loading hooks…” does not finish.
Expected behavior

Plugin/user hooks should be available for inspection and trust even when no local project is registered. If a project context is required, display an actionable explanation instead of a perpetual loading state.

Diagnostic evidence and suspected cause

Read-only inspection of the installed desktop logs and shipped renderer bundle found:

  • plugin_install_succeeded for Ponytail.
  • No hooks/list request entries in the inspected desktop logs from the affected session.
  • The hooks query in app-initial-ffce11d82782.js is enabled only when the cwds array is nonempty: enabled: t != null && t.length > 0.
  • Its query function also guards against missing/empty roots with Cannot list hooks without project roots.
  • hooks-settings-b393dd12edee.js derives those roots from workspace root options and project context, then passes the query's isPending as the loading flag.

This suggests that an empty root list disables the query while the settings UI still renders its pending state as “Loading hooks…”. This is a source-based diagnosis consistent with the logs, not a debugger-confirmed runtime trace of the query state.

The plugin manifest declares "hooks": "./hooks/claude-codex-hooks.json"; the file contains SessionStart, SubagentStart, and UserPromptSubmit handlers.

Possible workaround and fix direction

Adding a local project may enable the query, but that workaround has not yet been verified in this environment.

Please handle the empty-project case explicitly and allow global/plugin hook discovery without requiring a registered local project. A regression test should cover opening plugin hooks settings with zero saved local projects.

Related report

Possibly the same underlying empty-project discovery problem as #30701, which reports “No hooks found” on macOS. This report adds a Windows build, an indefinite loading symptom, and evidence of the disabled-query/pending-state path.

No claim is made here about whether the hook commands themselves execute; the observed failure is in the settings UI before they can be reviewed.

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

Reproduce the hooks settings flow with zero saved local projects, then inspect app-initial-ffce11d82782.js and hooks-settings-b393dd12edee.js around the roots, query, and loading state described in the report. Add a regression test for this empty-project case and verify that hooks settings no longer remains indefinitely on “Loading hooks…” while still providing an actionable result.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, rust
Domain
desktop, frontend, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.