Skip to content

feat: add OpenCode support and fix hook basename detection#1

Merged
itai-delphos merged 1 commit intomasterfrom
fix/opencode-support-and-hook-fixes
Feb 23, 2026
Merged

feat: add OpenCode support and fix hook basename detection#1
itai-delphos merged 1 commit intomasterfrom
fix/opencode-support-and-hook-fixes

Conversation

@itai-delphos
Copy link

OpenCode Integration:

  • Add platform abstraction layer (src/platform.rs) for Claude Code and OpenCode
  • New OpenCode plugin (hooks/rtk-rewrite.ts) with full command rewrite logic
  • OpenCode session provider for discover/learn commands (scans ~/.local/share/opencode/opencode.db)
  • Multi-platform support: discover/learn scan both platforms by default
  • Updated documentation (README, INSTALL, ARCHITECTURE, TROUBLESHOOTING) for dual-platform usage

Hook Fixes:

  • Fix critical basename detection bug: pattern */rtk\ * incorrectly matched git -C /path/to/rtk status
  • Changed to basename checking: only skip if first command word is literally 'rtk'
  • Add workaround for git -C/-c flags (not yet supported by RTK core)
    • Hooks now skip rewriting git commands with global options
    • Prevents "unexpected argument '-C' found" errors
    • Documented as known limitation in TROUBLESHOOTING.md

Testing:

  • All 435 tests pass
  • Manual testing confirms hooks work in both platforms
  • Hook correctly rewrites: git statusrtk git status
  • Hook correctly skips: git -C /path status (no rewrite)
  • Hook correctly skips: rtk git status (already using rtk)

Files Changed:

  • NEW: hooks/rtk-rewrite.ts (OpenCode plugin)
  • NEW: src/platform.rs (platform abstraction)
  • FIXED: hooks/rtk-rewrite.sh (basename detection + git -C skip)
  • UPDATED: src/discover/, src/init.rs, src/learn/ (multi-platform)
  • DOCS: README, INSTALL, ARCHITECTURE, TROUBLESHOOTING

**OpenCode Integration:**
- Add platform abstraction layer (src/platform.rs) for Claude Code and OpenCode
- New OpenCode plugin (hooks/rtk-rewrite.ts) with full command rewrite logic
- OpenCode session provider for discover/learn commands (scans ~/.local/share/opencode/opencode.db)
- Multi-platform support: discover/learn scan both platforms by default
- Updated documentation (README, INSTALL, ARCHITECTURE, TROUBLESHOOTING) for dual-platform usage

**Hook Fixes:**
- Fix critical basename detection bug: pattern `*/rtk\ *` incorrectly matched `git -C /path/to/rtk status`
- Changed to basename checking: only skip if first command word is literally 'rtk'
- Add workaround for git -C/-c flags (not yet supported by RTK core)
  - Hooks now skip rewriting git commands with global options
  - Prevents "unexpected argument '-C' found" errors
  - Documented as known limitation in TROUBLESHOOTING.md

**Testing:**
- All 435 tests pass
- Manual testing confirms hooks work in both platforms
- Hook correctly rewrites: `git status` → `rtk git status`
- Hook correctly skips: `git -C /path status` (no rewrite)
- Hook correctly skips: `rtk git status` (already using rtk)

**Files Changed:**
- NEW: hooks/rtk-rewrite.ts (OpenCode plugin)
- NEW: src/platform.rs (platform abstraction)
- FIXED: hooks/rtk-rewrite.sh (basename detection + git -C skip)
- UPDATED: src/discover/, src/init.rs, src/learn/ (multi-platform)
- DOCS: README, INSTALL, ARCHITECTURE, TROUBLESHOOTING
@itai-delphos itai-delphos merged commit c47bc6e into master Feb 23, 2026
3 checks passed
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