Commit Graph

11 Commits

Author SHA1 Message Date
Kieran Klaassen
d2ab6c0768 feat(plugin): release v2.39.0 with community contributions
Bump plugin to 2.39.0 with features from Matt Van Horn (@mvanhorn):
context budget precheck, plan sequence numbers, review serial mode,
agent-browser debugging commands, test-browser port detection, lfg
phase gating, and Context7 API key auth.

Also fixes MCP server merge order so plugin servers correctly
overwrite stale entries during sync.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 17:02:50 -07:00
Matt Van Horn
1db76800f9 fix(install): merge config instead of overwriting on opencode target
The sync path's mergeJsonConfigAtKey had incoming entries overwriting
existing user entries on conflict. Reverse the spread order so user
config wins, matching the install path's existing behavior.

Also add merge feedback logging and a test for the sync merge path.

Fixes #125

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 21:43:39 -07:00
Kieran Klaassen
168c946033 feat(sync): add Claude home sync parity across providers 2026-03-02 21:02:21 -08:00
Kieran Klaassen
15b2296bd8 chore: Resolve conflicts with main, update to v0.12.0
- sync.ts: add gemini + all targets, keep copilot, remove cursor (native), use shared hasPotentialSecrets
- install.ts + convert.ts: import both detectInstalledTools and resolveTargetOutputRoot; update --to all block to use new object API; fix resolvedScope ordering (was referencing target before definition)
- CHANGELOG.md: add v0.12.0 entry (auto-detect + Gemini sync)
- README.md: merge all install targets, collapsible output format table, sync defaults to --target all
- package.json: bump to 0.12.0
- sync --target now defaults to "all" when omitted

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-01 15:12:21 -08:00
Kieran Klaassen
4f5efbf852 resolve merge conflict: use native Cursor plugin install, add Copilot sync 2026-02-17 10:24:58 -08:00
Kieran Klaassen
e4d730d5b4 feat: add detect-tools utility and Gemini sync with tests 2026-02-14 21:08:44 -08:00
Brayan Jules
4f7c598f27 feat: Add GitHub Copilot converter target
Add Copilot as the 6th converter target, transforming Claude Code plugins
into Copilot's native format: custom agents (.agent.md), agent skills
(SKILL.md), and MCP server configuration JSON.

Component mapping:
- Agents → .github/agents/{name}.agent.md (with Copilot frontmatter)
- Commands → .github/skills/{name}/SKILL.md
- Skills → .github/skills/{name}/ (copied as-is)
- MCP servers → .github/copilot-mcp-config.json
- Hooks → skipped with warning

Also adds `compound sync copilot` support and fixes YAML quoting for
the `*` character in frontmatter serialization.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 00:14:40 -03:00
ericzakariasson
e469ab0cc0 Remove cursor target and add plugin metadata 2026-02-13 12:14:48 -05:00
Kieran Klaassen
e41904a569 Add droid and cursor sync targets, extract shared path helpers
- Add sync --target droid (skills to ~/.factory/skills/)
- Add sync --target cursor (skills + MCP to .cursor/)
- Extract expandHome/resolveTargetHome to src/utils/resolve-home.ts
- Remove duplicated path helpers from convert.ts and install.ts
- Bump version to 0.6.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 20:37:25 -08:00
Geet Khosla
e84fef7a56 feat: add first-class pi target with mcporter/subagent compatibility 2026-02-12 23:07:34 +01:00
Terry Li
1bdd1030f5 feat: Add sync command for Claude Code personal config (#123)
* feat: Add sync command for Claude Code personal config

Add `compound-plugin sync` command to sync ~/.claude/ personal config
(skills and MCP servers) to OpenCode or Codex.

Features:
- Parses ~/.claude/skills/ for personal skills (supports symlinks)
- Parses ~/.claude/settings.json for MCP servers
- Syncs skills as symlinks (single source of truth)
- Converts MCP to JSON (OpenCode) or TOML (Codex)
- Dedicated sync functions bypass existing converter architecture

Usage:
  compound-plugin sync --target opencode
  compound-plugin sync --target codex

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: address security and quality review issues

Security fixes:
- Add path traversal validation with isValidSkillName()
- Warn when MCP servers contain potential secrets (API keys, tokens)
- Set restrictive file permissions (600) on config files
- Safe forceSymlink refuses to delete real directories
- Proper TOML escaping for quotes/backslashes/control chars

Code quality fixes:
- Extract shared symlink utils to src/utils/symlink.ts
- Replace process.exit(1) with thrown error
- Distinguish ENOENT from other errors in catch blocks
- Remove unused `root` field from ClaudeHomeConfig
- Make Codex sync idempotent (remove+rewrite managed section)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: revert version bump (leave to maintainers)

* feat: bump root version to 0.2.0 for sync command

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-02-08 17:00:48 -06:00