|
| 1 | +# Distill v0.8.0 - Release Notes |
| 2 | + |
| 3 | +## Vue d'ensemble |
| 4 | + |
| 5 | +Cette version majeure apporte des améliorations significatives sur trois axes principaux : **l'analyse de code AST**, **la sécurité et robustesse du SDK sandbox**, et **l'intelligence du résumé de logs**. Plus de 6 700 lignes de code ajoutées pour une expérience plus fiable et performante. |
| 6 | + |
| 7 | +--- |
| 8 | + |
| 9 | +## Parsing AST enrichi pour 6 langages |
| 10 | + |
| 11 | +### Nouvelles capacités d'extraction |
| 12 | + |
| 13 | +Le parsing de code est maintenant considérablement plus détaillé. Pour tous les langages supportés (TypeScript, Python, Go, Rust, PHP, Swift), l'extraction inclut désormais : |
| 14 | + |
| 15 | +- **Visibilité et modificateurs** : public/private/protected, static, abstract, final |
| 16 | +- **Génériques et paramètres de type** : support complet des types génériques avec contraintes |
| 17 | +- **Paramètres détaillés** : types, valeurs par défaut, paramètres optionnels, rest parameters |
| 18 | +- **Décorateurs et attributs** : extraction des annotations et métadonnées du code |
| 19 | +- **Enums** : nouveau type d'élément extrait (auparavant manquant) |
| 20 | + |
| 21 | +### Améliorations par langage |
| 22 | + |
| 23 | +**Rust** : Support des lifetimes, clauses `where`, fonctions `async/unsafe/const`, attributs `#[derive(...)]`, et ABI extern. |
| 24 | + |
| 25 | +**Swift** : Support de Swift 6+ avec actors distribués, `async/await`, `Sendable`, typed throws, `@MainActor`, et le nouveau niveau d'accès `package`. |
| 26 | + |
| 27 | +**Python** : Extraction améliorée des décorateurs, annotations de type, et classes avec héritage multiple. |
| 28 | + |
| 29 | +**Go** : Meilleure gestion des interfaces, méthodes de receiver, et types embarqués. |
| 30 | + |
| 31 | +**PHP** : Support des traits, interfaces, et namespaces amélioré. |
| 32 | + |
| 33 | +--- |
| 34 | + |
| 35 | +## SDK Sandbox renforcé |
| 36 | + |
| 37 | +### Gestion d'erreurs type-safe avec neverthrow |
| 38 | + |
| 39 | +Toutes les API du SDK retournent maintenant des types `Result<T, Error>` au lieu de lever des exceptions. Cela permet : |
| 40 | + |
| 41 | +- **Prévisibilité** : Impossible d'oublier de gérer une erreur - le compilateur vous rappelle à l'ordre |
| 42 | +- **Composition** : Chaînage d'opérations avec gestion d'erreurs intégrée |
| 43 | +- **Rétrocompatibilité** : Les anciennes API "legacy" qui lèvent des exceptions restent disponibles |
| 44 | + |
| 45 | +### Types marqués (Branded Types) |
| 46 | + |
| 47 | +Introduction de types marqués pour la sécurité à la compilation : |
| 48 | + |
| 49 | +- `ValidatedPath` : Chemin de fichier validé contre les traversées de répertoire |
| 50 | +- `SafePattern` : Pattern glob vérifié comme sûr |
| 51 | +- `SanitizedGitArg` : Argument git nettoyé contre l'injection de commandes |
| 52 | +- `SanitizedCode` : Code utilisateur ayant passé l'analyse de sécurité |
| 53 | + |
| 54 | +Ces types garantissent au niveau du compilateur TypeScript qu'une valeur a été validée avant utilisation. |
| 55 | + |
| 56 | +### Ressources avec nettoyage automatique (Disposables) |
| 57 | + |
| 58 | +Utilisation du nouveau pattern `using` de TypeScript 5.2+ pour la gestion automatique des ressources : |
| 59 | + |
| 60 | +- Les timers d'exécution sont automatiquement nettoyés |
| 61 | +- Les sandboxes libèrent leurs ressources même en cas d'erreur |
| 62 | +- Code plus propre et moins de fuites de ressources |
| 63 | + |
| 64 | +### Mode QuickJS (expérimental) |
| 65 | + |
| 66 | +Nouveau mode d'exécution optionnel utilisant WebAssembly pour une isolation complète : |
| 67 | + |
| 68 | +- Sandbox véritablement isolée du processus Node.js |
| 69 | +- Activable via `DISTILL_USE_QUICKJS=true` |
| 70 | +- Plus sécurisé pour les cas d'usage sensibles |
| 71 | + |
| 72 | +--- |
| 73 | + |
| 74 | +## Résumé de logs intelligent |
| 75 | + |
| 76 | +### Scoring multi-facteurs |
| 77 | + |
| 78 | +Nouveau système de scoring inspiré de BM25/TF-IDF qui prend en compte : |
| 79 | + |
| 80 | +- **Niveau de log** : Erreurs pondérées plus fortement que les warnings et infos |
| 81 | +- **Unicité du contenu** : Logs uniques valorisés par rapport aux répétitions |
| 82 | +- **Position** : Début et fin de session considérés plus importants |
| 83 | +- **Rareté** : Patterns inhabituels mis en avant |
| 84 | + |
| 85 | +### Clustering sémantique |
| 86 | + |
| 87 | +Regroupement automatique des logs similaires : |
| 88 | + |
| 89 | +- Détection de patterns récurrents (ex: "Connection failed to X") |
| 90 | +- Sélection du représentant le plus pertinent par cluster |
| 91 | +- Réduction significative de la redondance dans les résumés |
| 92 | + |
| 93 | +### Extraction de patterns |
| 94 | + |
| 95 | +Identification automatique des templates de logs avec variables : |
| 96 | + |
| 97 | +- Conversion de messages en patterns génériques (ex: `Error connecting to <IP>:<PORT>`) |
| 98 | +- Statistiques sur la fréquence de chaque pattern |
| 99 | +- Aide à identifier les problèmes récurrents |
| 100 | + |
| 101 | +### Résumé hiérarchique |
| 102 | + |
| 103 | +Nouveau mode de résumé pour les fichiers volumineux : |
| 104 | + |
| 105 | +- Découpage temporel ou par taille en sections |
| 106 | +- Résumé de chaque section puis agrégation |
| 107 | +- Vision multi-niveaux : vue d'ensemble, sections, entrées critiques |
| 108 | + |
| 109 | +--- |
| 110 | + |
| 111 | +## Pipeline Builder fluide |
| 112 | + |
| 113 | +Nouvelle API chaînable pour les opérations multi-étapes : |
| 114 | + |
| 115 | +- Interface immutable et type-safe |
| 116 | +- Méthodes fluides : `glob()`, `read()`, `parse()`, `filter()`, `map()`, `compress()` |
| 117 | +- Présets pour cas courants : analyse de code mort, extraction de signatures |
| 118 | + |
| 119 | +--- |
| 120 | + |
| 121 | +## Nouvelles dépendances |
| 122 | + |
| 123 | +- **neverthrow** : Gestion d'erreurs fonctionnelle type-safe |
| 124 | +- **@jitl/quickjs-ng-wasmfile-release-sync** : Sandbox QuickJS WebAssembly |
| 125 | +- **@sebastianwessel/quickjs** : Bridge hôte pour QuickJS |
| 126 | + |
| 127 | +--- |
| 128 | + |
| 129 | +## Changements notables |
| 130 | + |
| 131 | +- L'option `detailed` du parsing est maintenant dépréciée - l'extraction détaillée est toujours activée pour une meilleure qualité d'AST |
| 132 | +- Les API retournant des `Result` sont la nouvelle norme ; les versions "legacy" qui lèvent des exceptions restent disponibles pour la rétrocompatibilité |
| 133 | + |
| 134 | +--- |
| 135 | + |
| 136 | +**Note** : Cette release est un travail en cours. D'autres améliorations sont prévues avant la version finale 0.8.0. |
0 commit comments