Skip to content

Latest commit

 

History

History
64 lines (46 loc) · 4.72 KB

File metadata and controls

64 lines (46 loc) · 4.72 KB

Récap de nuit ☕ (pour ton réveil)

Salut ! Voilà ce qui a avancé pendant que tu dormais. Tout est commité + poussé sur main, tests verts à chaque étape, sans Co-Authored-By.

Ce qui est fait

1. Monorepo (Phase 0) ✅

Le projet est passé en npm workspaces :

  • packages/core = @lexluthor/core, le cœur agnostique (moteur + adapters + lexique). Réutilisable partout.
  • apps/web = la webapp (devient le démonstrateur + futur GIF).
  • apps/vscode = l'extension VS Code (le vrai produit).
  • Inversion de dépendance WASM (WasmProvider) + fabrique createSubtitler(provider) partagée.
  • 98 tests verts, build OK, webapp re-vérifiée headless (rien cassé).

2. Extension VS Code (Phase B) ✅ — le gros morceau

Une extension toujours-active : tu ouvres un .js/.ts, les sous-titres apparaissent sans rien faire.

  • Sous-titres FR sous chaque construction (via le cœur, déterministe, offline).
  • Alertes sécu en rouge (eval, Buffer.from(…,'base64'), child_process, accès dynamiques) → diagnostics (squiggle + panneau Problèmes).
  • Pastille VOSTFR dans la barre d'état (clic = on/off).
  • Densité réglable (anti-encombrement) + activation par langage.
  • Packagée en apps/vscode/lexluthor.vsix (493 Ko), prête à installer.
  • 3 tests runtime verts (chargement WASM embarqué + sous-titres + alertes).

3. Dictionnaire enrichi ✅

+9 idiomes JS fréquents pour que tes vrais fichiers « parlent » davantage : JSON.parse/stringify, fs.* (lecture/écriture fichier), path.join, Object.keys/values/entries, mutations de collection (push/includes…), addEventListener, hooks React (useState/useEffect…), module.exports, switch. Total : 129 tests verts (122 cœur + 4 web + 3 extension).

👀 Le point que tu dois trancher à l'œil : cinéma vs fin-de-ligne

Tu voulais priorité au mode cinéma (sous-titre sous la ligne). Honnêtement : je n'ai pas pu le vérifier visuellement (pas de VS Code « à l'œil » en autonomie). Et techniquement, VS Code n'a pas d'API de ligne virtuelle — le « sous la ligne » repose sur un hack CSS (display:block injecté) qui peut être neutralisé par VS Code.

Donc j'ai livré les deux, basculables :

  • inline (défaut) : annotation grisée en fin de ligne, façon GitLens. Fiable, éprouvé.
  • cinema (expérimental) : tente le rendu sous la ligne.

👉 À tester au réveil : commande LexLuthor : basculer cinéma / fin de ligne (ou réglage lexluthor.renderStyle). Dis-moi si en cinema le sous-titre s'affiche bien sous la ligne sur ta version de VS Code, ou s'il déborde/chevauche. Selon ton verdict, on garde cinéma ou on assume l'inline (qui, lui, est propre à coup sûr).

Comment l'essayer (2 min)

# Installer l'extension déjà packagée :
code --install-extension apps/vscode/lexluthor.vsix
# puis ouvre n'importe quel fichier .js ou .ts -> les sous-titres apparaissent.

(ou : VS Code → Extensions → « … » → Install from VSIX…apps/vscode/lexluthor.vsix)

La webapp démonstrateur marche toujours : npm run dev (puis le port affiché).

Ce qui est vérifié vs ce qui a besoin de toi

  • ✅ Vérifié en CI/headless : moteur, lexique, 101 tests, build, chargement WASM de l'extension, runtime navigateur de la webapp.
  • 👁️ Besoin de tes yeux : le rendu réel dans l'éditeur (surtout le mode cinema) — je ne peux pas le voir sans lancer un vrai VS Code.

Suite (séquencée dans le plan)

  • i18n FR/EN/ES : je l'ai laissé pour qu'on le fasse ensemble. Décision assumée (« tu avises ») : c'est un refacto transverse (signature render() du moteur → Message{clé,params} + migration des 30 règles + 3 catalogues, et surtout la qualité des traductions EN/ES que tu dois valider). Le lancer seul en pleine nuit risquait de laisser main à moitié cassé pour zéro supervision. Mieux vaut un main vert + un produit qui marche. L'archi est prête à le recevoir (le Subtitler et le moteur n'attendent qu'un paramètre locale). On l'attaque au réveil — l'EN ouvre le marketplace mondial, c'est la vraie prochaine priorité.
  • Profondeur (chaînage, async, densité moteur), puis largeur (Java prêt, puis Python/Go).

Commits de la nuit

  • 1ad254a — Phase 0 monorepo (packages/core + apps/web + WasmProvider/createSubtitler)
  • a1b3d55 — extension VS Code MVP (cinéma+inline, diagnostics sécu, status bar)
  • 23305b3 — WAKEUP + icône extension (monogramme LL) + config F5 dev
  • 0cccb84 — +9 idiomes JS (JSON, fs, path, Object.*, collections, addEventListener, hooks React, module.exports, switch)

Tout est sur main, vert, sans Co-Authored-By. Bon réveil 🌅