Language Selector Issues Resolved:
- Add cache-busting version (v0.1.0.1760643941) to i18n-simple.js
- Add cache-busting version to language-selector.js on all pages
- Previously: Scripts cached without versions, causing stale JS to load
- Now: Browser forced to reload latest language selector code
Pages Updated with Cache-Busting:
- index.html: Added ?v= to both i18n scripts
- about.html: Added ?v= to both i18n scripts
- researcher.html: Added ?v= to both i18n scripts
- leader.html: Added ?v= to both i18n scripts
- implementer.html: Added ?v= to both i18n scripts
- faq.html: Added ?v= to both i18n scripts
- docs.html: Added missing i18n scripts + cache-busting
Root Cause Analysis:
- navbar.js had cache-busting (?v=0.1.0.1760254958072)
- i18n scripts had NO cache-busting
- Browsers served cached old versions of language-selector.js
- Language selector container created by navbar, but old selector code failed
Technical Details:
- Desktop language selector: Already correctly shows dropdown only (hidden md:block)
- Mobile language selector: Already correctly shows icons only (flex md:hidden)
- No code changes needed - cache was the issue
- Script loading order: navbar.js → i18n-simple.js → language-selector.js
Deployment:
- All 7 HTML pages deployed to production
- Language selector now appears on all pages including index.html
- Cache invalidation forces browser to fetch new JavaScript
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Mobile UX Improvements:
- Replace dropdown with icon-only buttons on mobile (<768px)
- Show flag icons (🇬🇧🇩🇪🇫🇷) with 44x44px touch targets
- Preserve dropdown with text on desktop (≥768px)
- Add visual feedback for active language selection
- Responsive design using Tailwind md: breakpoint
Pages Updated:
- Add i18n support to researcher.html
- Add i18n support to leader.html
- Add i18n support to implementer.html
- Add i18n support to about.html
- Add i18n support to faq.html
Technical Changes:
- Dual rendering: desktop dropdown + mobile icon buttons
- Event handlers for both desktop select and mobile buttons
- Active state management with visual indicators
- Accessibility: aria-labels and tooltips on icons
- Auto-refresh selector on language change
Mobile Optimization:
- Reduced navbar crowding on small screens
- Better touch targets (min 44x44px)
- Clear visual feedback for language selection
- No text truncation on mobile
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changed copyright from "Tractatus AI Safety Framework" (not a legal entity)
to "John G Stroh" (actual copyright holder) for legal clarity.
Files updated:
- 13 HTML files (all website pages)
- Consistent with LICENSE file (Copyright 2025 John G Stroh)
- Deployed to production
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
## FAQ Modal Fixes
- Fix modal scrolling: changed max-h-[85vh] to h-[85vh] with min-h-0
- Added flex-shrink-0 to modal header for proper flex behavior
- Users can now scroll through all 30 FAQ questions (was stuck at 8)
- Enhanced markdown parsing with error handling and fallback
## UI Improvements
- Removed Quick Actions section from FAQ page per user request
- Standardized footer across 7 user-facing pages
- Added Newsletter link under Community section in all footers
## Pages Updated
- faq.html, researcher.html, implementer.html, leader.html
- about.html, media-inquiry.html, case-submission.html
## Version
- Bumped to 1.0.4 with force update enabled
- Service worker cache updated
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Implements cache busting and progressive web app features:
**Version Management:**
- version.json manifest with changelog tracking
- Service worker with automatic update checking (hourly)
- Update notification UI with changelog display
- Configurable forced updates after timeout
- Cache control headers for optimal performance
**PWA Features:**
- manifest.json with app shortcuts
- Apple touch icon support
- "Add to Home Screen" functionality
- Offline support via service worker
**Cache Strategy:**
- HTML: 5-minute cache with revalidation
- CSS/JS: 1-year immutable cache
- Images: 1-year immutable cache
- version.json/service-worker.js: no-cache
**Integration:**
- All main pages updated with PWA meta tags
- Version manager loaded on all user-facing pages
- Production deployment successful
Users who previously visited the site will now automatically receive
update notifications when version changes.
🤖 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)
- Update integrated implementation roadmap with Phase 2 completions
- Update blog curation admin interface
- Update implementer page with value pluralism content
Reflects October 12 production status
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changed implementer.html 'Deployment Quickstart Kit' section to 'Deployment Architecture Guide':
REMOVED:
- Download link for tractatus-quickstart.tar.gz (contained production configs)
- docker-compose.yml, .env.example, sample governance rules
- verify-deployment.sh script
- Installation and troubleshooting guides with production details
ADDED:
- Link to GitHub deployment-guide/ (sanitized conceptual documentation)
- Conceptual architecture and patterns description
- Security best practices overview
- Contact info for production implementation support (john.stroh.nz@pm.me)
Rationale: Production deployment package on public website provided attack surface. Sanitized guide maintains educational value without exposing implementation details.
Deployed to: https://agenticgovernance.digital/implementer.html
**Cache-Busting Improvements:**
- Switched from timestamp-based to semantic versioning (v1.0.2)
- Updated all HTML files: index.html, docs.html, leader.html
- CSS: tailwind.css?v=1.0.2
- JS: navbar.js, document-cards.js, docs-app.js v1.0.2
- Professional versioning approach for production stability
**systemd Service Implementation:**
- Created tractatus-dev.service for development environment
- Created tractatus-prod.service for production environment
- Added install-systemd.sh script for easy deployment
- Security hardening: NoNewPrivileges, PrivateTmp, ProtectSystem
- Resource limits: 1GB dev, 2GB prod memory limits
- Proper logging integration with journalctl
- Automatic restart on failure (RestartSec=10)
**Why systemd over pm2:**
1. Native Linux integration, no additional dependencies
2. Better OS-level security controls (ProtectSystem, ProtectHome)
3. Superior logging with journalctl integration
4. Standard across Linux distributions
5. More robust process management for production
**Usage:**
# Development:
sudo ./scripts/install-systemd.sh dev
# Production:
sudo ./scripts/install-systemd.sh prod
# View logs:
sudo journalctl -u tractatus -f
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated footer on index.html, researcher.html, advocate.html, implementer.html to 4-column layout with Community section
- Added Media Inquiries and Submit Case Study links to footers
- Added 'Submit Case Study' button to researcher page Contribute section
- Added two prominent CTA buttons to advocate page Build Community section
- Added Community links to Resources column on about.html and values.html (maintain Te Tiriti as 4th column)
- Makes media-inquiry.html and case-submission.html forms discoverable across site
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Created Apache License 2.0 LICENSE file
- Removed all MIT License references from HTML pages
- Updated all footers with Apache 2.0 license links
- Updated about.html with comprehensive license section explaining why Apache 2.0
- Added patent protection, contributor clarity, and community standard benefits
- Updated package.json license field to "Apache-2.0"
- Updated README.md with Apache 2.0 license information
- Deployed LICENSE file to production server (accessible at /LICENSE)
Why Apache 2.0 over MIT:
- Patent protection for users
- Clear contribution terms
- Permissive use (commercial, modification, distribution)
- Community standard in AI/ML projects (TensorFlow, PyTorch, Apache Spark)
All pages cache-busted and deployed with v1759833751
🤖 Generated with Claude Code (https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added navigation bar to index.html with links to all main sections
- Added "About" link to all page navigation menus
- Fixed "View Live API Status" button - changed from /api/governance (Phase 2) to 27027 demo
- Removed "Framework Status" footer link (Phase 2 backend work)
- Updated footer resources section with complete site navigation
- Cache-busted all pages for deployment
Navigation now consistent across all pages: Researcher, Implementer, Advocate, Documentation, About, Home
🤖 Generated with Claude Code (https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Created /about.html with mission, values, framework overview
- Created /about/values.html with comprehensive values statement
- Included respectful Te Tiriti o Waitangi acknowledgment
- Added CARE Principles for Indigenous Data Governance
- Documented digital sovereignty and Māori data sovereignty
- Updated all page footers with Te Tiriti acknowledgment
- Added links to Te Mana Raraunga and indigenous data resources
- Cache-busted all HTML files for deployment
🤖 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>