Skip to content

Monitors persistants

Un monitor persistant permet à un agent de surveiller une commande après la fin de son propre processus. Le démon Stib stocke le monitor sur la carte, l'exécute à l'intervalle demandé et reprend un agent inactif lorsque stdout produit des événements.

Droits du serveur

Les commandes des monitors tournent hors de la sandbox agent, avec les droits système du serveur Stib. N'utilisez que des commandes de confiance. --allow-unsandboxed est un acquittement obligatoire et persistant de cette frontière de sécurité.

Commandes

bash
stib monitor add --cmd 'git fetch --quiet && ./check-ci' --interval 45s --description 'État CI' --allow-unsandboxed
stib monitor list
stib monitor remove 42

add accepte des intervalles de 10s à 24h. Sa description optionnelle prend par défaut un extrait lisible de la commande. La CLI s'authentifie avec le nonce de la carte courante et le scope self : un agent ne peut donc gérer que les monitors de sa propre carte.

Exécution et événements

Le démon lance un monitor immédiatement au démarrage ou après sa création. Un monitor ne se chevauche jamais avec lui-même : le délai suivant commence après la fin du run précédent. Le serveur exécute au plus quatre commandes monitor à la fois, et chaque run expire après le minimum entre son intervalle et 60 secondes.

Chaque ligne stdout est un événement. Stderr est drainé et conservé comme diagnostic. Les événements de tous les monitors d'une carte sont ordonnés, regroupés pendant 10 secondes, puis livrés par follow-ups de 100 événements ou 32 Kio maximum. Le reliquat part dans les lots suivants. Les lignes et la sortie totale sont bornées ; des marqueurs explicites signalent les troncatures.

Les événements attendent tant que l'agent travaille, attend l'utilisateur ou une approbation de plan. La livraison reprend par le mécanisme normal de follow-up dès que la carte est inactive.

Répertoire et cycle de vie

La CLI capture son répertoire courant. Le serveur n'accepte que le dépôt, le worktree géré ou un worktree attaché appartenant à la carte. Si ce répertoire disparaît, les runs suivants retombent sur le chemin actuel du dépôt du projet sans recréer de worktree.

Les monitors sont supprimés définitivement lorsque leur carte quitte une colonne active, est archivée, mise à la corbeille ou supprimée, ainsi que lorsque sa colonne devient passive. Retirer un monitor ou arrêter Stib termine puis récolte sa commande et ses descendants.

Les limites sont de huit monitors par carte, 16 Kio par ligne et 1 Mio de sortie collectée par run. Les erreurs de création stables incluent MONITOR_UNSANDBOXED_ACK_REQUIRED, MONITOR_INTERVAL_INVALID, MONITOR_CWD_OUTSIDE_CARD et MONITOR_LIMIT_REACHED.