On mobile (<1024px), skip auto-loading first document so users see the
sidebar category browser. Add sticky blue navigation bar showing current
document title. Expand all categories by default on mobile initial view.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The docs.html ?doc= parameter matches against the document list from
the API, which returns only long slugs. The short slug for STO-RES-0009
wasn't found, showing "Select a Document" instead. Also fixes two
docs-viewer.html links in home-ai.html to use docs.html routing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Research modal links pointed to docs-viewer.html which has a flat,
uncategorized sidebar. docs.html already supports ?doc=slug with
auto-expanding categories. Also adds editorial note CSS to docs.html
so the notes render with proper styling in the main docs view.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The sidebar download button was assuming every document had a PDF at
/downloads/{slug}.pdf, causing 404s for 70 documents where the slug
didn't match a file (or no PDF existed). Now only shows download
buttons when download_formats.pdf is explicitly set in MongoDB.
Corresponding migration populated download_formats.pdf for 72 documents
that have actual PDF files on disk.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add comprehensive research timeline (STO-REF-0011) tracing intellectual
evolution from SyDigital through Tractatus to sovereign governance.
Add sidebar filter UI to docs page (document type + audience dropdowns
with URL parameter support). Extend Document model with document_type
and status fields in create method and summary projection.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add summary projection to Document.list() excluding heavy content fields
- Fix 23 documents with invalid categories (framework/governance/reference)
- Archive 9 duplicate documents (kept canonical short-slug versions)
- Add Te Reo Māori UI translations to docs-app.js and document-cards.js
- Refactor language checks to be extensible (no more hardcoded EN/DE/FR)
- Remove unused font preloads from docs.html (fixes browser warning)
- Add resources to valid publish categories
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add i18n data-i18n attributes to navbar.js (~30 elements) and expand
all 4 common.json files with navbar translation keys (EN/DE/FR/MI)
- Replace broken HuggingFace Space links with local audit analytics
dashboard across 4 HTML files; update counts to 171,800+
- Add Steering Vectors, Taonga Governance, and Home AI sections to
researcher.html, leader.html, and implementer.html
- Update stale metrics: development period (11+ months), sessions
(1,000+), instructions (68), model references (Opus 4.6)
- Update roadmap Multi-LLM status to reflect Home AI as first non-Claude
deployment; add Sovereign Training Pipeline and Taonga Registry items
- Update all EN/DE/FR translation files with new section keys
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
FAB overlaps PWA install prompt and update notifications on small screens.
Mobile users now access feedback via the navbar drawer instead. Install
prompt dismissal persists in localStorage and is skipped in standalone mode.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Publications button in the Research dropdown was non-functional
on every page except index.html because the modal script was only
loaded there. Now the navbar dynamically loads it on all pages.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Create mi/homepage.json (125 keys) and mi/common.json (68 keys)
- Enable mi in i18n system and language selector (remove disabled flag)
- Add data-i18n attributes to untranslated elements (skip link, paper
Read CTAs, PDF download labels, timeline date labels)
- Add corresponding new keys to en/de/fr locale files
- Remove Counter-Arguments from About dropdown (desktop + mobile)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove individual paper titles from the Research dropdown. Replace with
three navigational items: Publications (opens research papers modal),
For Researchers, Research Timeline. Papers belong on pages, not in
navigation menus.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Embeds the research modal's paper content directly into the navbar
Research dropdown as a wider mega-dropdown. Shows Recent Research papers
as side-by-side cards, Foundational section with edition selector pills
(Academic/Community/Policymakers), and quick links to Researchers,
Timeline, and Browse All Docs.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The max-h-96 class was only added via JS so Tailwind's scanner never
generated it. Switch to inline style.maxHeight using scrollHeight for
reliable expand/collapse.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Merge Architecture link and Implementation dropdown into single "Framework"
dropdown on desktop (5 → 4 top-level items). Replace flat mobile drawer
sections with collapsible accordion (chevron toggle, auto-expand active
section). Remove Company section and Give Feedback button from mobile.
Koha promoted to standalone teal link in mobile.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move newsletter subscription CTA from buried bottom section to prominent
hero placement with "New" badge and RSS link. Add post-level subscribe
prompt after article content. Replace inline newsletter modal with
reusable newsletter.js component.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The taonga paper's migrated slug includes the full subtitle. Update the
modal href to match the actual documents collection slug so the
docs-viewer resolves it correctly.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
docs-viewer.html uses ?slug= not ?doc= (which is for docs.html).
The wrong parameter caused the viewer to fall back to the default
document instead of loading the requested paper.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace direct link to architectural-alignment.html with a modal
showing all research papers grouped by recency, with a footer link
to /docs.html for broader documentation discovery.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix TOC field name mismatch: API returns title/slug but renderTOC
read text/id, causing empty bullet points
- Dispatch documentLoaded event after async content loads so sidebar
TOC rebuilds with actual headings
- Update cache-bust version strings to force fresh JS/CSS
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace broken @apply directives with plain CSS (Tailwind @apply is
build-time only, was silently failing in browser <style> tags)
- Add table, hr, and list-item spacing styles for research papers
- Handle ?slug= query parameter in docs-viewer-app.js so blog post
links to docs-viewer.html?slug=X load the correct document
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds Blog link to both desktop nav (between Architecture and About)
and mobile menu (before About & Resources section).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- interactive-diagram.js: Only warn about missing translations when i18n
has already initialized (not during initial race before i18n completes)
- Add empty home-ai.json locale files (en/de/fr) to prevent console
warning on /home-ai.html page
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace "ensures", "guarantee", "foolproof", "world-class" and similar
absolute terms with evidence-based language throughout public pages, JS
components, and FAQ content. Changes apply inst_017 (no absolute
assurance terms) consistently.
Replacements:
- "ensures X" → "validates X", "so that X", "supports X", "maintains X"
- "guarantee" → removed or rephrased with qualified language
- "foolproof" → "infallible"
- "architecturally impossible" → "architecture prevents without
explicit override flags"
Preserved: published research papers (architectural-alignment*.html),
EU AI Act quotes, Te Tiriti treaty language, and FAQ meta-commentary
that deliberately critiques this language (lines 2842-2896).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Homepage redesign with coherent story arc: Problem → Philosophy →
Architecture → Production Evidence → Audience Paths → Papers → Timeline.
Add Koha (donations) section prominently after Honesty Note for optimal
placement. Add Philosophical Foundations PDF download link.
New pages: timeline.html (research evolution Oct 2025–Feb 2026),
home-ai.html (SLL sovereign AI story). Blog seed script with two
initial posts.
Global navigation: consistent desktop nav with Research, Architecture,
and About dropdowns across all pages. Blog/FAQ removed from nav until
populated.
Page refinements: remove emoji from headings across architecture,
leader, implementer, researcher pages. Fix FAQ dead links → counter-
arguments. Add no-JS fallback to docs.html. Fix CSP inline style
violations in village-case-study.html (hero and CTA sections converted
from inline styles to Tailwind/CSS classes). Add Home AI cross-reference
to village case study.
Note: philosophical-foundations-village-project.pdf must be deployed
separately to public/downloads/ (gitignored directory).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Create korero-counter-arguments.html (STO-INN-0004) with styled critique cards
- Remove umami-tracker.js and all references from HTML files
- Update privacy.html Section 6 to reflect "No Analytics" policy
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Downloaded flag SVG locally to avoid CORS issues
- Updated language-selector.js to use local SVG path
- Replaced NZ emoji with proper Tino Rangatiratanga flag
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Uses SVG from mysovereignty.digital for proper Māori representation.
Tooltip still shows "Planned" as requested.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Homepage village_section translations (DE/FR)
- Village case study page translations (EN/DE/FR)
- Added village-case-study to i18n page mapping
- data-i18n attributes for hero, overview, and CTA sections
Translations via DeepL API.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add 'Company' section to footer with MySovereignty website links
- Link to main website (mysovereignty.digital)
- Link to Village Ecosystem page
- Link to About Us page
- Add 'Company' section to navbar mobile menu
- Link to main website (mysovereignty.digital)
- Update footer grid layout: md:grid-cols-4 → md:grid-cols-2 lg:grid-cols-5
- Include translations for all 3 languages (EN, DE, FR)
- EN: Company
- DE: Unternehmen
- FR: Entreprise
Files modified:
- public/js/components/footer.js (lines 52-62)
- public/js/components/navbar.js (lines 110-116)
- public/locales/en/common.json
- public/locales/de/common.json
- public/locales/fr/common.json
Tested locally on port 9000 - all links functional, translations verified.
Improves UX by resetting form after test email is successfully sent,
allowing admin to start fresh for the next newsletter.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Complete implementation of newsletter sending system with SendGrid integration:
Backend Implementation:
- EmailService class with template rendering (Handlebars)
- sendNewsletter() method with subscriber iteration
- Preview and send controller methods
- Admin routes with CSRF protection and authentication
- findByInterest() method in NewsletterSubscription model
Frontend Implementation:
- Newsletter send form with validation
- Preview functionality (opens in new window)
- Test send to single email
- Production send to all tier subscribers
- Real-time status updates
Dependencies:
- handlebars (template engine)
- @sendgrid/mail (email delivery)
- html-to-text (plain text generation)
Security:
- Admin-only routes with authentication
- CSRF protection on all POST endpoints
- Input validation and sanitization
- Confirmation dialogs for production sends
Next steps: Configure SendGrid API key in environment variables
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Root cause: Tailwind arbitrary value z-[9999] was not in compiled CSS
(tailwind.css last modified Oct 9, feedback.js modified Nov 3).
Solution: Use inline styles with !important for all critical properties:
- position: fixed
- bottom/right positioning
- z-index: 999999
- display: flex
- visibility: visible
- opacity: 1
This bypasses Tailwind compilation issues and ensures button is visible.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add Agent Lightning link to navbar menu (visible on all pages)
- Add prominent "What's New" banner on homepage highlighting AL integration
- Link to AL Discord and integration page
- Improve discoverability of AL integration for visitors
Related to Phase 2 Master Plan completion
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Feedback Button (z-index issue):
- Increased z-index from 40 to 9999 with !important
- Button was rendering but hidden behind other elements
- Added inline style as backup for z-index
Agent Lightning Page:
- Fixed text visibility: changed gray-300 to white on dark background
- Fixed broken download link: changed to GitHub repo link
- Fixed collaboration button: now triggers feedback FAB correctly
- Removed duplicate closing script tag
All issues resolved and deployed
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Changed init() to render FAB/modal before fetching CSRF token
- CSRF fetch now runs in parallel (non-blocking)
- Prevents button from never appearing if CSRF fetch fails/is slow
- Fixed cache version in agent-lightning.html to match deployment
Fixes issue where feedback button was invisible on all pages
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added Agent Lightning research section to researcher.html with Demo 2 results
- Created comprehensive /integrations/agent-lightning.html page
- Added Agent Lightning link in homepage hero section
- Updated Discord invite links (Tractatus + semantipy) across all pages
- Added feedback.js script to all key pages for live demonstration
Phase 2 of Master Plan complete: Discord setup → Website completion
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
CRITICAL FIX: Forces browsers to fetch new service worker
- Add ?v=0.1.4 query parameter to service worker registration
- Browsers will now immediately fetch updated SW file
- Ensures Phase 2 content visible to ALL users immediately
- Fixes persistent caching issue
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Adds 'Give Feedback' button to mobile navigation menu
- Integrates with feedback modal system
- Part of governed feedback system (Tractatus + AL)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added null check for section.technicalLevel (defaults to 'basic')
- Prevents "Cannot read properties of undefined (reading 'charAt')" error
- Updated fix-glossary-structure.js to set category: 'getting-started'
- Moves glossary back to Getting Started section where it belongs
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 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 two navigation issues across all Alexander sections:
1. Researcher collaboration contact:
- Replaced email link with language-responsive modal button
- Added event listener for #alexander-research-inquiry-button
- Modal provides structured research inquiry form with i18n support
2. Values page links (404 errors):
- Fixed /values.html → /about/values.html on 3 pages:
* index.html (homepage)
* researcher.html
* leader.html
Both issues now resolved - modal works with language switching,
values links navigate correctly.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added 'navbarReady' event dispatch from navbar after rendering
- Language selector now waits for navbar container to exist
- Fixes race condition where language selector ran before navbar rendered
- Language toggle now functional on researcher, implementer, leader, about pages
- Changed from gray-700 to blue-600 (matches site theme)
- Added shadow-sm for better definition
- Buttons now clearly visible on white card background
- Added share section with Copy Link, Email, LinkedIn buttons
- Translations: EN, DE, FR (Option 3: 'Help us reach the right people')
- CSP-compliant JavaScript (no inline handlers)
- Professional gray styling, no marketing circus
- Target: researchers, implementers, leaders needing AI governance solutions
- Created auto-reload.js to detect service worker updates
- Listens for CACHE_CLEARED message and controllerchange events
- Auto-reloads page when new service worker activates
- Added to all HTML pages for consistent behavior
- Ensures users always see latest content after deployment
Fix authentication error in disk monitoring dashboard:
- Change from 'token' to 'admin_token' for consistency with admin system
- Add check for missing token with user-friendly error message
- Prevents 401 errors when admin is logged in
Fixes: Failed to fetch metrics: 401 (Unauthorized)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>