Windows Desktop: plugin Hooks settings stay on “Loading hooks…” with no local projects
Nobody has claimed this yet.
- 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, version4.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:
- Use Codex Desktop on Windows with no saved local projects.
- Install and enable Ponytail 4.9.0, which declares plugin lifecycle hooks.
- Open a projectless task.
- Open the plugin's hooks settings.
- 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_succeededfor Ponytail.- No
hooks/listrequest entries in the inspected desktop logs from the affected session. - The hooks query in
app-initial-ffce11d82782.jsis enabled only when thecwdsarray 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.jsderives those roots from workspace root options and project context, then passes the query'sisPendingas 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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