This website requires JavaScript.
e9ac30ed1d
style: use same serif/typography font styles on profile page as translate page
sepehr
2026-05-31 23:33:32 +02:00
32d75f8a84
fix: delete stale FR→EN glossaries + convert all remaining to multilingual
sepehr
2026-05-31 23:31:24 +02:00
744a97f58d
fix: import datetime in email_service.py to fix NameError, add Stripe emails unit tests
sepehr
2026-05-31 23:25:20 +02:00
b4096fd2ca
fix: show target-language-specific translations in preview + rename migration
sepehr
2026-05-31 23:22:50 +02:00
a79ce0fc9b
fix: comprehensive glossary system audit — 6 critical fixes
sepehr
2026-05-31 23:14:41 +02:00
2386e94c6d
fix: page /checkout/success qui auto-sync le plan apres paiement Stripe (success_url corrige)
sepehr
2026-05-31 23:05:01 +02:00
ebfa784b0a
fix: also rename multilingual glossaries from 'Anglais' to 'Multilingue' in migration
sepehr
2026-05-31 22:48:29 +02:00
ab296ea259
fix: Stripe billing portal auto-config programmatique, separation changer-forfait vs gerer-facturation
sepehr
2026-05-31 22:45:45 +02:00
00c54997bf
fix: sync plan+tier after checkout, portal same-tab nav, cancel button always visible for paid plans, portal return URL to profile tab
sepehr
2026-05-31 22:37:51 +02:00
277589aea3
fix: resolve alembic migration cycle — unique revision ID, correct chain
sepehr
2026-05-31 22:36:26 +02:00
c66252bed4
feat: mark glossary templates as multilingual — support 11 target languages
sepehr
2026-05-31 22:32:27 +02:00
ad8ac089a4
fix: don't auto-select glossary when no target language match
sepehr
2026-05-31 22:22:05 +02:00
67b41b2c24
chore: re-trigger deploy after password fix
sepehr
2026-05-31 22:12:54 +02:00
5122bfdf99
fix: glossary selection respects target language — sort by source+target, reset on lang change, fix template import
sepehr
2026-05-31 22:00:40 +02:00
89c31f8298
fix: safe JSON parse in checkout handlers, show proper error on 500
sepehr
2026-05-31 21:59:18 +02:00
fbe39d81e1
fix: align landing page prices with backend, pass billing mode in URL to /pricing
sepehr
2026-05-31 21:54:15 +02:00
b067be2ff7
fix: deploy.sh auto-selects compose file, docker-compose.yml uses correct Stripe var names
sepehr
2026-05-31 21:51:38 +02:00
c7c1fd8436
fix: deploy.sh migrate works without .env.docker on production
sepehr
2026-05-31 21:45:55 +02:00
374c605027
feat: Stripe integration complete - products created, DB migration, payment_failed handler, credit buttons wired
sepehr
2026-05-31 21:40:31 +02:00
3a9de12f26
fix: glossary cards UX - boutons clairs, badge compatible/incompatible, alerte cible dans sidebar
sepehr
2026-05-31 13:46:13 +02:00
d657b65adb
fix: FORMAT NATIF hors cadre, apercu glossaire toujours FR/IR, prompt juridique par defaut
sepehr
2026-05-31 13:29:12 +02:00
85cd5456f8
feat(glossaries): add target_language support - DB migration, API, and UI language pair display
sepehr
2026-05-31 13:25:12 +02:00
fecb3f7abb
ux(glossaries): add how-it-works guide, status badges and activation hints
sepehr
2026-05-31 13:02:19 +02:00
6d800b1077
design(frontend): align glossaries page typography with translation page editorial style
sepehr
2026-05-31 11:36:55 +02:00
f33da82c29
fix(frontend): improve glossary selector responsiveness and add contextual warning logic
sepehr
2026-05-31 11:24:52 +02:00
58d9d8a74c
fix(frontend): increase translation config legibility and integrate templates in glossary selector
sepehr
2026-05-31 11:18:57 +02:00
3f635e809e
feat(translate): implement intelligent language filtering and creation links for glossaries
sepehr
2026-05-31 11:09:56 +02:00
8ab45f1b6e
style(translate): make LLM cards compact in a 3-column grid, remove glossary language filtering, and add contextual help under engine selection
sepehr
2026-05-31 11:05:34 +02:00
cd8a57324d
style(translate): redesign glossary and translate images card layout to match mockup compact styling
sepehr
2026-05-31 10:58:22 +02:00
a5b18b5a24
fix(pdf): add support for translate_images to PDFTranslator to fix API mismatch
sepehr
2026-05-31 10:36:30 +02:00
78eca6d453
feat(translate): refonte complete du composant GlossarySelector (Etape 4)
sepehr
2026-05-31 10:33:57 +02:00
a0de00a4e7
fix(translate): ajout des cles de traduction manquantes et re-positionnement intelligent du bouton de traduction
sepehr
2026-05-31 10:28:12 +02:00
c1ea65f10f
feat(translate): refonte du design de la page de traduction et du sélecteur de moteurs (Etapes 1-3)
sepehr
2026-05-31 10:14:23 +02:00
9532fef2cd
fix: remove DeepSeek/MiniMax branding, fix glossary visibility, improve translate page UX
sepehr
2026-05-31 08:24:33 +02:00
b472dcd4b7
style: apply Inter + Playfair Display fonts matching reference landing page
sepehr
2026-05-30 13:45:44 +02:00
03cf4cd276
fix: show current language flag instead of next language in landing page button
sepehr
2026-05-30 13:36:58 +02:00
4b52f4d9df
fix: fallback to free Google Translate when Cloud API key is invalid/blocked
sepehr
2026-05-20 00:02:29 +02:00
bacbf6cce8
fix: compact glossary dropdown, sticky translate button, and mode badge
sepehr
2026-05-19 21:41:16 +02:00
f1dc4c0b0b
fix: remove garbage esenaw api key
sepehr
2026-05-17 20:28:52 +02:00
e41dca6fe3
fix: cache headers and frontend pro tier resolution
sepehr
2026-05-17 20:06:26 +02:00
590d4347f7
fix: ignore stale pro features (glossary/prompt) from frontend localstorage for free users instead of blocking translations
sepehr
2026-05-17 19:09:00 +02:00
10c9a14487
fix: ignore string literals 'null' and 'undefined' from frontend form data for optional fields
sepehr
2026-05-17 18:52:44 +02:00
6a6b510e56
fix: remaining multiline logger job_id errors and prevent grafana removal during deploy
sepehr
2026-05-17 18:32:32 +02:00
3a901548a0
fix: logger keyword argument error with job_id in translate routes
sepehr
2026-05-17 18:30:37 +02:00
f6818924b1
fix: resolve alembic multiple head revisions by fixing migration tree
sepehr
2026-05-17 18:02:02 +02:00
4ec39a42a8
fix: prevent docker compose from consuming stdin in ssh deploy script
sepehr
2026-05-17 17:31:19 +02:00
63aeb5978d
fix: disable silent google cloud fallback to expose true provider errors
sepehr
2026-05-17 17:25:00 +02:00
b50419e2ec
fix: integrate deepseek, resolve silent google api errors, fix google cloud keys
sepehr
2026-05-17 17:11:06 +02:00
669cf7fde8
fix(ui): critical translation workflow improvements
sepehr
2026-05-17 16:54:59 +02:00
3e41bee470
fix: remove Ollama from all default fallback chains - cloud-only defaults
sepehr
2026-05-17 16:43:17 +02:00
087341b045
fix: Google Cloud API translation key environment and fallback logic
sepehr
2026-05-17 16:13:05 +02:00
c0f93501cc
fix: use Google Cloud API key for classic mode + translation verification
sepehr
2026-05-17 12:09:26 +02:00
6c0ecded47
fix: automatic DB migration — run before backend starts
sepehr
2026-05-17 11:03:42 +02:00
413f610f1a
feat: production CI/CD with DB backup and auto-rollback
sepehr
2026-05-17 10:02:36 +02:00
392418c3f9
fix: run alembic migration in one-shot container before backend start
sepehr
2026-05-17 09:59:20 +02:00
f409ccc647
fix: force --no-cache on docker build to pick up all dependency changes
sepehr
2026-05-17 01:38:07 +02:00
ee65428fa8
fix: make alembic migration mandatory — fail deploy if migration fails
sepehr
2026-05-17 01:32:35 +02:00
3069cf5928
fix: add explicit alembic migration step to CI pipeline
sepehr
2026-05-17 01:28:55 +02:00
7f8a08af7b
fix: add source_language to glossary import + expose error details
sepehr
2026-05-17 01:24:11 +02:00
3eb418e7ec
fix: send template_id as query param (not JSON body) for glossary import
sepehr
2026-05-17 01:14:54 +02:00
6ba39cc01b
fix: glossary selector — clear selected state, error feedback, click existing templates to select
sepehr
2026-05-17 01:11:18 +02:00
9843023c4c
fix: improve glossary selector click feedback — check icon, deselect X, visible selected state
sepehr
2026-05-17 01:04:20 +02:00
ca8abc560d
feat: multilingual glossary templates + inline GlossarySelector rewrite
sepehr
2026-05-17 00:52:24 +02:00
9be640c449
feat: merge Context page into Glossaries — single page for glossary + system prompt + presets
sepehr
2026-05-16 16:27:10 +02:00
50d5a8d22f
feat: multilingual glossary UI, translate selector, context fusion
sepehr
2026-05-16 15:54:04 +02:00
b2d918c832
feat: add multilingual glossary support (backend + frontend types)
sepehr
2026-05-16 15:25:28 +02:00
a76f7710e8
fix: move useState hook before conditional return in profile page
sepehr
2026-05-16 13:48:06 +02:00
5e7411c2d4
fix: remove shadcn deps from dashboard pages, restyle services & settings to editorial design
sepehr
2026-05-16 13:37:07 +02:00
3938adf10c
feat: rewrite all dashboard views with editorial design
sepehr
2026-05-16 12:54:29 +02:00
c2e9617045
fix: rename Office Translator to Wordly everywhere
sepehr
2026-05-16 12:18:36 +02:00
b2b6f03399
feat: complete editorial redesign of Wordly.art SaaS
sepehr
2026-05-16 12:03:49 +02:00
18e1aca148
fix: add cookieConsent and upgradeToPro translations for all 13 locales
sepehr
2026-05-15 20:31:29 +02:00
51d07c9ef8
fix: use project's useI18n hook instead of next-intl useTranslations
sepehr
2026-05-15 20:12:40 +02:00
7aa0c5a892
feat: add GDPR cookie consent banner and upgrade-to-Pro link
sepehr
2026-05-15 20:01:36 +02:00
0eccb531f4
fix: frontend missing networks section in docker-compose
sepehr
2026-05-15 18:59:13 +02:00
20e8565929
fix: merge monitoring into main docker-compose.yml
sepehr
2026-05-15 15:39:26 +02:00
a77b500e50
fix: merge monitoring deploy into single job
sepehr
2026-05-15 15:23:17 +02:00
4a992e2c90
fix: CONTENT_TYPE_LATEST typo caused backend crash on startup
sepehr
2026-05-15 15:12:09 +02:00
38b59ba48d
fix: rewrite deploy workflow to use SSH-based deployment
sepehr
2026-05-15 14:53:15 +02:00
26dfa08730
feat: add Prometheus metrics + fix CI/CD health check port
sepehr
2026-05-15 14:33:10 +02:00
a76442b382
feat: add Google Sign-In to login and register pages
sepehr
2026-05-10 19:47:08 +02:00
d2d0b2c53c
fix: expose frontend :3000 and backend :8000 ports
sepehr
2026-05-10 15:24:25 +02:00
05c5dfcbbb
fix: add frontend/src/lib/ to git (was ignored by /lib/ pattern)
sepehr
2026-05-10 15:17:22 +02:00
98d82414bb
feat: add Node.js setup wizard (replaces broken bash scripts)
sepehr
2026-05-10 13:29:28 +02:00
90efc7c0f8
fix: complete .env.production with all provider ENABLED flags
sepehr
2026-05-10 12:57:41 +02:00
7e97bbd07b
fix: scripts properly set ENABLED flags and all env vars for providers
sepehr
2026-05-10 12:52:06 +02:00
034d6bfce8
docs: rewrite deployment guide with Stripe and API keys management
sepehr
2026-05-10 12:36:47 +02:00
3c710c52a1
fix(ui): profile page bugs - billing button, cancel button, header subtitle
sepehr
2026-05-10 12:33:37 +02:00
e6e1678b1d
feat: add DeepSeek and Minimax (m2.7) translation providers
sepehr
2026-05-10 12:30:36 +02:00
d6d19eaf0c
feat: add API key management script
sepehr
2026-05-10 12:18:43 +02:00
3d01f53924
fix: setup wizard compatible sh/dash (read -s fallback)
sepehr
2026-05-10 12:16:27 +02:00
a9fe6c1fc6
feat: add interactive .env setup wizard
sepehr
2026-05-10 12:02:44 +02:00
f79a4303ac
ci: add Gitea Actions self-hosted deployment workflow
sepehr
2026-05-10 11:53:41 +02:00
ce8e150a61
feat: homelab deployment - NPM + IONOS DNS + monitoring + NAS backup
sepehr
2026-05-10 11:43:28 +02:00
16ac7ca2b9
fix(ui): profile page light mode color fixes
Sepehr Ramezani
2026-05-01 16:48:15 +02:00
1ed4aaaaa7
fix(ui): light mode visibility + sidebar layout
Sepehr Ramezani
2026-05-01 16:40:45 +02:00
2f7347b4db
feat: fix registration 500, add forgot-password flow, frontend validation
Sepehr Ramezani
2026-05-01 16:23:51 +02:00
26bd096a06
feat: production deployment - full update with providers, admin, glossaries, pricing, tests
Sepehr Ramezani
2026-04-25 15:01:47 +02:00
2ba4fedfc8
fix(security): path traversal sur /download et /cleanup, validation UUID session_id et chemin input_path dans reconstruct-document
Sepehr Ramezani
2026-03-07 11:44:17 +01:00
473b3e26c7
feat: revue de code, doc CODE_REVIEW, forfaits 2026, traduction LLM, providers avec modèle
Sepehr Ramezani
2026-03-07 11:42:58 +01:00