* feat(plugins): add Claude Code marketplace plugin compatibility
- Add MarketplaceManifest deserialization type for marketplace.json
- Add marketplace-aware scanning to scan_root (resolves nested plugins
via marketplace.json source field)
- Handle cache/ and marketplaces/ container directory layouts for
Claude Code plugin discovery
- Detect marketplace indirection during forge plugin install
- Count MCP servers from .mcp.json sidecar in trust prompt
- Copy only effective plugin root during install (not entire repo)
- Add CLAUDE_PLUGIN_ROOT env var alias for hook and MCP subprocesses
- Add CLAUDE_PROJECT_DIR and CLAUDE_SESSION_ID env var aliases
- Add modes count to trust prompt, /plugin info, and /plugin list
- Add marketplace plugin test fixture and comprehensive tests
* fix(tests): stabilize flaky tests
- test_format_path_for_display_no_home: explicitly set home to None
instead of relying on Faker-generated random value
- test_hook_exit_before_prompt_response_does_not_hang: increase
elapsed threshold from 3s to 4s to account for parallel test load
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* fix(tests): force-track .mcp.json fixture ignored by .gitignore
Root cause: .gitignore line 44 contains '.mcp.json' which prevented
the test fixture at marketplace_author/plugin/.mcp.json from being
committed. Test passed locally (file existed on disk) but failed on
CI (file missing from git checkout).
Fix: git add -f the specific fixture file.
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>