* fix: validate plugin hooks.json on install to ensure correct timeout
The Claude Code plugin marketplace can leave stale hooks.json with
incorrect timeout values (e.g. 1800 instead of 345600). Install scripts
now check for and overwrite the plugin's hooks.json if it exists.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: warn about duplicate hook when plugin and settings.json both configure plannotator
Detects "command".*plannotator in settings.json (only matches hook configs, not
enabledPlugins) and only warns when the plugin is also installed.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: define CLAUDE_SETTINGS variable in install.cmd
The duplicate hook warning referenced !CLAUDE_SETTINGS! but the variable
was never set, causing the warning to silently never fire for CMD users.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
As per https://specifications.freedesktop.org/basedir/latest/#variables
> User-specific executable files may be stored in $HOME/.local/bin.
There is no env var for users to set to change this behaviour, and
$XDG_DATA_HOME isn't a reasonable place to put them.
Install scripts now check for the CLAUDE_CONFIG_DIR environment
variable when determining where to place the slash command file.
Falls back to the default ~/.claude/ when unset.
Closes#136
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Windows users running the bash script (via Git Bash/MSYS) may have old
binaries at different locations. Now cleans up both:
- $USERPROFILE/.local/bin/plannotator* (old bash location)
- $LOCALAPPDATA/plannotator/plannotator.exe (PowerShell location)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Helps Windows users running bash script who were stuck on old versions.
The mv command may not overwrite properly on Windows due to file locking
or .exe extension mismatch.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Users with older installations at ~/.local/bin had PATH conflicts
where the old binary took precedence over the new install location.
Now removes plannotator from old locations before installing.
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Keep clearing both ~/.cache/opencode and ~/.bun/install/cache paths
to match Windows behavior (belt and suspenders).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The `files` array in package.json was missing plannotator.html and
review-editor.html, causing them to be omitted from npm publishes.
This explains why users were stuck on old versions.
Also fixes incorrect cache path in docs and install script.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
In Windows PowerShell 5.1, Invoke-WebRequest returns .Content as a byte
array (System.Byte[]) for non-HTML responses, not a string. This causes
the installer to fail with:
Method invocation failed because [System.Byte] does not contain a
method named 'Split'.
This fix:
- Adds -UseBasicParsing to avoid security warning prompts
- Detects if Content is byte[] and converts to string using UTF8 encoding
- Maintains compatibility with PowerShell 7+ where Content is already a string
Fixes installation on Windows PowerShell 5.1 (the default on Windows 10/11).
Co-authored-by: Tafheem Malik <maliktafheem@yvp5c.onmicrosoft.com>
- Add Windows PowerShell install script (install.ps1)
- Install slash commands for both Claude Code and OpenCode
- Update OpenCode README with install script instructions
- Simplify UpdateBanner to use same install command for both platforms
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add "after you restart Claude Code" to /plannotator-review message
- Symlink install scripts to marketing/public for automatic deploys
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
## Summary
Complete code review system for reviewing git diffs with annotations.
### Features
- Interactive diff viewer with split/unified views
- Line-level annotation system
- Diff type selector (uncommitted, last commit, vs main branch)
- Dynamic default branch detection
- Empty state handling
- Simplified UX with streamlined feedback flow
Closes#51Closes#56
OpenCode users were running the Claude Code install script and getting
confused. Added a clear banner at the end directing them to use the
npm plugin instead.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>