- Enhanced _extract_all_connections_cached() with two-pass algorithm
- First pass: collect articles and outgoing connections
- Second pass: map incoming connections to target articles
- Added incoming_connections and outgoing_connections fields to article data
- Maintains backward compatibility with existing connections field
- Updated connections route to pass bidirectional statistics
Now tracks 1,535 outgoing and 1,391 incoming cross-references across the digital garden.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added /health endpoint for more reliable health checks
- Increased health check timeout from 2s to 10s with 15s grace period
- Fixed cache preloading to run only once using file locking mechanism
- Prevents multiple Gunicorn workers from running cache preloading simultaneously
- Restored blue-green deployment strategy for zero-downtime deployments
- Deployment now completes successfully with all health checks passing
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Created interactive D3.js network graph showing connections between essays
- Added external links index showing all outbound references by article
- Moved content guide to base template footer for site-wide access
- Optimized startup: background cache preloading, sequential for lower RAM usage
- Fixed duplicate images issue in growing open source seeds essay
- Updated archive page with new index links and improved browse-by-type styling
- Removed saved-customizations.css file
- Changed Fly.io deployment strategy from bluegreen to rolling
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>