Récupérer du travail
Examinez les copies de travail et les transferts conservés avant de les restaurer ou de les nettoyer.
Ce qu’Outpost conserve
Section intitulée « Ce qu’Outpost conserve »Lorsqu’une exécution s’arrête avant l’intégration de ses modifications, examinez le travail conservé par Outpost. L’inventaire de récupération permet de retrouver les copies de travail, les transferts téléchargés et les sauvegardes avant toute restauration ou suppression.
| Quoi | Où | Conservé quand |
|---|---|---|
| Worktree | .outpost/workspaces/ | L’exécution a échoué, l’intégration a créé un conflit, ou le worktree est modifié, détaché ou contient des fichiers ignorés (node_modules, copies). |
| Transfert distant | .outpost/recovery/ | Les changements d’une sandbox cloud n’ont pas pu être appliqués à votre checkout. |
| Conversation | .outpost/conversations/ ou le stockage de l’agent | Après chaque tour et en cas d’échec. Voir Conversations. |
| Progression du workflow | .outpost/storage/ ou votre transport | Après chaque tâche terminée. Voir Exécutions durables. |
Un worktree conservé est un worktree Git ordinaire sur sa branche : ouvrez-le, committez ce que vous gardez et fusionnez la branche.
Lire l’erreur
Section intitulée « Lire l’erreur »recoveryDetails() renvoie ce qu’Outpost a attaché à l’erreur : branch, directory, commits, transcript et logReference lorsqu’ils existent.
Deux échecs indiquent aussi leur emplacement dans error.details. Erreurs liste tous les codes.
Référence API : recoveryDetails.
Si l’exécution elle-même a aussi échoué, l’erreur de synchronisation arrive dans une AggregateError.
Restaurer un transfert distant
Section intitulée « Restaurer un transfert distant »Un transfert contient deux versions : previous, votre checkout avant les changements de la sandbox, et incoming, les changements de la sandbox. Restaurez l’une d’elles dans un nouveau dossier, jamais par-dessus votre checkout.
Inspecter
Section intitulée « Inspecter »Référence API : RecoveryInspectionOptions.
La commande se termine avec le statut 1 quand l’inventaire est incomplet.
Vérifier
Section intitulée « Vérifier »$TRANSFER est le dossier indiqué par details.recovery. --checksums compare chaque fichier au manifeste du transfert ; --max-bytes limite les octets hachés. --restorability reconstruit les commits et les patches dans un clone temporaire de --repository. La commande se termine avec le statut 1 quand un contrôle échoue.
Restaurer
Section intitulée « Restaurer »La commande affiche le plan. Relancez-la avec --apply pour créer le checkout : un clone de votre dépôt détaché sur le commit restauré, avec les patches et fichiers de la version choisie, sans remote origin.
Référence API : RecoveryRestoreOptions.
La destination ne doit pas exister et doit se trouver hors du dépôt, de ses métadonnées Git et du transfert. Le transfert reste en place.
Comparer et intégrer
Section intitulée « Comparer et intégrer »Le travail est désormais la branche outpost/recovered de votre dépôt. Relisez-la et fusionnez-la comme n’importe quelle autre branche.
Récupérer depuis le code
Section intitulée « Récupérer depuis le code »Chaque commande a sa fonction. planRecoveryRestore() renvoie le plan ; restoreRecoveryTransfer() vérifie que rien n’a changé depuis, puis l’applique.
inspectRecovery({ transporter }) liste les objets d’un transport au lieu d’un dépôt local.
Archiver un transfert à distance
Section intitulée « Archiver un transfert à distance »archiveRecovery() vérifie un transfert et le téléverse via un transport. materializeRecoveryArchive() le télécharge sur n’importe quelle machine et revérifie ses empreintes.
Conservez reference (une clé et une révision) pour retrouver l’archive. Passez staging comme --directory à outpost recovery restore, avec un clone du dépôt source.
Libérer une exécution ou une course arrêtée
Section intitulée « Libérer une exécution ou une course arrêtée »Un workflow ou une course de candidats interrompus gardent la propriété de leur checkpoint. Après avoir arrêté l’ancien processus, libérez-la avec recoverWorkflowCheckpoint() (Exécutions durables) ou recoverSpeculation() (Candidats concurrents).
Nettoyer ensuite
Section intitulée « Nettoyer ensuite »- Les empreintes détectent une altération par rapport à un manifeste non signé ; elles ne prouvent pas qui a produit le transfert.
- La restaurabilité couvre les commits, l’archive et les patches, pas les sous-modules ni les dépendances externes.
- Un transfert n’est restaurable qu’une fois la sauvegarde de l’hôte effectuée : une synchronisation échouée pendant le téléchargement ou la validation ne laisse aucun
state.json, et le plan de restauration la rejette. - Un PID de verrou ou une activité enregistrée est une observation. Elle ne prouve pas qu’un processus distant s’est arrêté.
- Un worktree signalé
cleanpeut encore contenir des fichiers ignorés, comme des copies ounode_modules. - Une archive contient les fichiers de récupération, pas le dépôt : la restauration exige toujours le dépôt source.
API : recoveryDetails · inspectRecovery · verifyRecoveryTransfer · planRecoveryRestore · restoreRecoveryTransfer · archiveRecovery · materializeRecoveryArchive.