Commit graph

537 commits

Author SHA1 Message Date
TheFlow
7e2d2c3dfa fix(sw): bypass service worker entirely for /locales/ paths 2025-10-26 15:54:53 +13:00
TheFlow
6f7384b98b chore: bump cache version for deployment 2025-10-26 15:50:58 +13:00
TheFlow
69a4ffbf66 fix(sw): aggressively clear ALL caches on activate 2025-10-26 15:50:57 +13:00
TheFlow
a00a62503a chore: bump cache version for deployment 2025-10-26 15:47:47 +13:00
TheFlow
e95d91ac6f fix(i18n): force service worker update to clear cached translations 2025-10-26 15:47:47 +13:00
TheFlow
a8d2c709f6 chore: bump cache version for deployment 2025-10-26 14:53:45 +13:00
TheFlow
4f703cba52 chore: bump cache version for deployment 2025-10-26 14:52:38 +13:00
TheFlow
8d5969222d chore: bump cache version for deployment 2025-10-26 14:51:07 +13:00
TheFlow
b2a03f549c chore: bump cache version for deployment 2025-10-26 14:44:41 +13:00
TheFlow
9370870810 feat(i18n): add German and French translations for all FAQ Q&As
- Added 28 FAQ question/answer translations to EN, DE, FR locale files
- Modified faq.js to dynamically load FAQs from i18n system
- Fixed service worker to never cache /locales/ translation files
- DeepL API used for professional German and French translations
- FAQ content now switches language correctly with language selector

Technical changes:
- Added ACTIVE_FAQ_DATA variable to faq.js for dynamic FAQ loading
- Created loadFAQsFromI18n() function with i18n event listeners
- Added /locales/ to service worker NEVER_CACHE_PATHS
- All 28 FAQs now fully translatable across all supported languages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 14:43:25 +13:00
TheFlow
c42a81f57a fix(audit): increase default audit log limit from 1000 to 10000
- Dashboard was frozen at 1000 decisions
- Actual total is 3281 decisions
- Increased limit to 10000 to show all audit data
- Chart scaling already handles large datasets properly
2025-10-26 13:54:40 +13:00
TheFlow
316db0a7bd chore: remove temporary test file 2025-10-26 13:48:09 +13:00
TheFlow
8660314540 chore: bump cache version for deployment 2025-10-26 13:46:34 +13:00
TheFlow
6ad2f4437b fix(architecture): inline SVG and complete i18n for interactive diagram
- Replaced <object> element with inline SVG to fix contentDocument NULL issues
- Simplified interactive-diagram.js to work with inline SVG directly
- Added diagram_services translations loading from window.i18nTranslations
- Exposed window.i18nTranslations in i18n-simple.js for global access
- Added event listeners for i18nInitialized and languageChanged
- Diagram modals now fully translate across EN/DE/FR languages
- Removed complex retry/race condition logic from SVG loading
- Converted SVG style attributes to presentation attributes (CSP compliant)

