Qu'est-ce que le correctif 0.1.8 a changé concernant la page Studio de l'App Builder ?#
Answer
A — CHANGELOG 0.1.8 Fixed : Save & regenerate écrit désormais BRIEF.md avant de mettre CoCo en file d'attente, fermant la course à l'écrasement.
Q2Multiple choice
Qu'est-ce que le correctif 0.1.7 a changé concernant make audit / pip-audit en CI ?#
Answer
B — CHANGELOG 0.1.7 Fixed : --skip-editable évite un faux échec d'audit « not found on PyPI » après un bump de version.
Q3Multiple choice
Quelles deux choses le correctif 0.1.6 a-t-il traitées ?#
Answer
B — CHANGELOG 0.1.6 Fixed couvre à la fois le retrait de $schema/$id et le changement use_container_width → width="stretch".
Q4Multiple choice
Quelle erreur JSON Schema le correctif 0.1.6 a-t-il spécifiquement évitée ?#
Answer
A — Le texte d'erreur exact cité dans l'entrée Fixed de 0.1.6 est le rejet de la référence de schéma avec URI de draft.
Q5Multiple choice
Qu'est-ce qui a changé dans le workflow de sécurité 0.1.5 ?#
Answer
B — CHANGELOG 0.1.5 Changed (Security) : CodeQL retiré (manque de licence GHAS), Gitleaks et pip-audit conservés.
Q6Multiple choice
Qu'est-ce que le correctif 0.1.0 a changé concernant les cartes d'outils Grep/Glob terminées ?#
Answer
A — CHANGELOG 0.1.0 Fixed : les cartes Grep/Glob terminées affichent un résumé compact plutôt qu'un dump complet.
Q7Multiple choice
Une session lève SDKNotInstalledError. Qu'est-ce que cela indique, et quelle est la solution ?#
Answer
B — SDKNotInstalledError signifie que l'extra SDK optionnel est manquant ; la solution est pip install streamlit-coco[sdk] ou make install.
Q8Multiple choice
Une session lève CLIProbeError. Que signifie ceci ?#
Answer
B — CLIProbeError signifie spécifiquement « binaire trouvé mais --version a échoué », distinct de CLINotFoundError.
Q9Multiple choice
Une session reste bloquée sur « Starting CoCo… » sans autre progression. Quelle est l'étape de diagnostic initiale recommandée ?#
Answer
B — La solution du tableau de dépannage pour une connexion bloquée est de vérifier les journaux du terminal et d'activer STREAMLIT_COCO_DEBUG=1.
Q10Multiple choice
Le champ de saisie du chat reste désactivé juste après le démarrage de l'application. Quelle est la cause probable et la solution ?#
Answer
A — Une saisie désactivée après le démarrage correspond à SessionNotReadyError/un statut d'erreur ; corriger l'environnement et réinitialiser depuis la barre latérale.
Q11Multiple choice
Quel est le comportement overwrite par défaut de upload_to_cwd(), et en quoi diffère-t-il du défaut de téléversement de chat_input_bar() ?#
Answer
B — Le défaut propre de upload_to_cwd() est overwrite="error" ; chat_input_bar() fixe son défaut upload_overwrite à "replace".
Q12Multiple choice
Que recherche l'analyseur de journaux de app_viewer() pour détecter une erreur, et quelle en est une limitation connue ?#
Answer
A — L'analyseur détecte ces deux chaînes ; une ligne horodatée ultérieure peut être mal interprétée comme une résolution de l'erreur.
Q13Multiple choice
Pourquoi l'application hôte de app_viewer() ne peut-elle pas lire directement la traceback DOM de l'application prévisualisée ?#
Answer
A — La prévisualisation enfant est une autre origine (port différent), donc seul le journal analysé — pas le DOM — est disponible pour « Fix with CoCo ».
B — ApprovalTimeoutError se déclenche une fois approval_timeout_seconds (600 s par défaut) écoulé sans décision.
Q15Multiple choice
« Always allow » est-il jamais persisté à travers un redémarrage du processus Streamlit ?#
Answer
B — « Always allow » ne vit que dans PermissionManager.always_allowed_tools en mémoire ; il s'efface à reset(), close(), ou au redémarrage.
Q16Multiple choice
Que remplace la variable d'environnement CORTEX_CODE_CLI_PATH ?#
Answer
B — CORTEX_CODE_CLI_PATH remplace la recherche du chemin du CLI lorsque le CLI n'est pas sur PATH et que cli_path n'a pas été transmis.
Q17Multiple choice
Quelles valeurs is_debug_mode() considère-t-elle comme vraies pour STREAMLIT_COCO_DEBUG / COCO_DEBUG ?#
Answer
B — L'ensemble de valeurs vraies documenté de is_debug_mode() est "1"/"true"/"yes"/"on" (insensible à la casse) ou un indicateur d'état de session vrai.
Every answer is also reachable per question above. This section keeps the full key for offline review and printing.
Show the complete answer key
A1
A — CHANGELOG 0.1.8 Fixed : Save & regenerate écrit désormais BRIEF.md avant de mettre CoCo en file d'attente, fermant la course à l'écrasement.
A2
B — CHANGELOG 0.1.7 Fixed : --skip-editable évite un faux échec d'audit « not found on PyPI » après un bump de version.
A3
B — CHANGELOG 0.1.6 Fixed couvre à la fois le retrait de $schema/$id et le changement use_container_width → width="stretch".
A4
A — Le texte d'erreur exact cité dans l'entrée Fixed de 0.1.6 est le rejet de la référence de schéma avec URI de draft.
A5
B — CHANGELOG 0.1.5 Changed (Security) : CodeQL retiré (manque de licence GHAS), Gitleaks et pip-audit conservés.
A6
A — CHANGELOG 0.1.0 Fixed : les cartes Grep/Glob terminées affichent un résumé compact plutôt qu'un dump complet.
A7
B — SDKNotInstalledError signifie que l'extra SDK optionnel est manquant ; la solution est pip install streamlit-coco[sdk] ou make install.
A8
B — CLIProbeError signifie spécifiquement « binaire trouvé mais --version a échoué », distinct de CLINotFoundError.
A9
B — La solution du tableau de dépannage pour une connexion bloquée est de vérifier les journaux du terminal et d'activer STREAMLIT_COCO_DEBUG=1.
A10
A — Une saisie désactivée après le démarrage correspond à SessionNotReadyError/un statut d'erreur ; corriger l'environnement et réinitialiser depuis la barre latérale.
A11
B — Le défaut propre de upload_to_cwd() est overwrite="error" ; chat_input_bar() fixe son défaut upload_overwrite à "replace".
A12
A — L'analyseur détecte ces deux chaînes ; une ligne horodatée ultérieure peut être mal interprétée comme une résolution de l'erreur.
A13
A — La prévisualisation enfant est une autre origine (port différent), donc seul le journal analysé — pas le DOM — est disponible pour « Fix with CoCo ».
A14
B — ApprovalTimeoutError se déclenche une fois approval_timeout_seconds (600 s par défaut) écoulé sans décision.
A15
B — « Always allow » ne vit que dans PermissionManager.always_allowed_tools en mémoire ; il s'efface à reset(), close(), ou au redémarrage.
A16
B — CORTEX_CODE_CLI_PATH remplace la recherche du chemin du CLI lorsque le CLI n'est pas sur PATH et que cli_path n'a pas été transmis.
A17
B — L'ensemble de valeurs vraies documenté de is_debug_mode() est "1"/"true"/"yes"/"on" (insensible à la casse) ou un indicateur d'état de session vrai.
A18
B — TTS_DATA_MODE n'est lu qu'à l'intérieur du processus de prévisualisation enfant de bi_to_semantic, via app_viewer(env=...).
A19
B — SEC-01 est listé comme ouvert, cible v0.2, dans threat-model.md §7.
A20
B — SEC-02 est listé comme ouvert, cible v0.2 ; le guidage actuel de la page de sécurité est intérimaire, pas le livrable suivi.
A21
B — 0.1.5 a retiré le job CodeQL pour des raisons de licence ; security.yml n'exécute aujourd'hui que Gitleaks et pip-audit.
A22
B — Gitleaks (CLI) et pip-audit --skip-editable s'exécutent sur PR, push vers main, et la planification hebdomadaire du lundi.
A23
A, B — A, B
A24
A — La revue manuelle indique explicitement qu'aucun shell=True, aucun identifiant codé en dur, et aucun usage de eval()/exec() n'a été trouvé.
A25
B — options_hash() ne hashe que les champs affectant les permissions d'outils ; CocoSession ne redémarre son worker que lorsque ce hash change.
A26
B — wrap_exception() détecte le message de l'exception brute et utilise context= pour choisir la bonne sous-classe CocoError.
A27
B — ApprovalTimeoutError est documentée comme étant aussi une TimeoutError.
A28
A — SDKNotInstalledError est documentée comme étant aussi une ImportError.
A29
A — La CI exécute les tests unitaires et e2e sur chaque PR vers main, sans agent CoCo réel ; les vérifications live sont manuelles uniquement.
A30
A — Avant 0.1.7, pip-audit sans --skip-editable signalait la version locale tout juste bumpée comme absente de PyPI.