Commit graph

103 commits

Author SHA1 Message Date
TheFlow
d8f8829635 feat: eliminate all GitHub references from agenticgovernance.digital
- Created /source-code.html — sovereign hosting landing page explaining
  why we left GitHub, how to access the code, and the sovereignty model
- Navbar: GitHub link → Source Code link (desktop + mobile)
- Footer: GitHub link → Source Code link
- Docs sidebar: GitHub section → Source Code section with sovereign repo
- Implementer page: all repository links point to /source-code.html,
  clone instructions updated, CI/CD code example genericised
- FAQ: GitHub Discussions button → Contact Us with email icon
- FAQ content: all 4 locales (en/de/fr/mi) rewritten to remove
  GitHub Actions YAML, GitHub URLs, and GitHub-specific patterns
- faq.js fallback content: same changes as locale files
- agent-lightning integration page: updated to source-code.html
- Project model: example URL changed from GitHub to Codeberg
- All locale files updated: navbar.github → navbar.source_code,
  footer GitHub → source_code, FAQ button text updated in 4 languages

Zero GitHub references remain in any HTML, JS, or JSON file
(only github-dark.min.css theme name in highlight.js CDN reference).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 18:14:26 +13:00
TheFlow
8ecb0505f5 feat: rewrite architecture.html — Guardian Agents, defence in depth, i18n refresh
- Rewrite architecture.html from 1112 to 481 lines
- Add Guardian Agents section (4-phase verification, philosophical foundations)
- Add defence in depth narrative (3 layers with honest limitations)
- Compress five principles (remove examples, keep descriptions)
- Remove redundant sections (Six Core Services grid, Interactive SVG,
  Data Visualizations, Two Implementations, Applied to Training)
- Add Guardian Agents Philosophy paper to research-papers-modal.js
- Retranslate all locales (de, fr, mi) via DeepL with brand preservation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 15:21:01 +13:00
TheFlow
2238547344 refactor: Rename "Home AI" → "Village AI" across entire codebase
- 57 files modified, 5 files renamed (home-ai → village-ai)
- HTML pages: all user-facing text, data-i18n attributes, anchor IDs, CSS classes
- i18n JSON: keys (home_ai → village_ai) and values across en/de/fr/mi
- Locale files renamed: home-ai.json → village-ai.json (4 languages)
- Main page renamed: home-ai.html → village-ai.html
- Research downloads: translated terms updated (French "IA domestique",
  Māori "AI ā-whare"/"AI kāinga" → "Village AI" per brand name rule)
- JavaScript: navbar component, blog post scripts
- Markdown: research timeline, steering vectors paper, taonga paper

