Skip to content

Feat/native plugin v2#21

Merged
ppgranger merged 3 commits intomainfrom
feat/native-plugin-v2
Mar 7, 2026
Merged

Feat/native plugin v2#21
ppgranger merged 3 commits intomainfrom
feat/native-plugin-v2

Conversation

@ppgranger
Copy link
Copy Markdown
Owner

What

Why

How

Checklist

  • ruff check . passes
  • ruff format --check . passes
  • python3 -m pytest tests/ -v passes (all 207+ tests)
  • New code has tests (if applicable)
  • No secrets or credentials in the diff

Migrate from manual hook injection into settings.json to the native
plugin system. The installer now registers token-saver as a known
marketplace and writes installed_plugins.json in the v2 format that
Claude Code expects.

Changes:
- Add .claude-plugin/plugin.json and marketplace.json
- Add hooks/hooks.json with ${CLAUDE_PLUGIN_ROOT} portable paths
- Move claude/ to scripts/ (hook_pretool.py, wrap.py)
- Add scripts/hook_session.py wrapper for Claude Code plugin hooks
- Add skills/token-saver-config/ and commands/token-saver-stats.md
- Rewrite installers/claude.py: native plugin registration via
  known_marketplaces.json + installed_plugins.json (v2 format)
- Add v1.x migration: clean legacy hooks and old plugin directories
- Update bin/token-saver with versioned cache path resolution
- Add one-time migration message in SessionStart hook
- Version bump to 2.0.0
- Delete claude/ directory entirely

Both install paths produce the same result:
  python3 install.py --target claude
  /plugin marketplace add ppgranger/token-saver && /plugin install token-saver
Reverts the permission_mode → permissionDecision mapping added in
meeehdi-dev/fix/pretool-permissions. Restores the original behavior
of always allowing rewritten commands.
@ppgranger ppgranger merged commit b997b19 into main Mar 7, 2026
4 checks passed
@ppgranger ppgranger deleted the feat/native-plugin-v2 branch March 7, 2026 11:30
ppgranger added a commit that referenced this pull request Mar 10, 2026
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.

1 participant