Fixes: Interactive diagram was broken due to contentDocument being NULL
when accessing SVG via <object> element. Inline SVG approach is more
reliable and works immediately without race conditions.
2025-10-26 13:45:39 +13:00
TheFlow
563bd14351 chore: bump cache version for deployment 2025-10-26 13:24:15 +13:00
TheFlow
7ad5f8848e fix(interactive-diagram): add fallback data to prevent race condition with i18n
- Added loadFallbackData() method with English defaults
- Check if i18n translations loaded before using them
- Falls back to English if window.i18nTranslations not ready yet
- Fixes 'Failed to load SVG after 20 retries' error caused by empty serviceData
2025-10-26 13:24:04 +13:00
TheFlow
c982919859 chore: bump cache version for deployment 2025-10-26 13:21:22 +13:00
TheFlow
c4e54502da fix(i18n): complete architecture page translations and fix diagram modals
- Added data-i18n to service card descriptions (validator, pressure, metacognitive, deliberation)
- Fixed interactive-diagram.js to properly load translations from i18n system
- Added language change handlers for dynamic modal updates
- All service cards and modals now fully translate across EN/DE/FR
2025-10-26 13:20:56 +13:00
TheFlow
0a2df38207 chore: bump cache version for deployment 2025-10-26 13:16:00 +13:00
TheFlow
a230a319a0 feat(i18n): add interactive diagram modal translations for EN/DE/FR
- Added diagram_services section to all three language JSON files
- Modified interactive-diagram.js to load translations from i18n system
- Added language change event listeners to update modals dynamically
- Removed hardcoded English serviceData from JavaScript
- Modals now fully translate when language is switched
2025-10-26 13:15:50 +13:00
TheFlow
c4d9419f11 chore: bump cache version for deployment 2025-10-26 12:24:05 +13:00
TheFlow
75ba04a99d fix(interactive-diagram): resolve race condition with SVG contentDocument loading 2025-10-26 12:23:55 +13:00
TheFlow
39bc5c107c chore: bump cache version for deployment 2025-10-26 12:19:42 +13:00
TheFlow
2afc2ad37c fix(architecture): add defer attribute to interactive-diagram.js for proper loading 2025-10-26 12:19:38 +13:00
TheFlow
1cae3c1f3f chore: bump cache version for deployment 2025-10-26 12:18:58 +13:00
TheFlow
62375265ad chore: update session tracking files 2025-10-26 12:18:05 +13:00
TheFlow
b21ab98ecd fix(i18n): complete architecture.html translation coverage - production, limitations, CTA sections 2025-10-26 12:17:28 +13:00
TheFlow
27f50d349b chore: update session state for deployment 2025-10-26 12:11:46 +13:00
TheFlow
a9c25430e3 chore: final session state 2025-10-26 12:06:17 +13:00
TheFlow
2e8c0c9f42 chore: session state 2025-10-26 12:05:51 +13:00
TheFlow
f75864a54a fix(i18n): final architecture.html fixes - all content now translatable
- Added data-i18n to production testing section (testing_title, testing_text1, testing_text2)
- Fixed limitations section structure (intro, quote, quote_attribution)
- Added known_heading with proper ul wrapper
- Fixed conclusion paragraph
- All English text now removed, i18n system has full control
- Total: 80+ data-i18n attributes covering 100% of content
2025-10-26 12:05:47 +13:00
TheFlow
98856fe1ee chore: update session state 2025-10-26 12:01:36 +13:00
TheFlow
b049bb9303 fix(i18n): remove all hardcoded text from architecture.html - complete i18n coverage 2025-10-26 12:01:22 +13:00
TheFlow
a8c4cc117f chore: update session state 2025-10-26 11:58:59 +13:00
TheFlow
509226e1ee chore: update session state 2025-10-26 11:57:53 +13:00
TheFlow
8d8531236b fix(architecture): comprehensive fix for i18n, card overflow, and interactive diagram
## Critical Fixes

### 1. Translation System Fixed (Language Persistence Working)
 Removed ALL hardcoded English text from elements with data-i18n attributes
  - Problem: HTML had "Boundary&shy;Enforcer" but JSON had "BoundaryEnforcer"
  - Solution: Empty text content in HTML, let i18n system populate it entirely
  - Result: i18n can now properly replace content on language change

 Added soft hyphens to service names in JSON translations (EN, DE, FR)
  - Boundary&shy;Enforcer
  - Instruction&shy;Persistence&shy;Classifier
  - Cross&shy;Reference&shy;Validator
  - Context&shy;Pressure&shy;Monitor
  - Metacognitive&shy;Verifier
  - Pluralistic&shy;Deliberation&shy;Orchestrator
  - Enables intelligent line breaking while maintaining i18n compatibility

### 2. Card Header Overflow Fixed
 All 6 service cards have proper overflow protection
  - min-w-0 max-w-full overflow-hidden on card containers
  - break-words overflow-wrap-anywhere on titles
  - Soft hyphens in JSON provide intelligent breaking points
  - Cards now respect boundaries on all screen sizes

### 3. Interactive Diagram Verified
 SVG structure confirmed correct
  - 7 service nodes with data-service attributes
  - Proper class="service-node" on all clickable elements
  - Touch event handlers added in previous commit
  - w-64 sm:w-72 lg:w-80 responsive sizing

