Skip to content

fix: Claude Desktop (Cowork) marketplace sync — schema-clean Claude hook config#588

Open
Verteletsky wants to merge 3 commits into
DietrichGebert:mainfrom
Verteletsky:fix/582-claude-desktop-sync
Open

fix: Claude Desktop (Cowork) marketplace sync — schema-clean Claude hook config#588
Verteletsky wants to merge 3 commits into
DietrichGebert:mainfrom
Verteletsky:fix/582-claude-desktop-sync

Conversation

@Verteletsky

Copy link
Copy Markdown

Summary

Fix #582 — adding this repo as a marketplace in Claude Desktop (Cowork) fails with "Marketplace sync failed".

Root cause

Sync is validated server-side by Anthropic's marketplace service. It rejects the plugin because the hook config referenced by .claude-plugin/plugin.json uses the non-standard commandWindows field:

status: failed_content — "Unknown hook field(s) ['commandWindows'] in 'SessionStart' matcher 0 hook 0.
Hooks must only use fields the approval UI can display" (same for SubagentStart / UserPromptSubmit)

The $schema URL (#586's theory) is unrelated: the validator parses marketplace.json with $schema present without complaint and proceeds to plugin validation.

Change

  • Add hooks/claude-hooks.json — a copy of the shared config minus commandWindows (schema-clean for the Claude validator).
    • Point .claude-plugin/plugin.json at it. .codex-plugin keeps hooks/claude-codex-hooks.json with commandWindows intact, so Codex/Windows behavior is unchanged.
    • Tests: manifest expectations updated, plus two regression tests — Claude config must never carry commandWindows, and it must stay a mirror of the shared config (guards against drift).
      Simply deleting commandWindows from the shared file was rejected as an option: it would drop the Windows-specific PowerShell guard for Codex hosts and break tests/hooks-windows.test.js.

Test plan

  • node --test tests/*.test.js — 84/84 pass.
    • Verified end-to-end: a branch with this change syncs successfully in Claude Desktop "Add marketplace", and the plugin installs and activates (hooks fire on SessionStart).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Marketplace sync fails in Claude Desktop (Cowork) due to unresolvable $schema URL

1 participant