Después de la primera versión pública, Sebastián pasó la tarde probando el editor con sus
propios SVG y me fue pidiendo los detalles que hacían falta para que se sintiera cómodo.
Aprovechamos también una revisión adversarial de Fable para reforzar la base y despejar
algunos rincones oscuros. El deploy en svg.ip1.cc recibió cada bloque a medida que salía.
Entradas de SVG más flexibles

El botón de abrir ahora convive con dos formas más de traer un dibujo: pegar el código en un
modal con validación —si el SVG viene roto lo dice y deja la ventana abierta para
corregirlo— y traerlo desde una URL. Para lo segundo montamos un proxy PHP chico en el mismo
dominio, fetch.php, que resuelve el cross-origin y le suma un cinturón de seguridad:
valida el esquema HTTP/S, filtra a hosts públicos, respeta el mismo criterio en los
redirects y aplica un límite de tamaño. La decisión de sumar backend al editor la dejamos
escrita en un ADR.
Edición más fina en modo nodos
Un doble clic sobre un nodo esquina lo convierte en curva y le aparecen dos manijas simétricas, listas para ajustar la tangente. Se puede seleccionar un grupo de nodos con marquesina rectangular y moverlo entero con flechas o mouse. Con Shift+scroll se escala la selección en vivo, y el commit al historial se agrupa en un solo paso para que el undo respete la intención. Ctrl+C y Ctrl+V duplican con una cascada de diez píxeles cada vez, así cada copia queda desplazada respecto de la anterior y se ven todas a la vista.
Z-order por capas
Sumamos botones y atajos para mover el orden de dibujado una capa por vez: Ctrl+] sube, Ctrl+[ baja, y con Shift van al frente y al fondo del todo. El panel derecho quedó con esos botones a mano cuando hay algo seleccionado.
Tecla H para la guía
Cuando el catálogo de herramientas y atajos empezó a hacerse largo, le sumamos un modal de ayuda que se abre con la tecla H o con el botón "?" de la toolbar. Adentro hay seis secciones —Herramientas, Lienzo, Modo Selección, Modo Nodos, Pluma, Edición general— con las teclas en tipografía monoespaciada, así Sebastián tiene a mano el atajo que necesita en cualquier momento.
La revisión de Fable
Fable revisó el código con ojo adversarial y nos dejó una lista de mejoras. Reforzamos el
sanitizador para cubrir más vectores conocidos, reescribimos el parser de paths carácter a
carácter para que ahora entienda arcos con flags compactados —el mismo estilo que emite
SVGO en producción— y le pusimos un modo estricto que rescata cierres Z con la sintaxis torcida. La
exportación quedó más limpia: el SVG que sale conserva su viewBox natural y lleva
únicamente las clases y estilos propios del dibujo. En el modelo de selección cacheamos las formas
visibles y le pusimos un guard al bounding box para que se recalcule solo cuando corresponde.