- Updated generate_trending_data.py to handle up to 1M records (was 200k)
- Updated generate_components_json.py pagination limit to 1000 pages (1M records)
- Successfully processed 202,517 download records across both scripts
- Regenerated trending-data.json and components.json with latest data
This change enables the system to scale beyond the previous 200k record limit,
ensuring accurate analytics as the component download volume continues to grow.
Stats from latest generation:
- 202,517 total downloads processed
- 624 unique components
- 142 countries
- Top categories: agents (163), commands (210), mcps (58)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove redundant serverless function files from /docs/api
- Update README to clarify two-directory architecture
- /api/ for serverless functions (Vercel requirement)
- /docs/api/ for static JSON files only
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This reverts commit b082254. Vercel requires serverless functions in /api/
regardless of outputDirectory. Both directories are needed:
- /api/ for serverless functions (Vercel auto-detects here)
- /docs/api/ can be removed as it's redundant
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Eliminated duplicate /api directory (not used by Vercel)
- Updated /docs/api/README.md to reflect single source of truth
- /docs/api/track-download-supabase.js already includes 'skill' type support
- Simplified maintenance workflow (no more file syncing needed)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added 'skill' to validTypes array in track-download-supabase.js
- Ensures download analytics properly track skill installations
- Completes skills integration for web interface and backend
- Added 'skills' to validFilters in getFilterFromURL()
- Added 'skills' to component categories for search indexing
- Added skills icon 🎨 to category icons and typeConfig
- Enables proper /skills URL routing and search functionality
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
## Changes Made:
### 1. Modal Text Display Improvements
- Increased error/warning message font size from 14px to 16px for better readability
- Improved line height from 1.5 to 1.6 for better spacing
- Increased margin-bottom from 4px to 8px for better visual separation
### 2. Code Preview Text Wrapping
- Removed horizontal scroll (`overflow-x: auto`) from code previews
- Added `white-space: normal` to prevent excessive whitespace at line start
- Added `word-wrap: break-word` and `overflow-wrap: break-word` for proper text wrapping
- Applied to all code preview sections:
- Error line text previews
- Warning line text previews
- Example line text in errors
- Example line text in warnings
### 3. Line Number Scroll Synchronization
- Added `position: relative` to `.code-body` for better layout control
- Added `overflow: hidden` and `max-height: 600px` to `.code-line-numbers`
- Added `max-height: 600px` to `.code-content`
- Implemented JavaScript scroll sync between line numbers and code content
- Line numbers now scroll perfectly in sync with code content
### 4. Clickable Error Line Numbers
- Added `cursor: pointer` to error/warning line numbers
- Added "Click to see details" tooltip on error/warning lines
- Implemented click event listeners on all error/warning lines
- Click handler searches through validators to find matching error
- Opens validation modal with correct validator details when clicked
- Added hover effects with `transform: translateX(-2px)` and `cursor: help`
## User Experience Improvements:
- ✅ Error messages are now larger and easier to read (16px)
- ✅ Code snippets wrap naturally without horizontal scroll
- ✅ No excessive whitespace at the beginning of code lines
- ✅ Line numbers stay synchronized during scroll
- ✅ Error line numbers are interactive and open detailed validation modals
- ✅ Better visual hierarchy with improved spacing and sizing
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude <noreply@anthropic.com>
The download tracking was failing because Vercel serves from /docs/ as
the outputDirectory. Serverless functions must be inside this directory
to be detected and deployed correctly.
Changes:
- Copy track-download-supabase.js to docs/api/
- Copy package.json with dependencies to docs/api/
- Add comprehensive README.md explaining API structure
- Create sync-api.sh script for easy maintenance
- Keep /api/ as source of truth, /docs/api/ for deployment
This fixes the 404 error on:
https://www.aitmpl.com/api/track-download-supabase
Technical details:
- vercel.json has "outputDirectory": "docs"
- Vercel only detects functions inside the output directory
- Both static files (agents.json) and serverless functions now coexist
- Environment variables (SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY) required
Testing:
After Vercel deployment, test with:
curl -X POST https://www.aitmpl.com/api/track-download-supabase \
-H "Content-Type: application/json" \
-d '{"type":"agent","name":"test","path":"test","category":"test"}'
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add plugin dashboard server with WebSocket support
- Create modern web interface for plugin management
- Implement real-time plugin state detection
- Add install/enable/disable/uninstall commands
- Support status-based sorting (enabled first)
- Add auto-refresh every 30 seconds
- Update docs to showcase plugin dashboard feature
- Add smooth scroll to plugins section on banner click
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add plugin marketplace system with 10 curated plugins
- Create plugin detail pages with installation instructions
- Add component installation modal with copy functionality
- Update Python script to extract plugin data with category/folder paths
- Add category filters that load correctly based on URL
- Update footer across all pages for consistency
- Fix install commands to use folder/name format
Features:
- Plugin cards with View Details button
- Individual component installation with proper paths
- Related plugins based on shared keywords
- Dynamic category loading for all filter types
- URL-based filter detection and category display
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>