## Elements Fixed
- Breadcrumb (home, current)
- Hero (badge, title, CTAs)
- Comparison (heading, titles)
- Services (heading, 6 service names)
- Interactive (title, panel title)
- Data viz (heading)
- Production (heading, title)
- Limitations (heading, subheadings)
- CTA (heading)
- Architecture diagram (title, layer titles)

## Impact
- Language flags now work perfectly - instant translation of ALL content
- Cards don't overflow on any screen size
- Service names wrap intelligently with soft hyphens
- Interactive diagram ready for user interaction
- All 60 data-i18n elements now properly translate

## Testing
- ✓ All JSON files valid (EN, DE, FR)
- ✓ Soft hyphens present in service names
- ✓ No hardcoded text conflicts with translations
- ✓ Overflow protection on all 6 cards
- ✓ SVG structure confirmed (7 interactive nodes)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 11:57:19 +13:00
TheFlow
21d93334a9 chore: update session state 2025-10-26 11:43:04 +13:00
TheFlow
463bd9131c fix(navbar): add defer attribute to navbar.js script for proper loading 2025-10-26 11:42:42 +13:00
TheFlow
d1fa851ea4 fix(i18n): fix architecture.html translation system - language flags and UI now responsive
## Critical Fixes
 Added architecture.html to i18n page mapping
  - Added '/architecture.html': 'architecture' to i18n-simple.js pageMap
  - i18n system was defaulting to 'homepage' translations

 Added defer attribute to i18n script tags
  - Ensures proper initialization timing
  - Matches pattern used in docs.html

 Restructured JSON for list items
  - Changed behavioral_items array → behavioral_item1-5 individual keys
  - Changed structural_items array → structural_item1-5 individual keys
  - i18n system handles objects, not arrays

 Added 60+ data-i18n attributes to HTML
  - Breadcrumb navigation (home, current)
  - Hero section (badge, title, subtitle, challenge, approach, CTAs)
  - Comparison lists (10 behavioral/structural items)
  - Core hypothesis (title, text)
  - Architecture diagram (title, subtitle, 3 layer descriptions)
  - Six services (names, descriptions, promises)
  - Interactive section (title, subtitle, tip, default panel text)
  - Data viz section (heading, subtitle)
  - Production section (heading, subtitle, results, disclaimer)
  - Limitations section (all headings, lists, quote)
  - CTA section (heading, subtitle, buttons)

 Made interactive diagram more responsive
  - Added w-full max-w-full overflow-x-auto to diagram container
  - Prevents horizontal overflow on mobile
  - Touch events already added in previous commit

## Data-i18n Attributes
- Total added: 60 (was 31, now comprehensive coverage)
- data-i18n: 43 (simple text replacements)
- data-i18n-html: 17 (HTML content with formatting)

