Fix/sala sin aislamiento no arranca - #70
Merged
Merged
Conversation
Sale del primer experimento: un participante con permiso para intentar romperlo instalo Arch Linux dentro de su sala, XFCE encima, y lo expuso con un tunel de ngrok. La regla del puerto unico cubre lo que ENTRA; un tunel marca hacia afuera, asi que nunca le aplico. Se anota con el porque de que el fix no sea una linea en el prompt, y con lo que si cierra el hueco, para que no se vuelva a discutir desde cero. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L1nFf8JaKeGedJ6RaZQYZ8
El 7 de septiembre la imagen de las salas desaparecio del servidor con el proceso corriendo. `ensureImage` solo corria al arrancar, asi que nadie volvio a mirar: cada `docker run` fallo, `ensureRunner` se trago el error y cayo al runner local. Las 62 salas de un experimento con 11 personas ejecutaron los comandos del agente en la maquina del server, y solo se dijo en un console.error que nadie lee. Uno de los participantes acabo con un Arch Linux y un escritorio corriendo en el VPS. El fallo de diez segundos no fue el problema, lo fue la decision de seguir. Degradar de "aislado" a "sin aislar" no es como degradar de "con preview" a "sin preview": cambia quien puede tocar que, y eso lo decide una persona, no un catch. Eran cuatro caminos distintos al host, no uno: - `ensureRunner` caia al runner local cuando el contenedor fallaba. Ahora lanza. El local queda detras de MULTI_SIN_AISLAMIENTO=1, que grita en el arranque igual que MULTI_TEST_MOCK, o de que no haya Docker en la maquina. - La imagen solo se comprobaba al arrancar. Ahora se revisa antes de cada contenedor, con el resultado recordado para no pagar el `docker images` cada vez, y OLVIDADO en cuanto un `docker run` falla. Con eso solo, lo del domingo se habria curado en el segundo intento sin que nadie se enterara. - El `runner` era opcional en ToolContext, asi que bash caia al host si algun llamador se olvidaba de pasarlo. Ahora es obligatorio y el compilador es la guardia: quien no tenga contenedor escribe `localRunner` con las manos. - El dev server decidia por `container.publishedPort`, una condicion distinta a la del runner. Cuando divergian, el proyecto arrancaba en el host mientras el agente creia estar encerrado. Ahora `Runner.isolated` manda en los dos. Y el error llega a la sala, no solo al log. Quien esta adentro lee que no se puede ejecutar codigo, que su trabajo sigue guardado y a quien avisarle; el log se queda con la causa y el comando para diagnosticar. El turno ni se abre, para no dejar un commit vacio en la linea de tiempo. La demo de aislamiento cubre ahora el caso que nadie cubria: Docker existe y el contenedor falla. Antes usaba `localRunner` directo, asi que este bug no tenia por donde salir. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L1nFf8JaKeGedJ6RaZQYZ8
El id ES el control de acceso, y es legible a proposito para poder dictarlo por telefono. Pero legible tambien es adivinable: ocho adjetivos por ocho sustantivos por noventa numeros son 5760 combinaciones, y en el servidor ya hay 162 salas. Uno de cada treinta y cinco intentos cae en una sala de alguien. Con proyectos de clase es una curiosidad. Deja de serlo en cuanto alguien ponga credenciales de verdad en el panel de Variables, que es justo para lo que existe. La salida no son UUIDs, que romperian lo que los ids legibles protegen. Un id mas largo conserva la forma y mueve el espacio lo suficiente. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L1nFf8JaKeGedJ6RaZQYZ8
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.