ato

Docs/Capsule

Mis à jour le 2026-10-23

Capsule

Une Capsule est un point scellé, immuable et adressable d'une computation. C'est une continuation ouverte et persistante : du travail reste à accomplir, mais le point lui-même peut être nommé, conservé, partagé, repris, composé et dérivé en branches indépendamment du processus qui l'a produit.

seal(C42)      → Capsule C42
resume(C42)    → Run
fork(C42)      → RunA, RunB

« Ouverte » signifie que la continuation n'est pas terminée. « Persistante » signifie que le point survit au run d'origine.

Identité et matérialisation

Une Capsule n'est ni le fichier qui la transporte ni le mécanisme qui la reconstruit. Cette distinction sépare l'identité logique du point de sa Materialization (le mode de réalisation physique du point).

Capsule identity  !=  bundle bytes
Capsule identity  !=  materialization inventory

Le wire v2 à racine Computation utilise ComputationRef ; Portable Application wire v3/v4 utilise ContractRef. Ces références ne sont pas interchangeables. Voir Portable Capsules (anglais).

Ce qu'un hôte peut faire avec une Capsule dépend des Materializations disponibles sur cet hôte. Cette disponibilité décide si et comment l'hôte peut reprendre le point, pas ce qu'est la Capsule.

Run, Record et branches

  • Un Run est une évaluation active reprise depuis une Capsule. Les Runs avancent ; sceller le point actuel produit une autre Capsule.
  • Un Record est la preuve d'une interaction observée. Les Records permettent au Replay (le rejeu des interactions enregistrées) de reconstruire un point ailleurs ; ils ne sont pas le point.
  • Les noms de branches et la lignée aident à localiser et relier les points. Ils ne changent pas l'identité de ces points.

Ce qu'une Capsule n'est pas

Capsule != Snapshot
Capsule != VM
Capsule != Container
Capsule != Replay Log
Capsule != capsule.toml

Un instantané, une VM ou un conteneur peut réaliser une Capsule. Un journal de Replay peut porter la preuve nécessaire pour en reconstruire une. capsule.toml décrit comment un projet est enregistré. Aucun d'entre eux n'est la continuation elle-même.

Le fichier .capsule

La description et l’exemple suivants concernent uniquement le wire v2 à racine Computation.

Un fichier .capsule portable est un bundle de transport. Il contient la référence racine de la computation scellée, la fermeture d'objets vérifiée dont la racine a besoin et des descripteurs de matérialisation facultatifs.

L'export ne change pas l'identité du point :

ato encap demo@main --materialize ato.replay@1 -o demo.capsule
ato run demo.capsule

ato run consomme le bundle de manière éphémère ; la Capsule qu'il reprend est le point auquel le bundle fait référence, pas le fichier.

Pour les commandes qui produisent et consomment ces fichiers, poursuivez avec le Démarrage rapide de la CLI.