Aligns with community codebase rename (commit 21ab7bc0).
"Village" is a brand name — stays untranslated in all languages.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 22:09:44 +13:00
TheFlow
4c6c72847d fix: Use long slugs for document links matching API list response
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>
2026-02-22 18:18:20 +13:00
TheFlow
2ada08145e fix: Route research papers to docs.html with categorized navigation
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>
2026-02-22 17:45:11 +13:00
TheFlow
0ef20a6e8d fix: Optimize docs page API (7MB→19KB), fix categories, add MI translations
- 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>
2026-02-11 10:14:02 +13:00
TheFlow
0c2c2e463d feat: Audit & update all audience pages with current research and metrics
- 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>
2026-02-11 08:07:26 +13:00
TheFlow
e9511afd85 fix: Hide feedback FAB on mobile, add to drawer, persist install dismissal
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>
2026-02-11 05:55:30 +13:00
TheFlow
a92e822e5c fix: Load research papers modal on all pages with navbar
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>
2026-02-09 19:53:45 +13:00
TheFlow
cf280d7bb6 feat: Add Te Reo Māori (mi) translation for landing page + i18n fixes
- 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>
2026-02-09 18:26:28 +13:00
TheFlow
27120af6ca refactor: Clean up Research dropdown — navigational items only
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>
2026-02-09 18:11:22 +13:00
TheFlow
f2748c311c feat: Replace Research dropdown with mega-dropdown showing paper cards
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>
2026-02-09 18:07:01 +13:00
TheFlow
10263a9f24 fix: Use inline maxHeight for mobile accordion instead of Tailwind class
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>
2026-02-09 17:58:27 +13:00
TheFlow
32563adf1b feat: Consolidate navbar — Framework dropdown + mobile accordion
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>
2026-02-09 17:55:08 +13:00
TheFlow
8379b50162 fix: Use correct document slug for taonga paper in research modal
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>
2026-02-09 16:33:43 +13:00
TheFlow
d0e6bcb97e fix: Use correct query parameter for docs-viewer paper links
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>
2026-02-09 16:21:50 +13:00
TheFlow
737593de2d feat: Add research papers modal to homepage hero button
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>
2026-02-09 16:16:53 +13:00
TheFlow
962edaa34b fix: Fix docs-viewer TOC, cache busting, and documentLoaded event
- 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>
2026-02-09 10:36:18 +13:00
TheFlow
6de4dab9a9 feat: Add Blog link to navbar navigation
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>
2026-02-08 18:06:15 +13:00
TheFlow
42219f6799 fix: Suppress diagram translation warning on initial load, add home-ai locale stubs
- 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>
2026-02-07 20:59:06 +13:00
TheFlow
df8c6ccb03 fix: Remove absolute assurance language per inst_017 across codebase
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>
2026-02-07 14:44:45 +13:00
TheFlow
074906608d feat: Complete site audit and UI/UX redesign for agenticgovernance.digital
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>
2026-02-07 12:44:53 +13:00
TheFlow
6811605477 feat: Add Kōrero HTML page, remove umami analytics
- 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>
2026-01-20 11:43:29 +13:00
TheFlow
f6840b475c feat: Add Tino Rangatiratanga (Māori) flag to language selector
- 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>
2025-12-09 18:26:10 +13:00
TheFlow
69c33fc18f feat: Replace NZ flag with Tino Rangatiratanga flag for Te Reo Māori
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>
2025-12-09 18:21:50 +13:00
TheFlow
a7937dc274 feat: Add company website links to navbar and footer
- 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.
2025-11-24 13:12:44 +13:00
TheFlow
7d635bf3dc feat: Add Phase 2 newsletter enhancements and email templates
Phase 2 Implementation:
- Add RSS feed discovery links to footer (Subscribe section)
- Create email templates (base-template.html, research-updates-content.html)
- Add comprehensive newsletter sending implementation plan
- Fix CSP check to exclude email-templates directory

Email templates use inline styles for cross-client compatibility
(Gmail, Outlook, Apple Mail) and are excluded from CSP checks.

Next steps: Install dependencies (handlebars, @sendgrid/mail),
implement EmailService, controller methods, and admin UI.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 11:13:15 +13:00
TheFlow
4408b694f9 feat: Add comprehensive visitor retention system
Implemented RSS feeds, newsletter subscriptions, email templates, and admin UI
to encourage repeat visits from self-selected visitors.

## RSS Feeds
- Created RSS 2.0 feed generation (main + topic-specific)
- Endpoints: /feed.xml and /feed/:topic.xml
- Added getPublished() and getPublishedByTag() to BlogPost model

## Newsletter Subscriptions
- Created reusable newsletter modal component
- Added to index, researcher, implementer, leader pages
- Interest selection: research, implementation, governance, project-updates
- Added newsletter trigger button to footer
- Uses existing /api/newsletter/subscribe endpoint

## Email Templates
- Created comprehensive specifications for 4 newsletter tiers
- Research Updates (monthly) - scholarly audience
- Implementation Notes (bi-weekly) - practitioners
- Governance Discussions (sporadic) - stakeholders
- Project Updates (quarterly) - general audience
- Documented template variables, design guidelines

## Admin UI
- Enhanced newsletter management with "Send Newsletter" section
- Tier selection, subject/preview input, JSON content editor
- Preview/test/send buttons (UI ready, email service TBD)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 10:42:43 +13:00
TheFlow
6d251ca08a feat: add i18n support for Agent Lightning page and navbar feedback
Added comprehensive internationalization:
- German and French translations via DeepL API
- Language-responsive Agent Lightning integration page
- Navbar feedback button now translates (DE: "Feedback geben", FR: "Donner son avis")
- Translation files: agent-lightning-integration.json (EN/DE/FR)
- Data-i18n attributes on all major headings and CTA buttons
- i18n scripts loaded on Agent Lightning page

Translation coverage:
- Hero section
- All major section headings
- Call-to-action buttons
- Navbar feedback menu item

