Mises à jour
Nouveautés
Historique des versions et des fonctionnalités de 3amia · AI.
v1.5.1 — Mai 2026
- ·fix(scan-ocr): Dédoublonnage intra-session dans
scan_ocr_pipeline.pyv2.1- ·CAS 1 : mots extraits plusieurs fois depuis la même image avec même
word_ar→ fusion destranslation_fr(union sans doublons), exemple du plus confiant, warningfusionné depuis N occurrences - ·CAS 2 : variantes orthographiques (ex :
مْحَلَّبvsمْحَلَبْ, même forme normalisée sans diacritiques) → garder l'entrée la plus confiante ; les autres insérées avecstatus='duplicate_intra_session'etduplicate_of_table='intra_session' - ·Migration SQL : ajout de
'duplicate_intra_session'dans le CHECK constraint destaging_scan_words - ·Résumé enrichi : compteurs
🔀 Fusions intraet⚡ Variantesdans le log de fin de session - ·
SCAN_OCR_README.md: section "Gestion des doublons — 3 niveaux" ajoutée, tableau des statuts mis à jour
- ·CAS 1 : mots extraits plusieurs fois depuis la même image avec même
v1.5.0 — Avril 2026
- ·feat(scan-ocr): Pipeline OCR captures de dictionnaires arabes → staging
- ·Table SQL
staging_scan_words(isolée, 7 statuts, 4 index) - ·
scripts/scan_ocr_pipeline.py: 2 passes Gemini (Vision extraction + Text normalisation Maghreb chiffré), anti-doublon strict,--resume,--dry-run, CSV de sortie - ·
scripts/SCAN_OCR_README.md: documentation complète - ·
src/app/admin/scan/page.tsx: revue staging — stats, filtres folder/dialect/status, cartes éditables inline, confidence badge, import → contributions - ·API
GET /api/admin/scan/list: liste paginée + stats agrégées - ·API
PATCH/DELETE /api/admin/scan/[id]: édition inline + rejet - ·API
POST /api/admin/scan/[id]/import: staging → contributions (source='api', contributed_by='scan_ocr_{folder}') - ·Onglet "🔍 Scan OCR" dans
/admin→ lien vers/admin/scan - ·Dialecte LY (Libyen) utilisable directement (pas de contrainte CHECK sur
dialect_forms.dialect) - ·
.gitignore:scan_report.csv,translit_violations.csv,__pycache__/
- ·Table SQL
v1.4.5 — Avril 2026
- ·fix(search-bar):
onMouseDown={(e) => e.preventDefault()}sur les boutons suggestion — corrige la race condition onBlur/onClick qui empêchait le clic de firer ; timeout onBlur 150→250ms par sécurité - ·fix(api/search): HTTP 500 sur query contenant une virgule — la virgule était interprétée comme séparateur de conditions dans la syntaxe
.or()de PostgREST ; remplacé par des appels.ilike()parallèles danssearchDecl(),searchDf()(branche arabe) etsearchMsa()(branche arabe) - ·fix(api/search): le catch global retourne désormais HTTP 200
{ suggestions:[], words:[], total:0, error:'search_failed' }au lieu de 500
v1.4.3 — Avril 2026
- ·feat(search): Recherche floue bidirectionnelle Maghreb chiffré ↔ latin standard
- ·Fonction SQL IMMUTABLE
public.normalize_search(text): 7/8→h, 9→q, 5→kh, 3→a, 2→'', aa→a, ou→o, ii→i, Dh→d - ·Index GIN trigram expression sur
dialect_forms.form_latinetwords.word_latin - ·4 RPCs :
search_df_fuzzy,count_df_fuzzy,search_words_fuzzy,count_words_fuzzy - ·
db.ts:searchDf()etsearchMsa()utilisent les RPCs pour les queries latines ; ILIKE direct conservé pour l'arabe et le français - ·
SearchBar.tsx: hint Maghreb chiffré (affiché une seule fois par session si query latin sans chiffres) - ·
scripts/test_search.py: smoke test 7 cas (normalize_search local + RPC live) - ·
npm run test:searchajouté dans package.json
- ·Fonction SQL IMMUTABLE
v1.4.2 — Avril 2026
- ·fix(search): SearchBar utilise
word.slugcomme source de vérité pour les liens suggestions (jamaistransliterationniform_latin) — fix bug clic résultat → mauvaise URL post-migration Maghreb - ·Logique Enter/ArrowUp/ArrowDown refactorisée : mutuellement exclusifs, plus de double-submit
- ·feat(guardrail):
check_translit.pycouvre désormais 4 sections : words, form_latin, variants JSONB, synonyms JSONB (champ transliteration uniquement — les slugs synonymes sont exclus) - ·CLAUDE.md : note explicite slugs ≠ form_latin + règle frontend
v1.4.1 — Avril 2026
- ·Guardrail translittération Maghreb chiffré — 0 régression possible sur les nouveaux inserts
- ·
scripts/maghreb_translit.py: module partagénormalize_translit(text, form_ar)+is_conforming() - ·
scripts/check_translit.py: vérification continue (exit 0 si propre, exit 1 + liste si violations) - ·
src/lib/transliteration.ts: ء → '2' (hamza dialectale) ; ة → 'a' déjà conforme - ·
src/lib/translit.test.ts: +14 castranslateToLatin()couvrant ح/ه/ق/ص/ط/ض/ظ/ة/ء/shadda - ·
src/app/api/enrich-word/route.ts: bloc TRANSLITTÉRATION MAGHREB CHIFFRÉ dans prompts Gemini + Groq - ·
src/app/api/submit/route.ts: guard regex/[āīūṣḥṭḍẓĀĪŪṢḤṬḌẒʿʾ'qQ]/→ 400 si non-conforme - ·
src/app/api/admin/publish/route.ts: idem avant INSERT dialect_forms - ·
scripts/gemini_generate_msa.py: import normalize_translit + fix lowercasing form_latin (préserve S/D/T/Dh) - ·
scripts/gemini_enrich_batch.py: PROMPT_TEMPLATE + Groq system enrichis avec la table Maghreb complète - ·
npm run check:translit+npm run test:translitajoutés dans package.json
v1.4.0 — Avril 2026
- ·Enrichissement IA via Gemini à la saisie des contributions (
/ajouter) - ·Nouveau branding 3amia · AI — hero deux colonnes, calligraphie عامية
- ·Système d'articles avec séries/parties (SerieNav, db enrichi, admin form)
- ·Script batch enrichissement Gemini (
scripts/gemini_enrich_batch.py) - ·Versioning visible dans le footer
v1.3.0 — Mars 2026
- ·Back-office admin complet (contributions, mots publiés, historique)
- ·Notifications Telegram (webhook + import de mots + /stats)
- ·Système de synonymes inter-dialectes (concept_id, table concepts)
- ·Icônes SVG custom (IconSensArtistique, IconPoesie, IconLanguesVivantes…)
- ·Bot Telegram import de mots multi-lignes
v1.2.0 — Mars 2026
- ·Formulaire contribution refonte (pays → région, translittération auto)
- ·Détection doublons temps réel
- ·Déclinaisons morphologiques (table declensions, DeclinaisonsSection)
- ·Enrichissement CamelTools (
scripts/enrich_cameltools.py) - ·Type grammatical pos_type (7 valeurs : ism/fi3l/sifa…)
v1.1.0 — Mars 2026
- ·Migration Google Sheets → Supabase (1 434 mots MSA + 1 771 formes dialectales)
- ·Back-office /admin v1 (authentification Bearer, modération contributions)
- ·SEO generateMetadata sur toutes les pages
- ·Page /a-propos avec stats live Supabase (ISR 1h)
- ·Audit log (table audit_log, logAction helper)
v1.0.0 — Mars 2026
- ·Lancement initial du dictionnaire
- ·3 000+ mots dialectaux (TN, MA, DZ, EG, LB, SY…)
- ·Recherche multilingue (arabe, français, translittération)
- ·Guide phonétique
- ·Formulaire contribution visiteur