- Removed call to showTranslationFallbackNotice(language) which was undefined
- Console warning already logs the fallback behavior
- Prevents ReferenceError when loading translated documents
- Related to glossary translation fallback handling
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fixed multiple issues with the docs page card-based document view:
**Card Overflow Fixed:**
- Added overflow-x-hidden to #document-content container
- Added w-full max-w-full to card-grid-container
- Added w-full to grid itself
- Added max-w-full overflow-hidden to individual cards
- Cards now stay within container boundaries at all viewport sizes
**Long Title Wrapping:**
- Added insertSoftHyphens() method to break CamelCase words
- Inserts soft hyphens (­) before capitals in compound words
- Examples: "InstructionPersistenceClassifier" → "InstructionPersistenceClassifier"
- Titles now wrap intelligently without being cut off
**Colour Legend (Option C):**
- Added toggle button (ℹ️) next to ToC and PDF buttons
- Popup shows all 5 colour codes with descriptions
- Translated to EN ("Colour Guide"), DE ("Farbcode"), FR ("Guide des couleurs")
- Fixed colour square visibility (bg-500 with borders instead of bg-400)
- Click outside to close functionality
**Card Sequencing:**
- Cards now display in original markdown document order
- Removed groupByCategory() grouping logic
- Removed category header sections
- Color coding preserved based on section category
**Category Fallback Bug:**
- Fixed invalid fallback category 'downloads-resources' → 'resources'
- Ensures uncategorized documents go to valid category
**Database Migration:**
- Added scripts/move-guides-to-resources.js
- Moved 3 implementation guides from getting-started to resources
- Getting Started now contains only: Introduction, Core Concepts
- Resources now contains: Implementation guides
**Result:**
✅ Cards respect container width (no overflow)
✅ Long titles wrap with hyphens (no cutoff)
✅ Colour legend accessible and translated
✅ Cards in logical reading order from markdown
✅ Implementation guides in correct category
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fixed language persistence issues where sidebar and hero section did not
update when switching languages via navbar flags.
**Root Cause:**
- languageChanged event only updated document content
- URL lang parameter updated AFTER sidebar reload
- detectLanguage() read old lang from URL causing wrong language load
**Changes:**
1. Update URL lang parameter BEFORE reloading sidebar
2. Call updatePageUI() to update hero section instantly
3. Call loadDocuments() to reload sidebar with new language
4. Explicitly reload current document to ensure correct language
**Updated Elements on Language Change:**
- Hero section (page title, subtitle, search button)
- Sidebar category labels (Getting Started → Erste Schritte, etc.)
- Sidebar document titles (shows translations if available)
- Document content (reloads in correct language)
- GitHub section links
**Result:**
✅ Click language flag → entire page switches to new language instantly
✅ Document content loads in correct language (not previous language)
✅ No page refresh required
✅ All UI elements synchronized
✅ Ready for Caixin Global launch (Oct 29)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fixed remaining language persistence issues where sidebar and hero section
did not update when switching languages via navbar flags.
**Changes:**
- languageChanged event now calls updatePageUI() to update hero section
- languageChanged event now calls loadDocuments() to reload sidebar
- All UI elements update immediately without requiring page refresh
**Updated Elements on Language Change:**
- Hero section (page title, subtitle, search button)
- Sidebar category labels (Getting Started, Resources, etc.)
- Sidebar document titles (shows translations if available)
- Document content (reloads in new language)
- GitHub section links
**Result:**
✅ Click language flag → entire page switches instantly
✅ No page refresh required
✅ All UI elements synchronized
✅ Ready for Caixin Global launch (Oct 29)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fixed three P0 bugs preventing language selection from persisting:
1. **Removed duplicate language selector** (docs.html:499-508)
- Page had both navbar flags AND dropdown selector
- Caused UX confusion (two selectors, no sync)
- Now uses navbar flags only (consistent with site)
2. **Fixed localStorage key mismatch** (docs-app.js:207)
- i18n-simple.js used 'tractatus-lang'
- docs-app.js used 'tractatus_language' (underscore)
- Unified to 'tractatus-lang' for persistence
3. **Removed dead code** (docs-app.js:836-871)
- initLanguageSelector() expected removed dropdown
- Caused potential JS errors
- Navbar language-selector.js now handles all switching
**Result:**
- ✅ Single language selector (navbar flags)
- ✅ Language persists across page reloads
- ✅ No JavaScript errors
- ✅ Ready for Caixin Global launch (Oct 29)
**Version:** 0.1.2 → 0.1.3 (service worker cache bust)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add comprehensive UI translations object for EN, DE, FR
- Translate page header, category labels, sidebar headings
- Translate search button, GitHub section, all UI elements
- Update category rendering to use translated labels
- Display translated document titles from database in sidebar
- Add updatePageUI function to apply translations dynamically
- Update docs.html with IDs for dynamic translation
- Language selector now updates entire page UI and document list
All UI elements now fully support German and French translations.
Added interactive language switcher dropdown to make translations accessible:
UI Changes:
- Added language selector dropdown to docs.html header
- Flag emojis + language names (🇬🇧 English, 🇩🇪 Deutsch, 🇫🇷 Français)
- Positioned next to search button in page header
Functionality:
- Detect language from URL param, localStorage, or default to English
- Save language choice to localStorage for persistence
- Auto-reload document when language changes
- Update URL with ?lang= parameter
- Preserves selected document when switching languages
Implementation:
- Enhanced detectLanguage() to check URL > localStorage > i18n > default
- Added initLanguageSelector() IIFE to wire up dropdown
- Dropdown reflects current language on page load
User Experience:
- One-click language switching
- Language persists across page reloads
- Seamless document reload in new language
- URL updates to reflect language choice
🌐 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
Security:
- Add authentication to /api/documents/archived endpoint (admin-only)
- Prevent public exposure of 108 archived/internal documents
Documentation UI:
- Remove duplicate hardcoded Resources section from docs.html
- Add Resources category to docs-app.js for implementation guides
- Move 3 implementation guides from Getting Started to Resources
- Move Glossary from Technical Reference to Getting Started
- Set Research & Theory section to collapsed by default
- Update service worker cache version to 0.1.4
Migration Scripts:
- Add scripts for document category reorganization
- Add scripts for research document migration to production
- Add scripts for glossary verification and comparison
Files changed:
- public/docs.html: Remove duplicate Resources section
- public/js/docs-app.js: Add Resources category, collapse Research
- public/service-worker.js: Bump cache to v0.1.4
- src/routes/documents.routes.js: Secure /archived endpoint
- scripts/*: Add 10 migration/diagnostic scripts
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create Economist SubmissionTracking package correctly:
* mainArticle = full blog post content
* coverLetter = 216-word SIR— letter
* Links to blog post via blogPostId
- Archive 'Letter to The Economist' from blog posts (it's the cover letter)
- Fix date display on article cards (use published_at)
- Target publication already displaying via blue badge
Database changes:
- Make blogPostId optional in SubmissionTracking model
- Economist package ID: 68fa85ae49d4900e7f2ecd83
- Le Monde package ID: 68fa2abd2e6acd5691932150
Next: Enhanced modal with tabs, validation, export
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add mobile-specific navigation pattern to resolve catch-22 UX issue where
users couldn't see documents without scrolling but didn't know to scroll.
Changes:
- Add mobile CSS to toggle between sidebar and document viewer
- Add back button to return to document list on mobile
- Add document-active body class to manage navigation state
- Update GitHub repository links to correct URL
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
**FAQ Enhancements:**
- Added 6 new Leader-focused questions (TCO, board justification, liability, metrics, compliance)
- Reordered all 28 questions to prioritize Leaders (IDs 1-18)
- Added sorting by ID to ensure consistent order
- Improved question categorization and keywords
**UI Improvements:**
- Enhanced search and filter functionality
- Improved markdown rendering in FAQ answers
- Better accessibility and keyboard navigation
Leaders now see business-critical questions first, followed by
technical implementation and research questions.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove inline styles from category rendering (CSP violation)
- Apply collapsed state via JavaScript after DOM insertion
- Update cache version to v=0.1.0.1760254264664 across all HTML files
- Categories now properly collapsed on page load (Research, Advanced, Case Studies, Business, Archives)
- Add 'Advanced Topics' category for value pluralism & deep dives
- Rename Value Pluralism FAQ to 'Understanding Value Pluralism'
- Restore research documents from archives (Research Foundations, Organizational Theory, etc.)
- Set most categories to collapsed by default for cleaner UX
- Restore Executive Brief to Business & Leadership
- Archive PoC session summaries
- Create comprehensive migration script for recategorization
- Update docs.html with MongoDB-integrated documents
- Add value pluralism documents to sidebar categories
- Update docs-app.js for proper document retrieval
- Sync navbar changes across UI pages
Documents now searchable and properly categorized in docs viewer
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added Phase 5 PoC Session 1 and Session 2 research summaries to public
documentation for transparency and collaboration.
Research Documents:
- Phase 5 Session 1: 67% framework integration (4/6 services)
- Phase 5 Session 2: 100% framework integration milestone (6/6 services)
Content:
- Comprehensive integration process documentation
- Performance metrics and testing results
- Architecture patterns and best practices
- Full backward compatibility analysis
- Production deployment readiness assessment
Formats:
- Markdown source in docs/markdown/ (committed)
- PDFs generated on server via npm run migrate:docs
Categorization:
- Added 'phase-5' keyword to Research & Evidence category
- Documents will appear in docs viewer under Research section
License: Apache 2.0 (ready for Anthropic monitoring)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Ensures LLM integration feasibility research document appears in
Research & Evidence category on docs.html.
Document slug: research-scope-feasibility-of-llm-integrated-tractatus-framework
- Add professional README for public repository with code examples
- Fix all broken documentation links across 4 markdown files
- Add favicon to all HTML pages (eliminates 404 errors)
- Redesign Experience section with 4-card incident grid
- Add GitHub section to docs.html sidebar with repository links
- Migrate 4 new case studies to database (19 total documents)
- Generate 26 PDFs for public download
- Add automated sync GitHub Action for public repository
- Add security validation for public documentation sync
- Update docs-app.js to categorize research topics
Mobile responsive, accessibility compliant, production ready.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fixed download icon size (1.25rem instead of huge black icons)
- Uploaded all 12 PDFs to production server
- Restored table of contents rendering for all documents
- Fixed modal cards with proper CSS and event handlers
- Replaced all docs-viewer.html links with docs.html
- Added nginx redirect from /docs/* to /docs.html
- Fixed duplicate headers in modal sections
- Improved cache-busting with timestamp versioning
All documentation features now working correctly:
✅ Card-based document viewer with modals
✅ PDF downloads with proper icons
✅ Table of contents navigation
✅ Consistent URL structure
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>