|
|
|
|
@ -0,0 +1,134 @@
|
|
|
|
|
---
|
|
|
|
|
title: UIX — handoff de continuación del 2026-09-27
|
|
|
|
|
type: notes
|
|
|
|
|
audience: human + agent
|
|
|
|
|
authority: process — checkpoint de continuidad
|
|
|
|
|
status: proposed
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
# Continuación de la auditoría UIX
|
|
|
|
|
|
|
|
|
|
Retomar en `G:\dev\svelte\vicen`, rama `astra`, siguiendo el
|
|
|
|
|
[plan](./PLAN-uix-quality-2026-09-19.md). **Siguiente lote: ColorField.**
|
|
|
|
|
La fase 6 sigue abierta: 74 fichas revisadas y ColorField en curso.
|
|
|
|
|
No convertir ese censo en un porcentaje global de las fases 6 y 7.
|
|
|
|
|
|
|
|
|
|
## Alcance que debe conservarse
|
|
|
|
|
|
|
|
|
|
- Auditar calidad, duplicación y refactorización con comportamiento equivalente.
|
|
|
|
|
Las reparaciones funcionales quedan para después de cerrar la auditoría.
|
|
|
|
|
- No modificar `web/`. No tocar ni incluir en commits `.claude/settings.local.json`:
|
|
|
|
|
es un cambio del usuario (172 adiciones / 1 eliminación al cerrar).
|
|
|
|
|
- Registrar todos los defectos en el
|
|
|
|
|
[registro](./audit-uix-2026-09-19/findings-register.md), conservando sus IDs
|
|
|
|
|
y distinguiendo reproducción, inferencia y límites de la evidencia.
|
|
|
|
|
- Probar cada cambio coherente antes/después; verificar visualmente cuando
|
|
|
|
|
corresponda. No presentar screenshots de fallo sin inspeccionar como QA visual.
|
|
|
|
|
- Comunicar actividad real y avisar al parar; no afirmar que se está trabajando
|
|
|
|
|
mientras no haya trabajo o proceso en curso. No iniciar subagentes sin petición.
|
|
|
|
|
|
|
|
|
|
Antes de modificar componentes, releer `AGENTS.md` y los cuatro pre-flight:
|
|
|
|
|
[component-audit](../guides/component-audit.md),
|
|
|
|
|
[demo-authoring](../guides/demo-authoring.md),
|
|
|
|
|
[contrato Eidos](../../src/uix/eidos/components/README.md) y
|
|
|
|
|
[building-a-component](../building-a-component.md).
|
|
|
|
|
|
|
|
|
|
## Base guardada y comprobaciones
|
|
|
|
|
|
|
|
|
|
Antes de añadir este handoff, `HEAD` y `gita/astra` eran
|
|
|
|
|
`e6b8cf55854f043cdf07906d4618f8f2e3d3ac38`: diferencia 0/0, push completado.
|
|
|
|
|
El único cambio tracked pendiente era la configuración local del usuario.
|
|
|
|
|
Este documento se guarda posteriormente como un commit documental adicional;
|
|
|
|
|
al retomar, comprobar `git status`, `git log` y la sincronización del remoto.
|
|
|
|
|
|
|
|
|
|
Últimos lotes:
|
|
|
|
|
|
|
|
|
|
| Commit | Resultado |
|
|
|
|
|
| ----------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
|
|
|
| `1ba41e325` | FloatPanel: caracterización y extracción neutral de conexiones. |
|
|
|
|
|
| `a8be47319` | ColorPicker: siete bolsas bindProps y step equivalente; 19 líneas de producción menos. Q94–Q102 diferidos. |
|
|
|
|
|
| `0d956fbe2` | ColorSwatch: comentarios/README precisados; ocho líneas físicas menos, todas de comentarios. Cero lógica eliminada. Q103 diferido. |
|
|
|
|
|
| `e6b8cf558` | Checkpoint documental de ColorField y registro Q104–Q108; sin cambios en sus fuentes. |
|
|
|
|
|
|
|
|
|
|
El gate del último push aprobó **513 archivos / 5638 tests**. Tipos de
|
|
|
|
|
src/scripts sin errores nuevos; los 89 errores existentes de web siguen dentro
|
|
|
|
|
del ledger. 901 documentos y 25 arts sin incidencias. Apps/base check/build y
|
|
|
|
|
smoke: foundation 1/1, boot 27/27, cero errores de página/consola/CSP,
|
|
|
|
|
delta/flips cero; LTR/RTL y dark/reduced correctos. Log local:
|
|
|
|
|
`node_modules/.cache/uix-audit-push-close.log`.
|
|
|
|
|
|
|
|
|
|
ColorSwatch cerró component-audit PASS y 104 contratos; sus cinco canarios
|
|
|
|
|
pasaron antes/después y las dos capturas mantenidas fueron inspeccionadas.
|
|
|
|
|
ColorPicker conserva NEEDS-WORK por heurística acciones/eventos y demo congelada;
|
|
|
|
|
no se forzó un PASS alterando API o web. Véanse sus fichas para límites completos.
|
|
|
|
|
|
|
|
|
|
## ColorField: punto exacto de continuación
|
|
|
|
|
|
|
|
|
|
La [ficha](./audit-uix-2026-09-19/color-field.md) conserva el corpus leído,
|
|
|
|
|
cinco referencias primarias, comparación histórica y límites. Morfo declara
|
|
|
|
|
cinco partes y un evento; hay seis wrappers Soma y seis Eidos. Provider actual:
|
|
|
|
|
999 líneas físicas; receta: 26 claves. La rama `morfo-runtime` sí tenía
|
|
|
|
|
ColorField Soma (trece archivos leídos, provider de 858 líneas), sin skin Eidos
|
|
|
|
|
propio. No repetir la afirmación de que Air carecía de ColorField Soma.
|
|
|
|
|
|
|
|
|
|
Baseline aislada en Chromium, runtime real: **9 canarios aprobados y 5 sondas
|
|
|
|
|
fallidas** en dos archivos, 77.54s. No es una ejecución conjunta verde ni una
|
|
|
|
|
baseline mantenida. Las sondas están sólo en tmp, fuera del gate:
|
|
|
|
|
|
|
|
|
|
| ID | Resultado que debe conservarse | Límite |
|
|
|
|
|
| ---- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
|
|
|
|
|
| Q104 | Omitir format en Eidos lanza props_invalid_value por binding undefined frente al fallback hex de Soma. | Adjudicar default/binding; no repararlo en la extracción. |
|
|
|
|
|
| Q105 | Input con name sin HiddenInput explícito no envía valor, pese a la promesa del README. | La composición explícita sí pasa; decidir contrato antes de cambiar montaje. |
|
|
|
|
|
| Q106 | El hidden explícito sigue incluido en FormData con disabled. | La bolsa no escribe disabled; preservar locks durante caracterización. |
|
|
|
|
|
| Q107 | invalid/errorMessageId deja aria-describedby del Input en null. | La aserción falla sobre null; opción declarada sin lectura. Sin prueba de asistencia. |
|
|
|
|
|
| Q108 | No se encuentra spinbutton con nombre /Red/ cuando hay Label. | aria-labelledby del grupo prima sobre aria-label; falta medir nombre exacto y probar asistencia. |
|
|
|
|
|
|
|
|
|
|
No se han inspeccionado capturas de ColorField. No se ha aplicado ningún refactor
|
|
|
|
|
ni promovido sus fixtures. No declarar el componente auditado/cerrado todavía.
|
|
|
|
|
|
|
|
|
|
## Material temporal y recuperación
|
|
|
|
|
|
|
|
|
|
Estos archivos son **locales e ignorados**, no están en el remoto. En un checkout
|
|
|
|
|
nuevo hay que recrearlos desde la ficha; en este workspace comprobar que existen.
|
|
|
|
|
|
|
|
|
|
- `tmp/uix-color-field-baseline/`: harness, view, nueve canarios, cinco sondas,
|
|
|
|
|
`native-baseline.log` y screenshots de fallo.
|
|
|
|
|
- `tmp/color-field-scratch-attachments-2026-09-27/`: adjuntos de la ejecución.
|
|
|
|
|
- `tmp/uix-color-field-baseline/prepared/`: copia de los borradores/proof y
|
|
|
|
|
configuración, para no depender de que se conserve node_modules/.cache.
|
|
|
|
|
- `node_modules/.cache/uix-color-field-binding-proof.mjs`: dos bolsas candidatas
|
|
|
|
|
Input/FormatSelect; ocho conexiones, getters/setters/template equivalentes por
|
|
|
|
|
AST; borrador de dos líneas físicas/no vacías menos. `--apply` **no ejecutado**.
|
|
|
|
|
- `node_modules/.cache/color-field-{Soma,Eidos}-README-proposed.md`: borradores
|
|
|
|
|
documentales sin aplicar. Revisar sus límites frente al registro antes de copiar.
|
|
|
|
|
- El borrador partOpts de Segment está **descartado**: conserva contrato, pero
|
|
|
|
|
suma una línea física (39→40). No aplicarlo por estar disponible.
|
|
|
|
|
|
|
|
|
|
Las pruebas de equivalencia comparan con HEAD. No relanzar --apply después de
|
|
|
|
|
haber aplicado el cambio o de cambiar su baseline; revisar primero los guards.
|
|
|
|
|
Normalizar CRLF/LF y preparar todas las escrituras antes de ejecutarlas.
|
|
|
|
|
|
|
|
|
|
## Secuencia para mañana
|
|
|
|
|
|
|
|
|
|
1. Comprobar rama/estado/remoto y leer plan, registro, ficha y pre-flight.
|
|
|
|
|
2. Recuperar fixtures locales. Repetir la baseline aislada si cambia el entorno:
|
|
|
|
|
`npx vitest run --config tmp/uix-color-field-baseline/prepared/baseline.config.mts`.
|
|
|
|
|
Sus cinco sondas deben fallar; esa ejecución no se presenta como verde.
|
|
|
|
|
3. Ampliar caracterización de Backspace/Tab, composición con Field y naming
|
|
|
|
|
con/sin Label. Mantener separados positivos y sondas; no arreglar Q104–Q108.
|
|
|
|
|
4. Promover las fixtures al árbol mantenido ajustando los imports de view/test;
|
|
|
|
|
repetir positivos y sondas **antes** de aplicar la extracción.
|
|
|
|
|
5. Aplicar sólo las dos bolsas si se confirma equivalencia. Mantener root,
|
|
|
|
|
callbacks, placeholder, activeDir, captura inicial de part y L-152 intactos.
|
|
|
|
|
Repetir pruebas y proof tras formato; medir reducción real por separado de tests/docs.
|
|
|
|
|
6. Retirar sondas y artefactos del árbol mantenido después de terminar sus runners.
|
|
|
|
|
Capturar con `scripts/audit-visual.config.ts`, inspeccionar imágenes nuevas a
|
|
|
|
|
escala nativa y ejecutar contratos/provider/opts adecuados.
|
|
|
|
|
7. Conciliar README, ficha, registro y plan. Ejecutar gate con archivos congelados.
|
|
|
|
|
Sólo marcar revisada y aumentar el censo cuando el lote esté cerrado.
|
|
|
|
|
8. Continuar por el plan; comitear/pushear al cierre solicitado, sin saltar hooks.
|
|
|
|
|
|
|
|
|
|
La configuración visual reutiliza plugins, aliases y browsers del proyecto;
|
|
|
|
|
no copiar aliases ni mockear viewport/servicios para convertir fallos en verde.
|
|
|
|
|
Las capturas son opt-in con VITE_UIX_AUDIT_SCREENSHOTS=1. No prometer QA visual
|
|
|
|
|
del catálogo completo por estas capturas ni pruebas con lector de pantalla.
|