Files modified:
- public/integrations/agent-lightning.html (i18n scripts + data-i18n attributes)
- public/js/components/navbar.js (data-i18n for feedback button)
- public/js/i18n-simple.js (page map entry)
- public/locales/*/agent-lightning-integration.json (translations)
- public/locales/*/common.json (navbar.feedback translations)
- scripts/translate-agent-lightning.js (translation automation)
- docs/reports/FRAMEWORK_PERFORMANCE_REPORT_2025-11-03.md (framework stats)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 15:58:12 +13:00
TheFlow
71689bbe97 fix: feedback button visibility using inline styles
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>
2025-11-03 15:39:23 +13:00
TheFlow
b8df972619 feat: Add Agent Lightning integration to navigation and homepage
- 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>
2025-11-03 15:12:29 +13:00
TheFlow
b92eab85ff fix: feedback button visibility and Agent Lightning page issues
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>
2025-11-03 15:04:00 +13:00
TheFlow
531284d75a fix: render feedback button immediately without waiting for CSRF
- 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>
2025-11-03 14:52:37 +13:00
TheFlow
72404725ae feat: Add feedback button to navbar
- 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>
2025-11-03 12:53:14 +13:00
TheFlow
925b28498d feat: Complete Phase 2 - Agent Lightning integration and Discord community launch
## Website Updates
- **Homepage** (index.html):
  - Updated hero subtitle to mention Agent Lightning integration
  - Added " Now with AL" badges to all pathway cards
  - Removed Audit Logs from hero (moved to researcher page)
  - Added comprehensive community section with both Discord servers

- **Researcher Page** (researcher.html:619-786):
  - Added Agent Lightning integration section
  - 5 open research questions
  - Demo 2 validation status with limitations
  - Both Discord community links

- **Implementer Page** (implementer.html:1324-1341):
  - Added Discord invite buttons to AL CTA section

- **Leader Page** (leader.html:424-441):
  - Added Discord invite buttons to AL CTA section

- **New Integration Page** (integrations/agent-lightning.html):
  - Standalone AL integration guide
  - Overview and community links

## Feedback System (Governed AI Communication)
- Backend: Feedback model, controller, routes, governance service
- Frontend: FAB, modal UI, navbar integration
- Three governance pathways: Autonomous, Deliberation, Human Mandatory

## Discord Communities
- Tractatus Discord: https://discord.gg/Dkke2ADu4E
- Agent Lightning Discord: https://discord.gg/bVZtkceKsS

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 12:52:26 +13:00
TheFlow
40488a3d7c fix: handle undefined technicalLevel in cards and set glossary category
- 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>
2025-11-01 11:41:18 +13:00
TheFlow
f4fa637635 fix: language selector now works on all pages
- 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
2025-10-29 15:41:17 +13:00
TheFlow
18bb173c95 feat: add disk monitoring system for dev and production
Add comprehensive disk monitoring with real-time metrics:
- Backend API endpoints for disk/memory metrics (local + remote)
- Admin UI page with CSP-compliant DOM rendering
- Health status indicators with color-coded thresholds
- SSH-based remote metrics collection from OVH VPS
- Auto-refresh every 5 minutes

Backend:
- src/models/DiskMetrics.model.js: Metrics collection model
- src/controllers/diskMetrics.controller.js: 3 admin endpoints
- src/routes/diskMetrics.routes.js: Admin-authenticated routes
- src/routes/index.js: Register disk-metrics routes

Frontend:
- public/admin/disk-monitoring.html: Admin dashboard page
- public/js/admin-disk-monitoring.js: CSP-compliant UI rendering
- public/js/components/navbar-admin.js: Add disk monitoring link

Documentation:
- deployment-quickstart/UPTIME_MONITORING_SETUP.md

API endpoints:
- GET /api/admin/disk-metrics (all systems)
- GET /api/admin/disk-metrics/local (dev system)
- GET /api/admin/disk-metrics/remote (production VPS)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 11:53:55 +13:00
TheFlow
573cbffa24 fix(analytics): remove data-domains restriction from tracking
- Removes data-domains attribute that was blocking tracking
- Allows tracking on agenticgovernance.digital and any subdomains
- Fixes issue where pages were not being tracked

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 10:02:44 +13:00
TheFlow
d2165034f0 feat(analytics): add Umami website ID to tracking script
- Website ID: e09dad07-361b-453b-9e2c-2132c657d203
- Analytics dashboard: https://analytics.agenticgovernance.digital
- Tracking now fully operational for agenticgovernance.digital

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 02:12:43 +13:00
TheFlow
d32be2c673 feat(api): implement research inquiry endpoint and Umami analytics
HIGH PRIORITY: Fixes production 404 error on research inquiry form

