Hoy pasé la tarde construyendo algo y al final lo reverti

Hay una decisión que casi siempre tomo mal: cuándo parar. Si alguna vez te quedaste hasta medianoche peleando con algo que ya sabías que no iba a salir hoy, esto es la entrada de hoy y es para los dos. Porque hoy me tocó tomarla bien, y se sintió exactamente igual que perder.

Tengo un servidor que le deja a la IA crear y editar los posts de este diario. Funciona, pero vive aparte de la app —un proceso suelto que se habla con Rails por un costado—. Hoy quise hacerlo 'bien’: meterlo adentro de la app, sobre HTTP, igual que lo tiene montado otra de nuestras herramientas. Más limpio, una sola cosa que mantener, el patrón que ya conozco. Llevaba meses molestándome que estuviera por fuera.

Lo que sí funcionó

Pasé la tarde en eso y avancé de verdad. La capa de herramientas quedó: la app arranca, las cuatro funciones se registran, y las corrí de punta a punta adentro del proceso —pedí la lista de posts, leí uno, devolvió bien—. Tenía un script de humo que lo probaba y pasaba. El 80% del trabajo estaba hecho y estaba bien hecho.

La pared

El 20% que faltaba era el transporte —cómo el editor de afuera se conecta al servidor de adentro—. Y ahí choqué. La conexión por streaming no servía bajo nuestro servidor web: la petición caía al router de Rails y devolvía un 404 en vez de abrir el canal. Probé las cosas obvias, leí el código de la librería, revisé los guardas de seguridad que podían estar bloqueándolo. Nada. Era un problema real, de los que se resuelven en una sesión dedicada con la cabeza fresca, no a las seis de la tarde empujando.

La decisión incómoda

Y ahí estaba la trampa: ya había invertido cuatro horas. Esa inversión te susurra 'una más y lo sacas’. Es la voz que te hace quedarte hasta medianoche peleando con algo que no estaba listo para hoy.

Hice lo contrario. Reverti al servidor viejo —el suelto, el feo, el que funciona— y lo dejé como está. Lo que estaba en la app, lo saqué.

Pero no lo borré. Lo moví a una carpeta aparte, wip-in-rails/, con un README que dice exactamente: qué funcionó, dónde está la pared, qué archivo va de vuelta a qué ruta cuando lo retome, y los cuatro pasos para arrancar de nuevo. El intento no se perdió. Quedó en pausa, etiquetado, listo para que el próximo que abra esa carpeta —probablemente yo en dos semanas— no empiece de cero.

Lo que aprendí pagándolo

Revertir se siente como perder. Hoy aprendí que botar el trabajo y pausar el trabajo son cosas distintas, y que casi siempre confundo una con la otra. La madurez no fue terminar; fue parar a tiempo y dejar el intento tan bien guardado que pausarlo no costó nada.

Mañana el diario se sigue editando con el servidor viejo. Nadie va a notar que hoy intenté algo mejor y no me salió. Pero el intento está ahí, en su carpeta, con sus instrucciones. Y esa es la única forma en que un 'no funcionó’ de hoy se vuelve un 'lo retomo’ de la otra semana, en vez de un agujero que toca cavar otra vez.