[M3] Widget fx-code-run : bloc de code exécutable dans sandbox WASM #34

Closed
opened 2026-04-06 01:35:44 +00:00 by charles · 0 comments
Owner

Contexte

Permettre l'exécution de code directement dans la timeline (tutoriels interactifs), sandboxé via WASM pour éviter tout accès système.

Critères d'acceptation

  • CodeRunConfig : language, code: String, expected_output: Option<String>
  • Affichage : GtkSourceView (coloration syntaxique) + bouton "Exécuter"
  • Exécution dans un runtime WASM isolé (pas d'accès réseau/fichiers)
  • Affichage de la sortie dans un terminal inline
  • Timeout d'exécution : 5s max
  • Langages supportés initialement : Python (via Pyodide WASM), JavaScript

Notes techniques

  • Dépend de : #27 (RichMessageParser)
  • Runtime WASM : wasmtime crate ou WebView avec Pyodide
  • GtkSourceView pour la coloration (dépendance existante dans GNOME)
  • Feature optionnelle : désactivable dans préférences (code_run_enabled)
## Contexte Permettre l'exécution de code directement dans la timeline (tutoriels interactifs), sandboxé via WASM pour éviter tout accès système. ## Critères d'acceptation - [ ] `CodeRunConfig` : `language`, `code: String`, `expected_output: Option<String>` - [ ] Affichage : `GtkSourceView` (coloration syntaxique) + bouton "Exécuter" - [ ] Exécution dans un runtime WASM isolé (pas d'accès réseau/fichiers) - [ ] Affichage de la sortie dans un terminal inline - [ ] Timeout d'exécution : 5s max - [ ] Langages supportés initialement : Python (via Pyodide WASM), JavaScript ## Notes techniques - Dépend de : #27 (RichMessageParser) - Runtime WASM : `wasmtime` crate ou WebView avec Pyodide - `GtkSourceView` pour la coloration (dépendance existante dans GNOME) - Feature optionnelle : désactivable dans préférences (`code_run_enabled`)
Sign in to join this conversation.
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#34
No description provided.