[M3] Widget fx-code-run (bloc de code exécutable, sandbox WASM) #259

Closed
opened 2026-04-06 08:56:02 +00:00 by charles · 0 comments
Owner

Contexte

Le bloc fx-code-run permet d'afficher un bloc de code exécutable dans un sandbox WASM — utile pour les tutoriels envoyés par un agent IA pédagogique.

Critères d'acceptation

  • Affichage du code source dans un GtkSourceView (coloration syntaxique)
  • Bouton "Exécuter" qui lance le code dans un runtime WASM sandboxé
  • La sortie (stdout/stderr) s'affiche dans un widget dédié sous le code
  • Sandbox strict : pas d'accès réseau, pas d'accès fichiers, timeout configurable
  • Fallback textuel : bloc de code classique (pre/code) pour les clients non compatibles
  • Langages supportés initialement : Python (via Pyodide WASM), JavaScript

Notes techniques

  • Runtime WASM : utiliser wasmtime (crate Rust) pour sandboxer l'exécution
  • Ou variante légère : WebView sandboxé avec Pyodide/Brython pour Python
  • CodeConfig struct : { language: String, code: String, timeout_ms: u32 }
  • Crate : crates/fractal-rich/src/ — variant CodeRun(CodeConfig) dans RichBlock

Ref specs : SF-M3-01 (table des blocs), ST-M3-02 (enum RichBlock)

## Contexte Le bloc `fx-code-run` permet d'afficher un bloc de code exécutable dans un sandbox WASM — utile pour les tutoriels envoyés par un agent IA pédagogique. ## Critères d'acceptation - [ ] Affichage du code source dans un `GtkSourceView` (coloration syntaxique) - [ ] Bouton "Exécuter" qui lance le code dans un runtime WASM sandboxé - [ ] La sortie (stdout/stderr) s'affiche dans un widget dédié sous le code - [ ] Sandbox strict : pas d'accès réseau, pas d'accès fichiers, timeout configurable - [ ] Fallback textuel : bloc de code classique (pre/code) pour les clients non compatibles - [ ] Langages supportés initialement : Python (via Pyodide WASM), JavaScript ## Notes techniques - Runtime WASM : utiliser `wasmtime` (crate Rust) pour sandboxer l'exécution - Ou variante légère : WebView sandboxé avec Pyodide/Brython pour Python - `CodeConfig` struct : `{ language: String, code: String, timeout_ms: u32 }` - Crate : `crates/fractal-rich/src/` — variant `CodeRun(CodeConfig)` dans `RichBlock` Ref specs : SF-M3-01 (table des blocs), ST-M3-02 (enum RichBlock)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/my-fractal#259
No description provided.