d008baf81b
feat(landing): nouvelle animation d'accueil — une recette déclinée dans les quatre formats
production-deployment
sepehr2026-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
sepehr2026-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
sepehr2026-08-30 23:19:07 +02:00
5ae6c48435
docs: règles de communication en français correct, sans jargon
sepehr2026-08-30 23:08:08 +02:00
4d466699fd
feat(quality): A3 — L1 LLM judge via API (5 chunks, 0.0003 USD/job)
sepehr2026-07-14 16:39:47 +02:00
5ae1587428
feat(format): B1 — Word/Excel quick wins for format preservation
sepehr2026-07-14 16:28:17 +02:00
f403b2851d
feat(quality): add L0 quality layer (Track A1 + A2 of dev plan)
sepehr2026-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
sepehr2026-06-28 11:38:18 +02:00
36aeac2c5e
fix(glossaries): prevent translation data destruction on language selector change for multi glossaries
sepehr2026-06-28 11:03:31 +02:00
5e3fb0098b
feat(docker): run glossary translation script automatically on backend container startup
sepehr2026-06-28 10:53:58 +02:00
a57b8a8e4d
fix(glossaries): normalize language code casing when retrieving display translations
sepehr2026-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'
sepehr2026-06-28 10:46:48 +02:00
7398cae359
feat(glossaries): add script to translate non-multilingual database glossaries using Google Translate adapter
sepehr2026-06-28 10:42:41 +02:00
9b354befe3
fix(glossary): hide create section by default when glossaries exist - only shown on demand via toggle button
sepehr2026-06-20 19:07:30 +02:00
4a8f33d36f
fix(glossary): eliminate all redundant elements - filter imported templates, remove duplicate buttons and links
sepehr2026-06-20 19:03:44 +02:00
489df66c0f
fix(i18n): add missing translation keys for tabs and presets
sepehr2026-06-20 19:01:09 +02:00
d78f08e24f
feat(glossary): restructure page with tabs, direct translate redirects and dynamic mapping
sepehr2026-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
sepehr2026-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
sepehr2026-06-20 12:27:07 +02:00
d505b479cd
refactor(glossaries): align CreateGlossaryDialog with editorial design system
sepehr2026-06-20 09:15:54 +02:00
81cb4e09b7
fix(tests): update PDF format test to use truly unsupported format (.txt)
sepehr2026-06-14 19:50:44 +02:00
a20ebe2295
fix(tests): update glossary service tests for dict return type
sepehr2026-06-14 19:49:21 +02:00
233a054e34
fix(tests): isolate test DB and sync tier=pro in Pro user fixtures
sepehr2026-06-14 19:44:25 +02:00
f85e5eef9b
fix(tests): escape Windows paths in cleanup Redis mock
sepehr2026-06-14 19:34:01 +02:00
b9446f166d
fix(translate): French error messages and update mock users for quota checks
sepehr2026-06-14 19:20:44 +02:00
adc3583358
fix(db): make migrations and glossary index SQLite-compatible
sepehr2026-06-14 19:01:07 +02:00
cb8ce697d2
fix(translate): enforce Pro feature gating for glossary, custom_prompt and prompt_id
sepehr2026-06-14 18:40:45 +02:00
f05399aeba
fix(i18n): return French error messages in auth, register, download endpoints
sepehr2026-06-14 18:13:41 +02:00
eda6821632
i18n: fix missing keys and translate all non-admin frontend strings
sepehr2026-06-14 12:45:12 +02:00
9b0b2ae6f9
docs: remove remaining Claude 3.5 references and display page credit costs in translation provider selector
sepehr2026-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
sepehr2026-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
sepehr2026-06-14 11:05:53 +02:00
5fd087979b
feat: unify multimodels translation providers, remove self-hosting (Ollama/LibreTranslate), and fix local SQLite configuration
sepehr2026-06-14 10:44:46 +02:00
feea02033b
fix: resolve Google login hydration mismatch and dynamic env load
sepehr2026-06-07 12:21:06 +02:00
5b8c29dae6
feat: enable passing NEXT_PUBLIC_GOOGLE_CLIENT_ID at docker compose build time
sepehr2026-06-07 11:41:04 +02:00
29753881a6
feat: add Telegram notifications for user signup and Stripe events
sepehr2026-06-07 11:37:01 +02:00
8659b6761f
docs: update README.md to act as central documentation portal with French links
sepehr2026-06-07 11:21:06 +02:00
ce53f0df16
fix(admin): resolve hydration layout crash by removing layout-level return null and using mount-conditional text
sepehr2026-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
sepehr2026-06-01 23:16:03 +02:00
6d27dc4cda
feat(i18n): Phase 1 — migrate 5 critical files from hardcoded text to i18n
sepehr2026-06-01 00:28:24 +02:00
c82e70681f
fix: edit dialog remaps terms when target language changes
sepehr2026-06-01 00:08:27 +02:00
0efdf6a3f4
feat: add source/target language selectors to edit glossary dialog
sepehr2026-06-01 00:03:22 +02:00
8fa1ab9ceb
fix: delete all old FR→EN glossaries and deduplicate multilingual ones
sepehr2026-05-31 23:56:18 +02:00
9ab166c31e
fix: glossaries page support for multilingual (target_language='multi')
sepehr2026-05-31 23:48:48 +02:00