- Created conventional-commits.py for commit message validation
- Created prevent-direct-push.py for protected branch enforcement
- Updated all hook JSONs to use Python scripts with proper JSON output
- All hooks now use permissionDecision: "deny" for proper blocking
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fixed ReferenceError where projectDir was not defined
- Changed to use currentTargetDir which is properly scoped
- Removed debug console.log statements
- Cleaned up Python file download logging
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Modified installIndividualHook to detect and download .py files for ANY hook
- Added automatic installation of Python scripts to .claude/hooks/
- Python files get executable permissions (0o755)
- Created validate-branch-name.py for proper Git Flow branch validation
- Hook validation now uses JSON output with permissionDecision
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update local settings and configurations
- Add Vertex AI Claude Code integration blog post
- Sync analytics components and documentation
- Remove test data files and update configurations
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add elegant modal for resume conversation functionality
- Modal shows claude --resume command with copy functionality
- Center Resume button in chat view header
- Add centered GitHub star button in main chat header
- Improve responsive design with three-column header layout
- Enhanced user experience with visual feedback on copy actions
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Vercel doesn't allow mixing 'routes' with 'rewrites'. Changed to use
only rewrites with named parameters for cleaner syntax.
Changes:
- Remove 'routes' section (incompatible with 'rewrites')
- Use named parameters (:type/:name) instead of regex capture groups
- Add JSON Content-Type headers for all .json files
- Add 5-minute cache for JSON files
This ensures components.json and other JSON files are served correctly
with proper MIME types instead of HTML.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
The component rewrite was intercepting /components.json requests,
returning HTML instead of JSON, causing "<!DOCTYPE... is not valid JSON" errors.
Changes:
- Add $ anchor to component rewrite pattern for exact matching
- Add explicit routes for .json files to ensure proper serving
- Add cache headers for JSON files (5 minute cache)
- Prevent rewrites from intercepting static JSON resources
This ensures /components.json returns actual JSON instead of HTML.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Remove all local environment detection logic and focus 100% on production.
Changes:
- Use static absolute paths for all resources (/css/, /js/, /favicon.ico)
- Remove complex environment detection and dynamic script loading
- Simplify DataLoader to always use absolute paths (/components.json)
- Clean up debugging logs and navigation links
- Static script tags for reliable loading order
This eliminates complexity and ensures robust production functionality.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
The DataLoader was using relative paths like 'components.json' which
resolved incorrectly from SEO-friendly URLs (/component/agent/name).
Changes:
- Add environment detection to DataLoader constructor
- Add getDataPath() method for environment-aware resource paths
- Use relative paths for local development (components.json)
- Use absolute paths for production (/components.json)
- Add debug logging to trace loading issues
This should fix the "Loading component..." issue in production
by ensuring components.json loads from the correct path.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
JavaScript files were loading with relative paths (js/data-loader.js)
which resolved incorrectly from SEO-friendly URLs like
/component/agent/name to /component/agent/js/data-loader.js.
Changes:
- Replace static script tags with dynamic environment-aware loading
- Use relative paths (js/) for local development
- Use absolute paths (/js/) for production
- Maintain script execution order with async=false
- Add debugging logs for troubleshooting
This resolves MIME type errors and ensures JavaScript functionality
works correctly on production component pages.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Disable cleanUrls to prevent conflicts with rewrites
- Remove unnecessary JS/CSS rewrites (using absolute paths instead)
- Fix header paths from /docs/* to /* for proper MIME types
- Add explicit Content-Type headers for JS and CSS files
This should resolve the rewrite issue where /component/agent/name
was serving index.html instead of component.html.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Reorder Vercel rewrites to prioritize component routes
- Add explicit JS and CSS route handling for SEO-friendly URLs
- Fix environment-specific resource loading in component.html
- Add debug logging for troubleshooting script loading issues
This resolves MIME type errors and ensures component.html loads
correctly for URLs like /component/agent/name in production.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Implement on_stdout/on_stderr callbacks for live output streaming
- Add progress indicators during long operations
- Remove unnecessary warning message for aitmpl.com API
- Create API endpoint for agents list at /docs/api/agents.json
- Update getAvailableAgentsFromGitHub to use aitmpl.com API fallback
- Improve user experience with visual feedback during execution
- Version bump to 1.21.5
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Change from '30-60 seconds' to 'a few minutes'
- More accurate for complex prompts
- Sets better user expectations
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove time and threading imports that caused errors
- Use simple static spinner icon instead of animation
- Clean and simple loading message
- Avoids 'time not associated with value' error
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>