docs(audits): local vs marketplace hook delivery re-read; Remote-SSH probe reproduces #407 on 3.19.3 - #500
Conversation
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
commit: |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 224c18820f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| Until that matrix is filled in, the install default stays `--mode local` | ||
| (hooks proven on desktop windows, no UI step), `--mode marketplace` stays the | ||
| staged Customize hand-off, and Doctor keeps proving registration (`AB7322`) |
There was a problem hiding this comment.
Stop treating static hook shape as Remote-SSH delivery proof
In the Remote-SSH scenario established above, inspectCursorPluginHooks only parses the manifest and checks script existence, but its AB7322 message says Cursor runs and delivers the hooks and its duplicate check advises removing ~/.cursor/hooks.json (packages/agent-bundle/src/install/cursor-hooks-registration.ts:349-445). The probe shows that manifest hooks produce no events while that user-level file is the working delivery path, so keeping Doctor unchanged reports the broken install as registered and can tell users to delete their only functioning workaround; the diagnostic must distinguish static manifest validity from actual Remote-SSH delivery.
Useful? React with 👍 / 👎.
| Read-out: in a Remote-SSH window the remote extension host loads local | ||
| plugins from the remote `~/.cursor/plugins/local`, but their hooks are not | ||
| executed on the remote host, while user-level `~/.cursor/hooks.json` on the | ||
| remote is. This reproduces #407 (also `~/.cursor-server`) on a current build | ||
| and is independent of the emitted shape (the probe was hand-written). |
There was a problem hiding this comment.
Reconcile the canonical Cursor capability evidence
This newly recorded Remote-SSH reproduction contradicts the canonical capability source at packages/agent-bundle/src/adapters/capabilities/cursor-2026-08-28.json:610, which still says the ~/.cursor-server report is not reproducible and attributes it to a vendor-fixed gap. Because that JSON is the source used by the adapters and generated reference pages, leaving it unchanged preserves the obsolete conclusion even after this audit disproves it; scope or replace that evidence in the same change.
AGENTS.md reference: AGENTS.md:L78-L85
Useful? React with 👍 / 👎.
224c188 to
c250539
Compare
…ook delivery and the Remote-SSH probe (#407)
c250539 to
b17c7bd
Compare
Docs-only. Adds §7 to
docs/audits/2026-09-03-cursor-plugin-hooks-registration.md.Why
The maintainer asked whether agent-bundle should install into Cursor as a marketplace plugin because marketplace-installed plugins fire hooks and user-local installs do not. The record was re-read against that premise and a non-interactive probe was run on this machine's live Cursor (Remote-SSH, client and server 3.19.3).
What the section records
Executing hook … from claude-plugin config,Running script in directory: ~/.cursor/plugins/local/{tracedecay,cargo-hauler}, 198 of 220 plugin hook executions in the agent-bundle window). Marketplace hooks were never observed instead of local ones; the marketplace state cannot be produced by an installer (§4–§5, unchanged).loadUserLocalPlugin ab-hooks-probe loaded … 0 failures), but their hooks never ran on the remote host across seven concurrent conversations, while identical commands from a remote~/.cursor/hooks.jsonran within seconds (28 events,cursor_version: "3.19.3"). This reproduces Cursor pack: manifest-declared hooks never fire for tool events (Cursor 3.16) — emitted installer must register hooks in ~/.cursor/hooks.json so the plugin works out of the box #407 (filed from~/.cursor-server). Whether marketplace plugin hooks run in Remote-SSH windows, and on which machine, was not observed; the asymmetry hypothesis is labelled as such.No install-path change:
--mode localstays the default,--mode marketplacestays the staged Customize hand-off.Refs #407, #424.
Review status
Docs-only;
skip-changeset. No review re-request is posted per maintainer instruction.