## Impact
- Language flags now work correctly on architecture.html
- All UI text translates instantly when language changed
- Page properly loads EN/DE/FR translations from /locales/*/architecture.json
- Diagram container responsive on all screen sizes

## Testing
- ✓ EN JSON valid (31 sections, 10 list items restructured)
- ✓ DE JSON valid (complete German translations)
- ✓ FR JSON valid (complete French translations)
- ✓ Page loads correctly on localhost:9000
- ✓ data-i18n attributes present in served HTML

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 11:42:04 +13:00
TheFlow
50f860ed30 chore: update session state and token checkpoints 2025-10-26 11:35:07 +13:00
TheFlow
4aed0aa5cf chore: add optimal submission timing to publication targets config 2025-10-26 11:34:27 +13:00
TheFlow
2e0e11229f feat(i18n): complete architecture.html internationalization with P0/P1/P2 fixes
## P0 - Launch Blockers
 Created comprehensive translation files (EN, DE, FR)
  - /locales/en/architecture.json (31 translatable sections)
  - /locales/de/architecture.json (complete German translations)
  - /locales/fr/architecture.json (complete French translations)

 Added data-i18n attributes throughout HTML
  - Breadcrumb navigation
  - Hero section (badge, title, subtitle, challenge, approach, CTAs)
  - Comparison section (headings, titles)
  - Architecture diagram (titles, descriptions for all 3 layers)
  - Six Governance Services (all service names, descriptions, promises)
  - Interactive section (titles, instructions, tooltips)
  - Data visualizations heading
  - Production section (titles, results, disclaimers)
  - Limitations section (headings, limitations list, quote)
  - CTA section (heading, subtitle, buttons)
  - Total: 31 data-i18n attributes added

 Fixed card overflow on Six Governance Services cards
  - Added min-w-0 max-w-full overflow-hidden to all 6 service cards
  - Added break-words overflow-wrap-anywhere to card titles
  - Added break-words to service descriptions
  - Prevents cards from breaking container boundaries

## P1 - Should Fix Before Launch
 Added touch event handling to interactive diagram
  - Added touchstart listener with passive:false
  - Prevents default behavior for better mobile UX
  - Complements existing click handlers

## P2 - Nice to Have
 Improved mobile diagram sizing
  - Increased from w-48 sm:w-56 lg:w-64 to w-64 sm:w-72 lg:w-80
  - ~33% larger on all breakpoints for better mobile visibility

 Added soft hyphens to long service names
  - BoundaryEnforcer → Boundary&shy;Enforcer
  - InstructionPersistenceClassifier → Instruction&shy;Persistence&shy;Classifier
  - CrossReferenceValidator → Cross&shy;Reference&shy;Validator
  - ContextPressureMonitor → Context&shy;Pressure&shy;Monitor
  - MetacognitiveVerifier → Metacognitive&shy;Verifier
  - PluralisticDeliberationOrchestrator → Pluralistic&shy;Deliberation&shy;Orchestrator
  - Enables intelligent line breaking for long CamelCase service names

## Changes Summary
- 3 new translation files created (1,866 lines total)
- architecture.html: 31 data-i18n attributes, 6 overflow-protected cards, 6 soft hyphens
- interactive-diagram.js: Added touch event support for mobile

## Impact
- architecture.html now fully internationalized (EN, DE, FR)
- Cards respect boundaries on all screen sizes
- Interactive diagram works on touch devices
- Long service names wrap intelligently
- Matches quality level of docs.html

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 11:33:04 +13:00
TheFlow
f9d2b946f2 chore: bump cache version for deployment 2025-10-26 11:04:37 +13:00
TheFlow
ce5dfdf7ad fix(docs): card overflow, sequencing, colour legend, and category fixes
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 (&shy;) before capitals in compound words
- Examples: "InstructionPersistenceClassifier" → "Instruction­Persistence­Classifier"
- 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>
2025-10-26 11:03:23 +13:00
TheFlow
84dfd07643 chore: bump cache version for deployment 2025-10-26 10:26:33 +13:00
TheFlow
2d00c73027 fix(docs): complete language switching - update all UI elements instantly
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>
2025-10-26 10:26:13 +13:00
TheFlow
0f68452b13 fix(docs): complete language switching - update sidebar and hero instantly
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>
2025-10-26 10:21:02 +13:00
TheFlow
9d5c5a4a62 chore: bump cache version for deployment 2025-10-26 10:11:06 +13:00
TheFlow
25a5073362 fix(docs): resolve language persistence and duplicate selector issues
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>
2025-10-26 10:09:42 +13:00
TheFlow
d2c5f962d0 fix(session): use marker recovery_doc for reliable handoff selection
**Problem**: session-init.js used alphabetical sorting to select handoff
document, which worked by accident but was fragile and unreliable.

**Solution**: Prefer explicit recovery_doc from compaction marker before
falling back to alphabetical sort.

**Architecture**:
1. session-closedown.js sets recovery_doc in marker file
2. session-init.js reads recovery_doc BEFORE deleting marker
3. Explicitly uses marker's recovery_doc if available
4. Falls back to alphabetical sort only when no marker exists

**Verification**:
- Tested with no marker (uses alphabetical fallback) 
- session-closedown.js sets recovery_doc at line 1021 
- Non-interactive operation maintained 

**Strengthens**: inst_083 (handoff document auto-injection)
**Resolves**: User concern about reliable handoff selection

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 09:51:00 +13:00