B — CHANGELOG 0.1.5 Changed (Security): CodeQL eliminado (falta de licencia GHAS), Gitleaks y pip-audit mantenidos.
Q6Multiple choice
¿Qué cambió la corrección de 0.1.0 sobre las tarjetas de herramienta Grep/Glob completadas?#
Answer
A — CHANGELOG 0.1.0 Fixed: las tarjetas completadas de Grep/Glob muestran un resumen compacto en lugar de un volcado completo.
Q7Multiple choice
Una sesión lanza SDKNotInstalledError. ¿Qué indica esto, y cuál es la solución?#
Answer
B — SDKNotInstalledError significa que falta el extra opcional del SDK; la solución es pip install streamlit-coco[sdk] o make install.
Q8Multiple choice
Una sesión lanza CLIProbeError. ¿Qué significa esto?#
Answer
B — CLIProbeError es específicamente "binario encontrado pero --version falló", distinto de CLINotFoundError.
Q9Multiple choice
Una sesión se queda atascada en "Starting CoCo…" sin más avance. ¿Cuál es el primer paso de diagnóstico recomendado?#
Answer
B — La solución de la tabla de resolución de problemas para una conexión atascada es revisar los logs de la terminal y activar STREAMLIT_COCO_DEBUG=1.
Q10Multiple choice
El campo de entrada del chat permanece deshabilitado justo después de arrancar la app. ¿Cuál es la causa probable y la solución?#
Answer
A — El campo de entrada deshabilitado tras el arranque se corresponde con SessionNotReadyError/estado de error; corrige el entorno y reinicia desde la barra lateral.
Q11Multiple choice
¿Cuál es el comportamiento overwrite por defecto de upload_to_cwd(), y en qué se diferencia del valor por defecto de subida de chat_input_bar()?#
Answer
B — El valor por defecto propio de upload_to_cwd() es overwrite="error"; chat_input_bar() fija su upload_overwrite por defecto en "replace".
Q12Multiple choice
¿Qué busca el parser de logs de app_viewer() para detectar un error, y cuál es una limitación conocida?#
Answer
A — El parser busca esas dos cadenas; una línea con marca de tiempo posterior puede malinterpretarse como que borra el error.
Q13Multiple choice
¿Por qué no puede la app anfitriona de app_viewer() leer directamente el traceback del DOM de la app previsualizada?#
Answer
A — La vista previa hija es otro origen (puerto diferente), así que solo el log raspado — no el DOM — está disponible para "Fix with CoCo".
B — ApprovalTimeoutError se dispara una vez que transcurren approval_timeout_seconds (por defecto 600s) sin decisión.
Q15Multiple choice
¿Persiste alguna vez "Always allow" a través de un reinicio del proceso Streamlit?#
Answer
B — "Always allow" vive solo en PermissionManager.always_allowed_tools en memoria; se borra en reset(), close(), o al reiniciar.
Q16Multiple choice
¿Qué anula la variable de entorno CORTEX_CODE_CLI_PATH?#
Answer
B — CORTEX_CODE_CLI_PATH anula la búsqueda de ruta del CLI cuando este no está en PATH y no se pasó cli_path.
Q17Multiple choice
¿Qué valores trata is_debug_mode() como verdaderos para STREAMLIT_COCO_DEBUG / COCO_DEBUG?#
Answer
B — El conjunto documentado de valores verdaderos de is_debug_mode() es "1"/"true"/"yes"/"on" (sin distinguir mayúsculas) o un indicador verdadero en el estado de sesión.
B — SEC-02 figura abierto, objetivo v0.2; la orientación actual de la página de seguridad es provisional, no el entregable rastreado.
Q21Multiple choice
¿Cuál es el estado actual de CodeQL en el CI de este repositorio?#
Answer
B — 0.1.5 eliminó el trabajo de CodeQL por motivos de licencia; security.yml hoy solo ejecuta Gitleaks y pip-audit.
Q22Multiple choice
¿Qué dos scanners se ejecutan realmente en security.yml hoy, y con qué disparadores?#
Answer
B — Gitleaks (CLI) y pip-audit --skip-editable se ejecutan en PR, push a main, y la programación semanal del lunes.
Q23Select all that apply
¿Qué elementos de seguridad están ABIERTOS (no resueltos) según el modelo de amenazas? (Opción múltiple — selecciona todas las que apliquen)#
Answer
A, B — A, B
Q24Multiple choice
Según la revisión manual en findings-report.md (versión auditada 0.1.0), ¿cuál de estos NO encontró la revisión en el código fuente?#
Answer
A — La revisión manual declara explícitamente que no se encontraron shell=True, credenciales embebidas, ni eval()/exec().
Q25Multiple choice
¿Qué dispara el reinicio del worker en segundo plano de una CocoSession?#
Answer
B — options_hash() solo aplica hash a los campos que afectan a los permisos de herramienta; CocoSession reinicia su worker solo cuando ese hash cambia.
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 ahora escribe BRIEF.md antes de encolar a CoCo, cerrando la condición de carrera de sobrescritura.
A2
B — CHANGELOG 0.1.7 Fixed: --skip-editable evita un fallo de audit falso de "not found on PyPI" tras un bump de versión.
A3
B — CHANGELOG 0.1.6 Fixed cubre tanto la eliminación de $schema/$id como el cambio de use_container_width a width="stretch".
A4
A — El texto exacto del error citado en la entrada Fixed de 0.1.6 es el rechazo de referencia de esquema de URI de draft.
A5
B — CHANGELOG 0.1.5 Changed (Security): CodeQL eliminado (falta de licencia GHAS), Gitleaks y pip-audit mantenidos.
A6
A — CHANGELOG 0.1.0 Fixed: las tarjetas completadas de Grep/Glob muestran un resumen compacto en lugar de un volcado completo.
A7
B — SDKNotInstalledError significa que falta el extra opcional del SDK; la solución es pip install streamlit-coco[sdk] o make install.
A8
B — CLIProbeError es específicamente "binario encontrado pero --version falló", distinto de CLINotFoundError.
A9
B — La solución de la tabla de resolución de problemas para una conexión atascada es revisar los logs de la terminal y activar STREAMLIT_COCO_DEBUG=1.
A10
A — El campo de entrada deshabilitado tras el arranque se corresponde con SessionNotReadyError/estado de error; corrige el entorno y reinicia desde la barra lateral.
A11
B — El valor por defecto propio de upload_to_cwd() es overwrite="error"; chat_input_bar() fija su upload_overwrite por defecto en "replace".
A12
A — El parser busca esas dos cadenas; una línea con marca de tiempo posterior puede malinterpretarse como que borra el error.
A13
A — La vista previa hija es otro origen (puerto diferente), así que solo el log raspado — no el DOM — está disponible para "Fix with CoCo".
A14
B — ApprovalTimeoutError se dispara una vez que transcurren approval_timeout_seconds (por defecto 600s) sin decisión.
A15
B — "Always allow" vive solo en PermissionManager.always_allowed_tools en memoria; se borra en reset(), close(), o al reiniciar.
A16
B — CORTEX_CODE_CLI_PATH anula la búsqueda de ruta del CLI cuando este no está en PATH y no se pasó cli_path.
A17
B — El conjunto documentado de valores verdaderos de is_debug_mode() es "1"/"true"/"yes"/"on" (sin distinguir mayúsculas) o un indicador verdadero en el estado de sesión.
A18
B — TTS_DATA_MODE solo se lee dentro del proceso hijo de vista previa de bi_to_semantic, vía app_viewer(env=...).
A19
B — SEC-01 figura abierto, objetivo v0.2, en threat-model.md §7.
A20
B — SEC-02 figura abierto, objetivo v0.2; la orientación actual de la página de seguridad es provisional, no el entregable rastreado.
A21
B — 0.1.5 eliminó el trabajo de CodeQL por motivos de licencia; security.yml hoy solo ejecuta Gitleaks y pip-audit.
A22
B — Gitleaks (CLI) y pip-audit --skip-editable se ejecutan en PR, push a main, y la programación semanal del lunes.
A23
A, B — A, B
A24
A — La revisión manual declara explícitamente que no se encontraron shell=True, credenciales embebidas, ni eval()/exec().
A25
B — options_hash() solo aplica hash a los campos que afectan a los permisos de herramienta; CocoSession reinicia su worker solo cuando ese hash cambia.
A26
B — wrap_exception() detecta el mensaje de la excepción en bruto y usa context= para elegir la subclase CocoError correcta.
A27
B — ApprovalTimeoutError está documentado como también TimeoutError.
A28
A — SDKNotInstalledError está documentado como también ImportError.
A29
A — CI ejecuta tests unitarios y e2e en cada PR a main, sin un agente CoCo en vivo; las comprobaciones en vivo son solo manuales.
A30
A — Antes de 0.1.7, pip-audit sin --skip-editable reportaba la versión local recién incrementada como ausente en PyPI.