Commit graph

13 commits

Author SHA1 Message Date
corsacca
4dfee08d13 replace mailgun with sendgrid for transactional email
- send through the sendgrid v3 json api via direct fetch with a
  manually cleared abort timeout; mailhog stays for development
- drop nodemailer-mailgun-transport and its types
- swap MAILGUN_* runtime config and env example for SENDGRID_API_KEY
  and optional SENDGRID_HOST
2026-09-15 11:16:44 +01:00
corsacca
7dfad0ee07 replace deepl with llm translation via openrouter
- translateText/translateTexts call OpenRouter chat-completions; glossary
  terms are prompt-injected from config/glossaries.ts, generated from the
  translation repo's TSVs by scripts/build-glossaries.ts
- model resolution: per-language override in config/languages.ts →
  translation.model site setting (new admin field) → TRANSLATION_MODEL env
  → anthropic/claude-opus-5, at low reasoning effort
- blank fragments are held back from the model, which drops them and breaks
  the one-translation-per-fragment count the caller maps results back on
- OpenRouter failures map to a typed error with a human-readable message;
  an unrecoverable one (no credits, bad key, rejected model) stops the run
  instead of repeating the same call for every remaining locale
- machine translations record source 'auto-translate'; 'deepl' stays
  readable for snapshots written before the switch
2026-09-07 16:30:48 +01:00
corsacca
050708084b switch feedback destination 2026-09-07 13:25:04 +01:00
corsacca
9d2df1d73f Purge Cloudflare cache on deploy 2026-05-20 17:14:35 +01:00
corsacca
e02393bf4d fix build 2026-04-30 13:21:48 +01:00
corsacca
4504136af4 Setup Analytics 2026-04-30 12:15:09 +01:00
corsacca
e57f9dfdd9 add mcp layer to extend 2026-04-28 15:07:16 +01:00
corsacca
847258f9ae CMS page translation 2026-04-27 13:33:31 +01:00
corsacca
b738a35a4a Upgrade migration system to support layers 2026-04-27 09:23:25 +01:00
corsacca
3dd17ef692 switch to public s3 for images in CMS 2026-04-23 10:56:15 +01:00
test-agent-10
45cc8e771d
Add global feedback-widget bubble to parent site (#1)
* add global feedback-widget bubble to parent site

Adds a persistent feedback bubble (bottom-right, all pages) that funnels
site-wide feedback to project id 3c0e8534-f593-4222-8315-31dda4514760.

- public/assets/feedback-widget/*: widget bundle + slot CSS (cherry-picked
  from the maps branch so this branch can run standalone)
- nuxt.config.ts: register <feedback-widget> as a custom element in both
  vue.compilerOptions and vite.vue.template.compilerOptions
- app/composables/useFeedbackWidget.ts: injects slot CSS and loads the
  widget iife on mount (dedup guard to avoid double-loads if maps land)
- app/app.vue: mounts one <feedback-widget> outside <NuxtLayout> so it
  appears on public, admin, and auth layouts

Heads-up for the future maps merge: pages with a map-anchored widget
(home/adopt/pray on the maps branch) will render two widgets — the global
bubble plus the map-specific one. Reconcile during that merge.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* make it more nuxt

---------

Co-authored-by: swift-river542 <swift-river542@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: corsacca <corsacca@gmail.com>
2026-04-22 07:31:10 -05:00
corsacca
7eb566a96b phase 3 2026-04-21 13:58:07 +01:00
corsacca
6f5313f990 init 2026-04-21 12:12:54 +01:00