Commit Graph

  • d008baf81b feat(landing): nouvelle animation d'accueil — une recette déclinée dans les quatre formats production-deployment sepehr 2026-08-30 23:49:05 +02:00
  • 3f45ccdf50 feat(ui): vague 4 — la zone de dépôt répond, l'or devient lisible, tarifs binaires, avant/après réel sepehr 2026-08-30 23:27:53 +02:00
  • 9d5b5ce9c3 feat(landing): hero animé dessiné — la promesse du produit montrée au lieu d'une photo de banque d'images sepehr 2026-08-30 23:19:07 +02:00
  • 5ae6c48435 docs: règles de communication en français correct, sans jargon sepehr 2026-08-30 23:08:08 +02:00
  • a96b3c099a feat(translate): multi-file queue with dedicated runner tests + context polish sepehr 2026-08-30 23:05:37 +02:00
  • 67365918ae feat(ui,api): wave 3 — editorial pricing, real cancel, server history, DeepL purge sepehr 2026-08-30 22:42:29 +02:00
  • 52748ee653 feat(pricing): remove DeepL from all user-facing surfaces sepehr 2026-08-30 22:20:53 +02:00
  • 017b998941 fix(landing): pricing cards read live plan prices from /api/v1/auth/plans sepehr 2026-08-30 22:12:52 +02:00
  • 111f3cb69d fix(ui): wave 2 from critique re-run — AA contrast, unified PageHeader, checkout confirm sepehr 2026-08-30 22:02:35 +02:00
  • 50047ea8a2 fix(ui): design critique overhaul — a11y, honest metrics, i18n repair (critique 2026-08-30) sepehr 2026-08-30 21:44:53 +02:00
  • 1a67241ad5 fix(migrations): use sa.false() for boolean server default sepehr 2026-08-30 09:17:18 +02:00
  • e864caac00 fix(landing): replace language cycle button with dropdown selector sepehr 2026-08-30 09:08:58 +02:00
  • b4e873ad2c feat(review,teams): review foundation — segments, side-by-side editor, rebuild, XLIFF, team workspaces sepehr 2026-08-29 19:04:32 +02:00
  • 526c87348f feat(translation): quality pipeline overhaul + new features (audit 2026-08-29) sepehr 2026-08-29 18:38:09 +02:00
  • 992f13d53c fix(translate): apply Excel chart text setters (were silently dropped) sepehr 2026-07-15 22:21:53 +02:00
  • 07c4c12e6a fix(translate): chart labels, sheet-refs, sheet-name offset, paid-user Memento sepehr 2026-07-15 22:04:40 +02:00
  • 8f96ddfe71 feat(admin): Stripe live-mode safety + one-click webhook setup sepehr 2026-07-14 20:19:49 +02:00
  • 9b15b7c9fa feat(format): B3.10 — preserve code-block / callout layout (drawing-covered blocks) sepehr 2026-07-14 19:56:12 +02:00
  • 2da2c4765c feat(format): B3.9 — preserve PDF table column structure during translation sepehr 2026-07-14 19:25:24 +02:00
  • 4aebb49c7b fix(brand): Memento (not Momento) — fix typo + add link to memento-note.com sepehr 2026-07-14 19:19:00 +02:00
  • 4255a1a0c5 feat(format): B3.8 — column-aware next-block layout for multi-column PDFs sepehr 2026-07-14 19:05:47 +02:00
  • 3ae28dd3cb feat(format): B3.6+B3.7 — PDF transparent redaction + next-block-aware layout sepehr 2026-07-14 18:56:31 +02:00
  • e706cef5d6 feat(format): B3.5 — PDF smart-fit rewrite + critical fontname=None fix sepehr 2026-07-14 18:36:12 +02:00
  • 12cd0c6893 test: COMPLEX test corpus (5 sections, 80 hyperlinks, 10 footnotes, 3 SmartArt, 8 PDF pages with TOC) sepehr 2026-07-14 18:06:23 +02:00
  • b706cbf802 test: generate test corpus for B1/B2/B3 (Word+Excel+PPTX+PDF with hyperlinks/footnotes/charts/SmartArt) sepehr 2026-07-14 17:52:06 +02:00
  • dd1e005c70 feat(cache): C2 — Redis translation cache with user/prompt/glossary namespacing sepehr 2026-07-14 17:05:24 +02:00
  • 04a9328860 feat(format): B3 — PDF hyperlink preservation + safe redaction + LibreOffice log sepehr 2026-07-14 17:02:21 +02:00
  • d40d7f3e86 feat(providers): C1.1 — NewProviderAsLegacyAdapter + LegacyProviderAsNewAdapter sepehr 2026-07-14 16:58:11 +02:00
  • c794eff823 feat(quality): A4 — L2 Pro premium judge (8 dims, gpt-4o, Pro-gated, opt-in) sepehr 2026-07-14 16:56:04 +02:00
  • 8d0fc818ef feat(metrics): C3 — Prometheus counters for L0/L1/format-loss/retry sepehr 2026-07-14 16:53:16 +02:00
  • 13d2f83081 feat(format): B2 — PPTX placeholder filter, SmartArt diagrams, chart XPath matching sepehr 2026-07-14 16:50:06 +02:00
  • 4d466699fd feat(quality): A3 — L1 LLM judge via API (5 chunks, 0.0003 USD/job) sepehr 2026-07-14 16:39:47 +02:00
  • 5ae1587428 feat(format): B1 — Word/Excel quick wins for format preservation sepehr 2026-07-14 16:28:17 +02:00
  • f403b2851d feat(quality): add L0 quality layer (Track A1 + A2 of dev plan) sepehr 2026-07-14 16:17:43 +02:00
  • ebb2537fda feat(glossaries): implement a 3-step wizard for CSV/file imports with custom source/target language selection sepehr 2026-06-28 11:38:18 +02:00
  • 36aeac2c5e fix(glossaries): prevent translation data destruction on language selector change for multi glossaries sepehr 2026-06-28 11:03:31 +02:00
  • de9407f974 revert(docker): remove automated database glossary translation from startup sequence sepehr 2026-06-28 10:55:19 +02:00
  • 5e3fb0098b feat(docker): run glossary translation script automatically on backend container startup sepehr 2026-06-28 10:53:58 +02:00
  • a57b8a8e4d fix(glossaries): normalize language code casing when retrieving display translations sepehr 2026-06-28 10:52:08 +02:00
  • dde80f6bc3 feat(glossaries): update script to translate missing terms in any glossary, even if target_language is already 'multi' sepehr 2026-06-28 10:46:48 +02:00
  • 7398cae359 feat(glossaries): add script to translate non-multilingual database glossaries using Google Translate adapter sepehr 2026-06-28 10:42:41 +02:00
  • 030950c962 feat(glossaries): option C - page management + wizard /new 2-step creation sepehr 2026-06-28 09:55:14 +02:00
  • 5d6afd2dad fix(contrast): replace all opacity-based colors with concrete hex values meeting WCAG 4.5:1 ratio sepehr 2026-06-21 10:54:17 +02:00
  • 07c50151cb fix(contrast): increase text contrast on glossary page for light mode readability sepehr 2026-06-20 19:39:33 +02:00
  • 299173fff7 ux(glossary): clarify selection flow - compact banner, Utiliser button, hide create section by default sepehr 2026-06-20 19:18:46 +02:00
  • 9b354befe3 fix(glossary): hide create section by default when glossaries exist - only shown on demand via toggle button sepehr 2026-06-20 19:07:30 +02:00
  • 4a8f33d36f fix(glossary): eliminate all redundant elements - filter imported templates, remove duplicate buttons and links sepehr 2026-06-20 19:03:44 +02:00
  • 489df66c0f fix(i18n): add missing translation keys for tabs and presets sepehr 2026-06-20 19:01:09 +02:00
  • 96bac2e792 style(glossary): remove redundant buttons and links, filter already imported presets sepehr 2026-06-20 18:46:38 +02:00
  • d78f08e24f feat(glossary): restructure page with tabs, direct translate redirects and dynamic mapping sepehr 2026-06-20 18:43:02 +02:00
  • c17dd2c6e1 fix(glossary): resolve data loss for non-FR/EN languages, fix prompt injection reference notes, and classic mode label wording sepehr 2026-06-20 18:09:13 +02:00
  • 1fe714aa1a ux(glossaries): simplify dialog, auto-save detail import, show templates and upload zone directly on main page sepehr 2026-06-20 12:27:07 +02:00
  • d505b479cd refactor(glossaries): align CreateGlossaryDialog with editorial design system sepehr 2026-06-20 09:15:54 +02:00
  • 81cb4e09b7 fix(tests): update PDF format test to use truly unsupported format (.txt) sepehr 2026-06-14 19:50:44 +02:00
  • a20ebe2295 fix(tests): update glossary service tests for dict return type sepehr 2026-06-14 19:49:21 +02:00
  • 233a054e34 fix(tests): isolate test DB and sync tier=pro in Pro user fixtures sepehr 2026-06-14 19:44:25 +02:00
  • f85e5eef9b fix(tests): escape Windows paths in cleanup Redis mock sepehr 2026-06-14 19:34:01 +02:00
  • b9446f166d fix(translate): French error messages and update mock users for quota checks sepehr 2026-06-14 19:20:44 +02:00
  • adc3583358 fix(db): make migrations and glossary index SQLite-compatible sepehr 2026-06-14 19:01:07 +02:00
  • cb8ce697d2 fix(translate): enforce Pro feature gating for glossary, custom_prompt and prompt_id sepehr 2026-06-14 18:40:45 +02:00
  • f05399aeba fix(i18n): return French error messages in auth, register, download endpoints sepehr 2026-06-14 18:13:41 +02:00
  • 45e44dd7b2 fix(billing): unify quota counters, fix Stripe webhooks, tier/plan sync sepehr 2026-06-14 17:39:34 +02:00
  • fa637abff0 perf+security: fix build, secure downloads, dedupe translations, refactor i18n sepehr 2026-06-14 16:44:18 +02:00
  • eda6821632 i18n: fix missing keys and translate all non-admin frontend strings sepehr 2026-06-14 12:45:12 +02:00
  • 9b0b2ae6f9 docs: remove remaining Claude 3.5 references and display page credit costs in translation provider selector sepehr 2026-06-14 11:41:47 +02:00
  • c7506e6aca fix: resolve critical security and UI session mismatch by clearing React Query cache on login/logout and invalidating on subscription updates sepehr 2026-06-14 11:15:09 +02:00
  • 136d40c7d8 feat: update to June 2026 models (Claude Sonnet 4.6, Gemini 3.5 Flash), add glossary button, and implement cost factor quota & vision fallback sepehr 2026-06-14 11:05:53 +02:00
  • 5fd087979b feat: unify multimodels translation providers, remove self-hosting (Ollama/LibreTranslate), and fix local SQLite configuration sepehr 2026-06-14 10:44:46 +02:00
  • feea02033b fix: resolve Google login hydration mismatch and dynamic env load sepehr 2026-06-07 12:21:06 +02:00
  • 5b8c29dae6 feat: enable passing NEXT_PUBLIC_GOOGLE_CLIENT_ID at docker compose build time sepehr 2026-06-07 11:41:04 +02:00
  • 29753881a6 feat: add Telegram notifications for user signup and Stripe events sepehr 2026-06-07 11:37:01 +02:00
  • 8659b6761f docs: update README.md to act as central documentation portal with French links sepehr 2026-06-07 11:21:06 +02:00
  • fa19f33ab0 docs: add French restore procedure guide PROCEDURE_RESTAURATION.md sepehr 2026-06-07 11:20:04 +02:00
  • 9bb02927c3 fix: redirect logs to stderr and reduce size thresholds in backup/verify scripts sepehr 2026-06-07 11:16:45 +02:00
  • ddf6b8f6bc fix: ignore unbound variables when sourcing .env in all backup/DR scripts sepehr 2026-06-07 11:14:04 +02:00
  • 3f980ad537 feat: add NAS backup, verification, and DR scripts sepehr 2026-06-07 11:12:01 +02:00
  • fb6740f333 fix(glossaries): correct source/target display mapping (FR=source, EN=target, others=translations[lang]) Sepehr 2026-06-07 10:59:57 +02:00
  • 79848230c0 fix(glossaries): restore selectable source language (data was already there) Sepehr 2026-06-07 10:11:19 +02:00
  • e11a6b16a0 fix(glossaries): source language combobox was a lie — replace with fixed FR label Sepehr 2026-06-07 09:58:16 +02:00
  • 80b49ee354 Robustness: Implement multi-destination backups (LOCAL, NAS, SCP) and backup/restore of NPM configurations sepehr 2026-06-07 09:50:51 +02:00
  • c7299228cd Robustness: Add fallback path handling in disaster-recovery.sh for NAS offline cases sepehr 2026-06-07 09:48:13 +02:00
  • 02a4a7ded8 fix(glossaries): sync data files name/description with index.json (→ Multilingue) Sepehr 2026-06-07 09:42:47 +02:00
  • 670d3f4376 Documentation: Add French Disaster Recovery Playbook for server failovers sepehr 2026-06-07 09:39:26 +02:00
  • e497f2d218 refactor(glossaries): single source of truth + dedicated detail page Sepehr 2026-06-07 09:38:19 +02:00
  • 23373ab91a Robustness: Update backup-database.sh with robust python resolution and cross-platform path handling sepehr 2026-06-07 09:29:19 +02:00
  • 9104f6123d Security: Enforce strict CORS domain restriction in production environment sepehr 2026-06-07 09:26:45 +02:00
  • e7b5ea9a61 Robustness: Add json-file log rotation limits to all docker services sepehr 2026-06-07 09:26:39 +02:00
  • 8805044bb6 Security: Untrack SSL private keys and certificates and add to .gitignore sepehr 2026-06-07 09:24:10 +02:00
  • 1d883c3c69 feat(glossaries): add migrate_glossaries_to_multilingual.py Sepehr 2026-06-03 21:56:01 +02:00
  • 8f55e3d9aa fix(glossaries): dedup by (user_id, name) instead of (user_id, template_id) Sepehr 2026-06-03 21:48:53 +02:00
  • cd32a42b1a feat(glossaries): add backup + delete scripts and Gitea workflow for duplicate cleanup Sepehr 2026-06-03 21:21:11 +02:00
  • e1f9f3db04 feat: add Alembic migration for template_id column on glossaries sepehr 2026-06-01 23:44:04 +02:00
  • 818eac5490 feat: prevent duplicate glossary presets + fix i18n source warning bug sepehr 2026-06-01 23:39:53 +02:00
  • ce53f0df16 fix(admin): resolve hydration layout crash by removing layout-level return null and using mount-conditional text sepehr 2026-06-01 23:24:03 +02:00
  • 6da8a85b1d fix(admin): secure routes, add real IP detection, SMTP header validation, and fix Next.js layout hydration mismatch sepehr 2026-06-01 23:16:03 +02:00
  • 6d27dc4cda feat(i18n): Phase 1 — migrate 5 critical files from hardcoded text to i18n sepehr 2026-06-01 00:28:24 +02:00
  • c82e70681f fix: edit dialog remaps terms when target language changes sepehr 2026-06-01 00:08:27 +02:00
  • 0efdf6a3f4 feat: add source/target language selectors to edit glossary dialog sepehr 2026-06-01 00:03:22 +02:00
  • 8fa1ab9ceb fix: delete all old FR→EN glossaries and deduplicate multilingual ones sepehr 2026-05-31 23:56:18 +02:00
  • 9ab166c31e fix: glossaries page support for multilingual (target_language='multi') sepehr 2026-05-31 23:48:48 +02:00