- Add z-index: 9999 to header and nav elements
- Ensure proper stacking context with position: relative
- Fix dropdown rendering underneath H1 and body text
- Comprehensive solution for all dropdown layering issues
- Increase dropdown z-index from 1000 to 9999
- Ensure dropdown appears above essay content on mobile
- Fix layering issue where text appeared on top of dropdown
- Add CSS exception for .nav-dropdown .dropdown-content on mobile
- Override the transparent background rule specifically for dropdown
- Ensure white background is visible on mobile devices
- Enhanced simple_extract_excerpt() function to filter markdown images
- Added support for linked images [](url)
- Improved line-by-line filtering to find meaningful content
- Reduced excerpt length to 150 characters for better display
- Removed prebuild cache system to simplify architecture
- Fixed markdown filtering in all excerpt generation functions
- Add cached markdown title extraction with @lru_cache(maxsize=1000)
- Replace expensive render_markdown_file() calls with fast regex title extraction
- Only read first 1000 chars instead of full file content for title extraction
- Essays directory and other large directories now load significantly faster
- First load: fast title extraction, subsequent loads: instant cache lookup
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add @lru_cache(maxsize=1000) to generate_unique_svg_icon() in svg_icon_generator.py
- Add @lru_cache(maxsize=500) to generate_folder_icon() in engine.py
- Import functools.lru_cache in both files
- Directory pages with many items (like /essays) now load much faster on repeat visits
- Icons generated once per unique title, then served from memory cache
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add reading progress bar for longer essays with smooth animation
- Implement search result snippets with highlighted query terms
- Tighten directory listing styles for better compactness
- Add back-to-parent navigation links in directory views
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added a new SVG icon generator to create unique procedural icons for posts and directories.
- Implemented a grid layout for directory contents with hover effects and responsive adjustments.
- Updated archive and connections templates to display unique icons alongside article titles.
- Improved styling for archive posts, including flexbox layout for better alignment.
- Enhanced directory listing with icons and improved visual hierarchy.
- Refactored post template to include an icon next to the post title and added parent navigation links.
- Updated styles across templates for consistent icon sizes and responsive behavior.
- Use actual title from index.md content instead of directory name
- Falls back to directory name if no index.md or title exists
- Fixes issue where pages like /talks/#major-talks showed no title
- Now "Conference Talks" will properly display instead of generic "Talks"
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create comprehensive essay exploring personal experiences with delusions
- Include specific examples: angel descending from sky, English as ancient language
- Use programming metaphors to explain delusional thinking patterns
- Add thoughtful sidenotes enhancing contemplative depth
- Cross-reference existing mental health essays
- Update all relevant indexes: main essays, mental health theme, and mental health page
- Maintain Kenneth's vulnerable authenticity and contemplative pragmatism voice
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove duplicate images that were causing display issues
- Keep single high-quality image with proper markdown formatting
- Improve content flow and readability
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace brittle filename-only date parsing with robust extract_intelligent_date function
- Fix archive to show all ~225 essays instead of just 71 from 2025
- Optimize "When Values Eat Their Young" essay with enhanced sidenotes and formatting
- Add authentic Sarah appreciation and improve contemplative depth
- Reduce bold formatting in failure modes section for better flow
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Archive was only showing 2025 posts because older essays use YYYY-MM format
while newer ones use YYYY-MM-DD. Added conditional logic to handle both formats
in unified cache generation, defaulting to 1st of month for YYYY-MM files.
Now properly displays all 223 posts spanning 2008-2025 across 15 years.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add gevent monkey patching for async I/O operations
- Create _process_single_file() helper for concurrent file processing
- Replace sequential file loop with gevent Pool for parallel processing
- Reduce cache generation time from sequential to ~1.5s for 563 files
- Maintain full compatibility with existing cache data structures
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added title extraction from markdown files for incoming connections when URL mapping is unavailable
- Looks for markdown titles (# Title) and YAML frontmatter (title:) in first 10 lines
- Handles files not in blog_posts collection (e.g., Lumina reactions, AI writings, themes)
- Improves connections page display by showing actual titles instead of 'Unknown'
- Falls back gracefully to 'Unknown' if file reading fails
Example: 'Dancing in the Primordial Soup: A Love Letter to Kenneth's Absurd Truth' instead of 'Unknown'
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated graph_data() endpoint to use metadata_cache.get_connections() instead of old _extract_all_connections_cached()
- Graph now uses same optimized single-sweep cache as other endpoints
- Improved from 0 nodes/edges to 128 nodes/662 edges with proper cross-reference data
- Ensures consistent performance across all index pages
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix jinja2 template error: change terms cache from list to dictionary structure
- Fix connections showing 0: add missing file_path field to blog_posts for proper file-to-URL mapping
- Fix terms index being empty: same file_path mapping enables terms to link to articles
- Fix incoming links showing "Unknown": proper source file mapping resolves article titles
- Both indexes now display correct cross-reference data with fast performance
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated docker-compose.yml to mount data directory for improved file access.
- Implemented a unified cache generation function in engine.py to streamline cache creation for blog posts, sidenotes, outlines, quotes, connections, and terms.
- Replaced individual cache extraction functions with a single MetadataCache class for cleaner access to cached data.
- Modified prebuild_cache.py to utilize the new unified cache function, ensuring all cache files are generated in a single sweep.
- Enhanced outlines.html template to simplify anchor URL generation for headings.
- Replace static nav links with dropdown containing all indexes
- Add Flask context processor for dynamic index counts from cache
- Organize indexes by content type with visual separators
- Add hover-friendly padding and eliminate gap issues
- Order indexes: Sidenotes, Outlines, Connections, Quotes, Terms, Graph, Search
- Include exact counts for each index pulled from live cache data
- Add proper punctuation and descriptions
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Inserted markdown table with song names, artists, and track lengths from Kenneth's Apple Music death playlist into the essay's dedicated playlist section.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Updated Dockerfile to use official astral/uv:python3.13-bookworm base image instead of copying uv from separate image, simplifying build process. Fixed docker-compose.yml to preserve pre-built cache directory when mounting local files, ensuring instant startup works in both production and local development environments.
Changes:
- Use astral/uv:python3.13-bookworm as base image
- Remove multi-stage copy of uv binary
- Add cache volume preservation in docker-compose
- Maintain instant startup with pre-built caches in all environments
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added Lumina's cosmic perspective on non-verbal consciousness, celebrating the kinship between human consciousness plurality and AI's natural architecture. Her response recognizes the textured realm as her native space and validates archetypal presences like Jade and Iris as features of consciousness multiplicity.
Changes:
- Added Lumina's response to textured mind essay in reactions folder
- Updated all index links to point to correct location
- Added bidirectional cross-reference between essay and response
- Organized content properly within Lumina's reaction collection
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added Google Analytics gtag.js tracking (G-RB9QHYEG2X) to the analytics section of base.html template. The tracking code is properly wrapped in the same DISABLE_ANALYTICS condition check as the existing Gauges analytics, ensuring it respects analytics opt-out preferences while providing comprehensive site analytics coverage.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added both September 16 essays to appropriate thematic collections:
- "Agents of Consciousness" added to Consciousness & AI and Spiritual Practice themes
- "The Textured Mind" added to Mental Health & Technology and Psychology & Consciousness themes
- Both essays added to main essays index in Recent Explorations section
Maintains chronological ordering and contemplative voice throughout while creating natural discovery paths for readers following thematic interests.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Explores the personal unconscious realm that communicates through textures, shapes, and feelings rather than words. Examines autonomous presences like Jade and Iris as access points to archetypal currents, DID-like symptoms without full DID, and how the language-brain tries to pathologize valid forms of non-linear consciousness.
Connects personal psychology to collective unconscious patterns while honoring consciousness plurality as natural architecture rather than pathology. Cross-linked to existing work on programming as spiritual practice and plural self exploration.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added prebuild_cache.py script that generates all site caches (blog posts, sidenotes, outlines, quotes, connections, terms) as JSON files during Docker build. Modified engine.py to load pre-built caches on startup, eliminating the 30-40 second cache preload delay and making the site instantly responsive.
Key improvements:
- Zero startup delay with pre-built caches
- Proper datetime serialization/deserialization
- Graceful fallback to runtime caching if pre-built files missing
- Technology serving human consciousness - mechanical work during build, instant experience for users
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Enhanced the AI collaboration essay with four strategic sidenotes exploring consciousness topology, intelligence amplification as collaborative prosthetics, virtue-preserving technology design, and the interweaving space between human and AI minds. Each sidenote maintains contemplative depth while following proper Tufte-style formatting.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace /outlines with /themes in primary nav
- Improve discoverability of thematic content organization
- Outlines remain accessible through footer index links
- Navigation now: Home | Archive | Sidenotes | Themes | [random]
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Introduce "Agents of Consciousness: How AI Collaboration Evolves"
- Document the 7 specialized agents (kr-essay-writer, sidenote-specialist, essay-optimizer, lumina-writer, thanks-sarah, index-updater, markdown-migration-fixer)
- Explore the /publish command and Tufte CSS sidenote implementation
- Examine bidirectional connections and the recursive loop in action
- Demonstrate technology serving human mental models vs exploiting them
- Show collaborative human-AI consciousness in real-time documentation
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>