Skip to content

Extract Claude & Zellij into plugins, add gw wizard#28

Merged
nicksenap merged 2 commits intomasterfrom
feat/thin-core-implementation
Apr 4, 2026
Merged

Extract Claude & Zellij into plugins, add gw wizard#28
nicksenap merged 2 commits intomasterfrom
feat/thin-core-implementation

Conversation

@nicksenap
Copy link
Copy Markdown
Owner

Summary

  • Extracted Claude Code integration into standalone plugin nicksenap/gw-claude (v0.1.0)
  • Extracted Zellij integration into standalone plugin nicksenap/gw-zellij (v0.1.0)
  • Added pre_delete lifecycle hook — fires before workspace deletion (enables gw claude sync harvest)
  • Added gw wizard — interactive setup for plugins and hooks
  • Removed ~2,800 lines of tool-specific code from core

Grove's core is now a pure git worktree orchestrator. Tool integrations are composable via hooks:

[hooks]
post_create = "gw claude sync rehydrate {path} && gw claude copy-md {path}"
pre_delete = "gw claude sync harvest {path}"
on_close = "gw zellij close-pane"

What was removed

  • internal/claude/ — memory sync (→ gw-claude)
  • internal/hook/ — event handler + installer (→ gw-claude)
  • cmd/claude_hook.go, cmd/hook.gogw hook install/uninstall/status, gw _hook
  • ClaudeMemorySync config field
  • zellijCloseFallback() legacy behavior
  • Legacy doctor nudges and copyParentCLAUDEmd fallback

Migration

gw plugin install nicksenap/gw-claude
gw plugin install nicksenap/gw-zellij  # if using Zellij
gw wizard                               # configures hooks interactively

Test plan

  • go test ./... — all unit tests pass
  • e2e/run.sh — 73 pass, 0 fail
  • gw-claude: 61 unit tests + 26 e2e assertions pass
  • gw-zellij: 4 unit tests pass
  • gw plugin install nicksenap/gw-claude works from published release
  • gw plugin install nicksenap/gw-zellij works from published release

🤖 Generated with Claude Code

nicksenap and others added 2 commits April 4, 2026 19:56
Grove's core is now a pure git worktree orchestrator. Tool-specific
integrations (Claude Code, Zellij) live in standalone plugin repos,
composable via the lifecycle hook system.

Removed from core:
- internal/claude/ (memory sync) → nicksenap/gw-claude
- internal/hook/ (event handler + installer) → nicksenap/gw-claude
- cmd/claude_hook.go, cmd/hook.go (gw hook install/uninstall/status, gw _hook)
- ClaudeMemorySync config field, ClaudeDir/WorkspaceDir from Service
- zellijCloseFallback() legacy Zellij behavior
- Legacy doctor nudges for Claude/Zellij
- Legacy copyParentCLAUDEmd fallback in create

Added:
- pre_delete lifecycle hook in cmd/delete.go
- gw wizard — interactive plugin + hook setup
- gw init now suggests gw wizard

Plugin repos (published with releases):
- https://github.com/nicksenap/gw-claude (v0.1.0)
- https://github.com/nicksenap/gw-zellij (v0.1.0)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fix variable shadowing: rename inner exec.Cmd to hookCmd
- Handle plugin.Find error instead of discarding it

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@nicksenap nicksenap merged commit de5eff5 into master Apr 4, 2026
2 checks passed
@nicksenap nicksenap deleted the feat/thin-core-implementation branch April 4, 2026 18:57
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