El usuario vio a mano lo que mi simulacion de puntero no consiguio disparar en
cinco intentos. El swipe estaba mal, y no donde yo habia mirado.
La decision de finishDrag SI voltea (isRtlHorizontal ? -offset : offset) y por
eso la daba por buena. El defecto estaba en el PINTADO durante el arrastre:
translate = base + dragOffset // base = indice, dragOffset = dedo
itemGroupTransform = translate * flip // el flip caia sobre LOS DOS
El recorrido por indice es LOGICO —N->N+1 mueve el rail a la izquierda en LTR y a
la derecha en RTL— y debe voltear. `dragOffset` es el desplazamiento FISICO del
puntero y no debe. Al voltear ambos, en RTL el rail se movia en sentido contrario
al dedo: arrastras a la derecha y el contenido huye a la izquierda. Separados:
solo baseTranslate lleva el signo.
A/B con git stash, midiendo el transform A MITAD del arrastre —que no exige
superar el umbral de gesto, y por eso ahora si es medible—: sin el arreglo, con
el dedo a +100px el rail da Δ-100 (huye); con el arreglo, Δ+100 (lo sigue). LTR
intacto en los dos casos.
NOTA DE METODO, anotada en el handoff: para un gesto con umbral de distancia y
velocidad, no intentes completar el swipe con page.mouse; mide el estado
INTERMEDIO con el puntero aun abajo. Es lo que me faltaba en §6.8.
DESCARTADOS CON MEDIDA, no se tocan:
scroll-area FUNCIONA. Confirmado por el usuario y medido: con el toggle en auto,
ES->ltr y AR->rtl, y el elemento pasa a direction:rtl. Su resolvedDir sigue
siendo codigo muerto y el uso de scrollLeft sin verificar en un eje horizontal
real, pero el componente responde a la direccion.
chart NO NECESITA ARREGLO y las referencias lo respaldan. Medido: chartDir,
legendDir y el texto de los ejes pasan de ltr a rtl; el eje numerico no se
voltea. Es el consenso: Chart.js implemento RTL SOLO para leyendas y tooltips y
mantiene abierto el issue de ejes/etiquetas (#11937, PR #6460), y el patron
documentado es eje numerico LTR con textos RTL. amCharts es de los pocos con RTL
integral.
Y el sintoma «la demo no reacciona al idioma», reportado tres veces
(virtual-list, carousel, scroll-area): medido en las tres, con el toggle en AUTO
las tres reaccionan. Si el toggle esta en ltr/rtl explicito el idioma no manda,
porque el intent gana sobre la derivacion. No es defecto, pero despista de forma
sistematica: parece un interruptor de dos posiciones y es un ciclo de tres donde
solo uno cede el mando al idioma, y el estado solo se lee en el title. Cerrarlo
seria trabajo de la shell, no del eje.
Verificado: check 74 = linea base exacta. 4/4 en carousel.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Ephemeral, time-stamped artifacts — not part of the permanent reference
corpus. Session hand-offs, audits, migration plans, "continue next time" notes.
They are kept for history and traceability only. The source of truth for how the
framework works lives in the reference / architecture / canon docs (the layer
READMEs, active_architecture.md, GUIA_IMPLEMENTACION_SEMAUIX.md, the RFCs),
never here.
Rule of thumb: anything written as "as of <date>", "handoff", "estado actual",
or "continue next session" belongs here, not inside a reference doc. A reference
doc should read as if it were always true.
Contents
handoffs-2026-05.md — session hand-off blocks that
used to be embedded inline in the layer READMEs and architecture docs. Pulled
out so the reference docs stay timeless.
arts-audit-2026-06.md — audit of the arts/
artifacts (ex-sium): contract / barrel / diagnostics findings, what was fixed
and what was deliberately left.