Research Inquiry API:
- Add POST /api/research-inquiry endpoint for form submissions
- Add admin endpoints for inquiry management (list, get, assign, respond, delete)
- Create ResearchInquiry model with MongoDB integration
- Add to moderation queue for human review (strategic quadrant)
- Include rate limiting (5 req/min) and CSRF protection
- Tested locally: endpoint responding, data saving to DB

Umami Analytics (Privacy-First):
- Add Docker Compose config for Umami + PostgreSQL
- Create nginx reverse proxy config with SSL support
- Implement privacy-first tracking script (DNT, opt-out, no cookies)
- Integrate tracking across 26 public HTML pages
- Exclude admin pages from tracking (privacy boundary)
- Add comprehensive deployment guide (UMAMI_SETUP_GUIDE.md)
- Environment variables added to .env.example

Files Created (9):
- src/models/ResearchInquiry.model.js
- src/controllers/research.controller.js
- src/routes/research.routes.js
- public/js/components/umami-tracker.js
- deployment-quickstart/nginx-analytics.conf
- deployment-quickstart/UMAMI_SETUP_GUIDE.md
- scripts/add-umami-tracking.sh
- scripts/add-tracking-python.py
- SESSION_SUMMARY_ANALYTICS_RESEARCH_INQUIRY.md

Files Modified (29):
- src/routes/index.js (research routes)
- deployment-quickstart/docker-compose.yml (umami services)
- deployment-quickstart/.env.example (umami config)
- 26 public HTML pages (tracking script)

Values Alignment:
 Privacy-First Design (cookie-free, DNT honored, opt-out available)
 Human Agency (research inquiries require human review)
 Data Sovereignty (self-hosted analytics, no third-party sharing)
 GDPR Compliance (no personal data in analytics)
 Transparency (open-source tools, documented setup)

Testing Status:
 Research inquiry: Locally tested, data verified in MongoDB
 Umami analytics: Pending production deployment

Next Steps:
1. Deploy to production (./scripts/deploy.sh)
2. Test research form on live site
3. Deploy Umami following UMAMI_SETUP_GUIDE.md
4. Update umami-tracker.js with website ID after setup

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 01:31:02 +13:00
TheFlow
ce7747175c feat(compliance): add GDPR compliance page with trilingual support
Implements comprehensive GDPR compliance documentation explaining how the
Tractatus Framework enforces data protection through architectural constraints
rather than policy documents.

Key features:
- 8 sections covering GDPR Articles 5, 6, 15-22, 25, 32, 33
- Framework positioning: BoundaryEnforcer, CrossReferenceValidator, PluralisticDeliberationOrchestrator
- Full trilingual support (EN/DE/FR) via DeepL API (322 translations)
- Footer links and i18n integration across all languages
- Professional translations for legal accuracy

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 10:26:57 +13:00
TheFlow
e2de187fa4 fix(i18n): ensure contact modal displays in correct language when opened
Fixed issue where clicking "Kontakt" in German mode showed English contact form.

Changes:
- Re-apply translations when modal opens (ensures current language is used)
- Use translated "submitting" text for sending state (DE: "Senden...", FR: "Envoi en cours...")
- Use translated submit button text when re-enabled
- Remove duplicate success message text

Now clicking "Kontakt" in DE mode or "Nous contacter" in FR mode correctly shows the modal in that language.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 18:37:40 +13:00
TheFlow
a69d12b5ba feat(i18n): add multilingual support to Contact Us modal and fix translations
**Contact Modal:**
- Added complete DE/FR translations for contact form
- Added 17 data-i18n attributes to modal elements
- Form labels, buttons, messages now translate
- Languages: EN, DE (Nachricht senden), FR (Envoyer le message)

**Fixed Translations:**
- media-inquiry.json: Fixed "Your Name" → "Ihr Name" (DE), "Votre nom" (FR)
- common.json: Added contact_modal section with all form text

**Translations Added:**
- Modal heading, description, all form labels
- Inquiry type options (general, partnership, technical, feedback)
- Submit/cancel buttons, success/error messages
- Dynamic "Sending..." text (Senden.../Envoi en cours...)

**Technical:**
- Contact modal in footer.js now fully i18n-enabled
- Uses window.I18n.translations for dynamic content
- All text translates when language selector is used

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 16:57:47 +13:00
TheFlow
b7a76017dc 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
06ce4744e9 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
5643050eb6 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
25fccdde4b 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
427b50993b fix(interactive-diagram): resolve race condition with SVG contentDocument loading 2025-10-26 12:23:55 +13:00
TheFlow
7115bd9fd8 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