Joss V3.6.3
Joss Language v3.6.3 — Release Notes
🇪🇸 Español
🚀 Joss Language v3.6.3 ya está disponible
¡Hola a todos!
Hoy presentamos oficialmente Joss Language v3.6.3, una actualización centrada en pequeños pero importantes cambios internos que hacen al lenguaje más estable, seguro y confiable.
En esta versión reforzamos especialmente el funcionamiento de WebSockets, la administración de canales y el ciclo de vida de sus callbacks. Además, incluimos las mejoras de autenticación y seguridad introducidas en la versión 3.6.2, con correcciones importantes para la verificación de cuentas, el restablecimiento de contraseñas y los desafíos de autenticación en dos pasos.
Gracias por seguir construyendo con Joss. Sigamos programando, mejorando y creando juntos.
[3.6.3] - 2026-07-28
Correcciones
- Los callbacks
onMessagede WebSocket ahora conservan correctamente$ws, los parámetros de la ruta y las variables locales, incluso después de que finaliza la ejecución del handler principal. - Los callbacks capturados dentro del mismo ámbito ahora comparten su estado entre mensajes y durante
onClose. - Las invocaciones de callbacks se procesan de forma serializada por conexión, evitando conflictos y condiciones de carrera.
- Los WebSockets ahora incluyen soporte para
onClose. - Se añadieron suscripciones y publicaciones en canales locales.
- Las suscripciones se eliminan automáticamente cuando se cierra una conexión.
- Se incorporó el reporte de errores de escritura.
- Se añadieron límites configurables para los mensajes.
- Se implementó el mantenimiento de conexiones mediante
ping/pong. - Los errores críticos o
panicdentro de un callback ahora se aíslan de forma segura para evitar que afecten al resto del servidor.
[3.6.2] - 2026-07-28
Correcciones
- Los reenvíos de correos de verificación ahora reutilizan el token vigente mientras no haya expirado, evitando invalidar enlaces que ya fueron enviados al usuario.
- Los errores de inicio de sesión ahora distinguen entre una cuenta no verificada y una contraseña incorrecta, sin depender de la generación de nuevos tokens.
- El restablecimiento de contraseñas ahora es atómico.
- Se rechazan contraseñas débiles, credenciales expiradas y tokens que ya hayan sido utilizados.
- Cada token de restablecimiento puede utilizarse una sola vez.
- La cuenta se verifica automáticamente después de que el usuario demuestra tener acceso al correo electrónico asociado.
- Los correos de autenticación y las fechas de expiración ahora se normalizan de forma consistente en SQLite, MySQL y PostgreSQL.
Seguridad
- Las cuentas verificadas ya no generan un token de verificación falso que pueda evaluarse como verdadero.
- La inicialización de la tabla de restablecimiento de contraseñas solo se almacena en caché después de haberse creado correctamente.
- Los desafíos de autenticación 2FA para API y web ahora expiran después de cinco minutos.
- Un desafío 2FA pendiente ya no puede utilizarse para acceder directamente a rutas protegidas.
- Cada desafío 2FA solo puede intercambiarse una vez por un token de acceso.
🇺🇸 English
🚀 Joss Language v3.6.3 is now available
Hello, everyone!
Today, we are officially releasing Joss Language v3.6.3, an update focused on small but important internal changes that make the language more stable, secure, and reliable.
This release significantly improves WebSocket behavior, channel management, and callback lifecycle handling. It also includes the authentication and security improvements introduced in v3.6.2, with important fixes for account verification, password recovery, and two-factor authentication challenges.
Thank you for continuing to build with Joss. Let’s keep programming, improving, and creating together.
[3.6.3] - 2026-07-28
Fixed
- WebSocket
onMessagecallbacks now correctly retain$ws, route parameters, and local variables after the main handler has returned. - Captured callbacks created within the same scope now share state across messages and during
onClose. - Callback invocations are serialized per connection to prevent conflicts and race conditions.
- WebSockets now support
onClose. - Local channel subscriptions and publications have been added.
- Subscriptions are automatically cleaned up when a connection closes.
- Write-error reporting has been added.
- Configurable message limits are now supported.
ping/pongkeepalive handling has been implemented.- Callback panics are safely isolated so they do not affect the rest of the server.
[3.6.2] - 2026-07-28
Fixed
- Verification email resends now reuse an existing unexpired token, preventing previously delivered links from being invalidated.
- Login failures now distinguish between an unverified account and an incorrect password without relying on new token generation.
- Password resets are now atomic.
- Weak passwords, expired credentials, and previously consumed tokens are rejected.
- Each password reset token can only be used once.
- The account is automatically verified after the user proves access to the associated email address.
- Authentication emails and expiration timestamps are now normalized consistently across SQLite, MySQL, and PostgreSQL.
Security
- Verified accounts no longer generate a fake verification token that evaluates as truthy.
- Password reset table initialization is only cached after the table has been created successfully.
- API and web 2FA challenges now expire after five minutes.
- Pending 2FA challenges can no longer authorize access to protected routes.
- Each 2FA challenge can only be exchanged once for an access token.
🇧🇷 Português
🚀 Joss Language v3.6.3 já está disponível
Olá a todos!
Hoje estamos lançando oficialmente o Joss Language v3.6.3, uma atualização focada em pequenas, porém importantes, mudanças internas que tornam a linguagem mais estável, segura e confiável.
Nesta versão, aprimoramos especialmente o funcionamento dos WebSockets, o gerenciamento de canais e o ciclo de vida dos callbacks. Também incluímos as melhorias de autenticação e segurança introduzidas na versão 3.6.2, com correções importantes para verificação de contas, redefinição de senhas e desafios de autenticação em dois fatores.
Obrigado por continuarem construindo com Joss. Vamos continuar programando, melhorando e criando juntos.
[3.6.3] - 2026-07-28
Correções
- Os callbacks
onMessagede WebSocket agora preservam corretamente$ws, os parâmetros da rota e as variáveis locais, mesmo após o término da execução do handler principal. - Os callbacks capturados dentro do mesmo escopo agora compartilham seu estado entre mensagens e durante o
onClose. - As invocações dos callbacks são processadas de forma serializada por conexão, evitando conflitos e condições de corrida.
- Os WebSockets agora oferecem suporte a
onClose. - Foram adicionadas inscrições e publicações em canais locais.
- As inscrições são removidas automaticamente quando uma conexão é encerrada.
- Foi adicionado o relatório de erros de escrita.
- Agora há suporte a limites configuráveis de mensagens.
- Foi implementado o mecanismo de manutenção de conexão por
ping/pong. - Erros críticos ou
panicdentro de callbacks agora são isolados com segurança para não afetarem o restante do servidor.
[3.6.2] - 2026-07-28
Correções
- O reenvio de e-mails de verificação agora reutiliza um token válido enquanto ele não estiver expirado, evitando invalidar links que já foram enviados ao usuário.
- As falhas de login agora diferenciam uma conta não verificada de uma senha incorreta, sem depender da geração de novos tokens.
- A redefinição de senha agora é atômica.
- Senhas fracas, credenciais expiradas e tokens já utilizados são rejeitados.
- Cada token de redefinição de senha pode ser utilizado apenas uma vez.
- A conta é verificada automaticamente depois que o usuário comprova acesso ao endereço de e-mail associado.
- Os e-mails de autenticação e os horários de expiração agora são normalizados de forma consistente no SQLite, MySQL e PostgreSQL.
Segurança
- Contas verificadas não geram mais um token de verificação falso que possa ser interpretado como verdadeiro.
- A inicialização da tabela de redefinição de senhas só é armazenada em cache depois que sua criação for concluída com sucesso.
- Os desafios 2FA para API e web agora expiram após cinco minutos.
- Um desafio 2FA pendente não pode mais autorizar o acesso direto a rotas protegidas.
- Cada desafio 2FA pode ser trocado apenas uma vez por um token de acesso.
Full Changelog: V3.6.2...V3.6.3