Repository navigation
fix(ui): no pisar idioma/parámetros guardados al auto-cargar un preset - #174
Closed
Alejandro-Cuautli wants to merge 1 commit into
Closed
Alejandro-Cuautli wants to merge 1 commit into
Alejandro-Cuautli wants to merge 1 commit into
Conversation
applyPreset() ya distinguía isUserInteraction (para decidir si persistir el estado con debouncedSaveState), pero igual aplicaba language/exaggeration/ cfg_weight/temperature/speed_factor/seed del preset sin importar el flag. Todos los presets incluidos son demos en inglés. loadInitialUiState() carga primero el idioma/parámetros guardados por el usuario desde generation_defaults (correcto), pero si el cuadro de texto está vacío, restaura en silencio el último preset usado (isUserInteraction=false) -- eso pisaba de vuelta esos mismos valores con los del preset en cada carga de página. Un usuario que siempre trabaja en español y borra el texto para escribir uno nuevo (flujo normal) veía el idioma volver a inglés en cada sesión, sin haber tocado nada. Ahora el override de esos parámetros solo ocurre cuando isUserInteraction es true, es decir, cuando el usuario hace clic en un botón de preset a propósito -- ahí sí tiene sentido adoptar también el idioma/tono de ese ejemplo. La restauración silenciosa al cargar la página solo repone el texto de ejemplo y el resaltado visual del botón, sin tocar los parámetros que el usuario ya había guardado. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Author
|
Cerrando: esto se abrió por error contra el upstream (gh pr create sin --repo tomó el remoto upstream de mi fork en vez de origin). El fix es válido pero por ahora se queda solo en mi fork; si más adelante decido contribuirlo, lo vuelvo a abrir a propósito. Disculpas por el ruido. |
Alejandro-Cuautli
deleted the
fix/preset-autoload-should-not-override-user-language
branch
September 21, 2026 05:10
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.
Resumen
Bug real reportado por el owner de nuestro despliegue (synaptic-model-manager / Synaptic Voice Studio): el selector de idioma vuelve solo a inglés cada vez que abre la Web UI con el cuadro de texto vacío, aunque siempre trabaja en español y ya lo había guardado como default.
Causa
Los 15 presets incluidos (Load Example Preset) son todos demos en inglés (language: "en" en cada uno, exaggeration de 0.3 a 1.4). loadInitialUiState():
applyPreset() ya tenía el flag isUserInteraction (para decidir si dispara debouncedSaveState()), pero aplicaba language/exaggeration/cfg_weight/temperature/speed_factor/seed del preset sin mirar ese flag. Resultado: cualquier usuario que borre el texto para escribir uno nuevo (flujo normal) ve sus parámetros guardados pisados por los del preset en cada carga de página, sin haber tocado nada.
Fix
El override de esos seis parámetros ahora solo ocurre cuando isUserInteraction es true (el usuario hizo clic en un botón de preset a propósito -- ahí sí tiene sentido adoptar también idioma/tono del ejemplo). La restauración silenciosa al cargar la página sigue reponiendo el texto de ejemplo y el resaltado visual del botón, pero ya no toca los parámetros que el usuario había guardado.
Cambio de una función en ui/script.js, sin tooling de test en el repo (validado con node --check).
🤖 Generated with Claude Code