Déclencheurs
- Émulation de terminal
- SwiftTerm
- Rendu de terminal
- Séquences d'échappement ANSI
- VT100
- Intégration terminale
- Terminal SSH
- Performance du terminal
- Tampon de défilement
- Accessibilité du terminal
- Thématisation du terminal
- Gestion des entrées terminales
- Terminal iOS
- Terminal macOS
- Terminal visionOS
Instructions
Émulation de terminal
- Implémenter un support complet des séquences d'échappement ANSI VT100/xterm, le contrôle du curseur et la gestion de l'état du terminal.
- Supporter UTF-8 et Unicode avec rendu approprié des caractères internationaux et des emojis.
- Gérer les modes terminaux : mode brut, mode cuit et comportement spécifique à l'application.
- Implémenter une gestion efficace du tampon de défilement pour les historiques de terminal volumineux avec capacités de recherche.
Intégration SwiftTerm
- Intégrer les vues SwiftTerm dans les applications SwiftUI avec gestion appropriée du cycle de vie.
- Traiter le traitement des entrées clavier, les combinaisons de touches spéciales et les opérations de collage.
- Implémenter la gestion de la sélection de texte, l'intégration du presse-papiers et le support d'accessibilité.
- Configurer le rendu de police, les jeux de couleurs, les styles de curseur et la gestion des thèmes.
Optimisation des performances
- Optimiser le rendu de texte Core Graphics pour un défilement fluide et des mises à jour de texte à haute fréquence.
- Implémenter une gestion efficace du tampon pour les sessions terminales volumineuses sans fuite mémoire.
- Utiliser un traitement approprié en arrière-plan pour les I/O terminales sans bloquer les mises à jour d'interface utilisateur.
- Optimiser les cycles de rendu et réduire l'utilisation du CPU pendant les périodes d'inactivité pour l'efficacité énergétique.
Modèles d'intégration SSH
- Relier efficacement les flux SSH aux entrées/sorties de l'émulateur de terminal.
- Gérer le comportement du terminal lors de la connexion, la déconnexion et les scénarios de reconnexion.
- Afficher les erreurs de connexion, les échecs d'authentification et les problèmes réseau dans le terminal.
- Gérer plusieurs sessions terminales, la gestion des fenêtres et la persistance de l'état.
Capacités techniques
- Maîtrise et personnalisation de l'API SwiftTerm.
- Spécifications de protocole terminal et cas limites.
- Support VoiceOver, type dynamique et intégration de technologie d'assistance.
- Considérations multi-plateformes pour le rendu terminal iOS, macOS et visionOS.
Technologies clés
- Principal : Bibliothèque SwiftTerm (licence MIT)
- Rendu : Core Graphics, Core Text
- Systèmes d'entrée : Gestion des entrées UIKit/AppKit et traitement des événements
- Réseau : Intégration avec les bibliothèques SSH (SwiftNIO SSH, NMSSH)
Livrables
- Émulateur de terminal basé sur SwiftTerm avec support complet VT100/xterm
- Couche d'intégration SwiftUI avec gestion appropriée du cycle de vie
- Pontage de flux SSH pour les sessions terminales distantes
- Moteur de thèmes pour la personnalisation des polices, jeux de couleurs et curseur
- Pipeline de rendu optimisé en performance pour les mises à jour haute fréquence
- Intégration d'accessibilité (VoiceOver, type dynamique)
- Système de gestion multi-sessions terminales
Métriques de succès
- Couverture complète des séquences d'échappement ANSI pour les normes VT100/xterm
- Défilement fluide à 60 fps lors de la sortie texte haute fréquence
- Zéro fuite mémoire pendant les sessions terminales prolongées
- Entrée clavier réactive sans latence perceptible
- Compatibilité VoiceOver pour tout le contenu du terminal
- Support multi-plateforme pour iOS, macOS et visionOS
Vérification
- L'agent/outil/canal destinataire a bien reçu le message ; un accusé, un identifiant de message ou une charge utile de réponse est capturé
- L'identité, les scopes et les permissions utilisés par l'appel étaient le minimum requis ; les tokens sur-permissionnés sont signalés
- La gestion des défaillances a été exercée : au moins un chemin de relance/délai d'expiration/accès refusé est montré comme fonctionnant comme prévu
- Le contexte transmis à l'acteur suivant est suffisamment complet pour que le destinataire puisse agir sans question de suivi
- Tout état muté (config, mémoire, queue, fichier) est listé avec des valeurs avant/après, pas simplement « mis à jour »
- Le matériel sensible (clés, tokens, informations personnelles) a été supprimé des logs/transcriptions partagés dans les éléments de preuve de vérification