Repository navigation
fix(tui): una sesión caducada deja volver a entrar, y Home deja de pintar el error de otra pestaña - #36
Merged
Conversation
…ntar el error de otra pestaña El token de sesion caduca en el servidor pero se queda en session.json, y el panel decide si hay sesion mirando si hay token. Con una sesion caducada, Home decia que estabas dentro, `s` no hacia nada porque ya habia sesion, y el resto de pestañas contestaba `invalid session`: justo la tecla que lo arregla era la que estaba apagada. Ahora el cliente devuelve api.ErrSessionExpired ante un 401 con sesion, y el panel, al recibirlo, suelta el token (tambien del disco) y se queda con la API key y las herramientas, que siguen valiendo. La pestaña dice que pulses s, y Home vuelve a ofrecer el login. Al abrir el panel pregunta una vez a /auth/me: si la sesion ha caducado entra al login como en una maquina nueva; sin red no dice nada. Si caduca mas tarde solo lo avisa, porque el login se queda con todas las teclas. Un rechazo que llega despues de volver a entrar no se lleva la sesion nueva. Y aparte: m.err es uno para todas las pestañas y las que no cargan nada (Home, About, una ya en cache) no lo limpiaban, asi que al volver a Home se veia el error de la pestaña anterior en lugar de Home. maybeLoad lo limpia. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merged
borjaperfra
added a commit
that referenced
this pull request
Sep 30, 2026
Entrega lo mergeado desde la 0.1.21: - #35 los perfiles de Codex sin web_search ni la herramienta de sub-agentes, que dejaban vacio el turno en qwen3.8-flash y mimo; y la tabla de Costs con Opus 5.5, Sonnet 5.5, GPT-6.1 Sol y GPT-6 Luna - #36 una sesion caducada deja volver a entrar, y Home deja de pintar el error de otra pestaña Co-authored-by: borjaperfra <borjaperfra@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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.
Cuando el token de sesión caduca en el servidor sigue en
session.json, y el panel decide si hay sesión mirando si hay token. Por eso, con una sesión caducada:sno hacía nada, porque solo funciona cuando no hay sesión.invalid session, que es lo que devuelve el servidor:401 {"error":"invalid session"}, comprobado contracloud-api.nan.builders.Cambios
api.ErrSessionExpired: el cliente devuelve este error ante un 401 cuando la petición llevaba sesión. Sin sesión, o con el servidor caído (5xx), el error es el de siempre.session.json, y conserva la API key y las herramientas configuradas. La pestaña dice "your session has expired — press s to sign in again", Home vuelve a mostrar el paso de login ysfunciona./auth/me. Si la sesión ha caducado se entra directamente al login, como en una máquina nueva. Sin red no hace nada.m.erres uno para todas las pestañas, y las que no cargan nada (Home, About, las que ya están en caché) no lo limpiaban. Al volver a Home se veía el error de la pestaña anterior.Pruebas
internal/api: 401 con sesión daErrSessionExpired; 401 sin sesión y 502 no.internal/tui/session_test.go, cuatro casos:sfunciona;m.err.go vetlimpio y la suite completa en verde.session.jsonreal.🤖 Generated with Claude Code