Plataforma·MMXXV — MMXXVI
Compusof Tools
Una bitácora de campo que funciona sin señal
- Año
- MMXXV — MMXXVI
- Rol
- Diseño e ingeniería
- En línea
- cst.dotmot.dev
I·Contexto
Los técnicos reportaban incidentes por WhatsApp, muchas veces dentro de sitios sin señal. Las fotos se perdían en el chat y cada reporte se reescribía a mano.
II·Lo que hice
- I
Una base de datos real dentro del navegador, para que nada dependa de la red.
- II
Un asistente que funciona con cualquier proveedor de IA, o sin ninguno.
- III
Reportes que se comparten a WhatsApp con plantillas que cada técnico ajusta.
Cómo está hecho
- SQLite en el navegador
- SQLite compilado a WebAssembly, guardado en el almacenamiento privado del navegador (OPFS) y corriendo en un Worker, para que una consulta nunca congele la pantalla de un teléfono de gama media.
- Consultas reactivas
- Cada consulta sabe qué tablas lee y se repite sola cuando cambian. Los avisos esperan al commit: una transacción revertida no toca la interfaz.
- Migración sin pérdidas
- La app empezó en IndexedDB. La migración copia por páginas, sólo lee de la base vieja, se reanuda si el teléfono se apaga y no se da por terminada hasta que los conteos coinciden.
- IA local
- OpenAI, Gemini, Claude, Groq o la IA integrada de Chrome. Sin ninguno, un modelo abierto corre en la GPU del teléfono con WebGPU y nada de lo que escribe el técnico sale del dispositivo.
- Búsqueda híbrida
- El conocimiento técnico se busca por texto completo y por vectores dentro de la misma SQLite, combinados por fusión de rangos. El texto responde desde el primer momento; los vectores llegan después y sólo mejoran el resultado.
- Fotos y caché
- ImageMagick en WebAssembly reduce cada foto en el teléfono. El service worker nunca guarda respuestas de IA y sólo descarga el motor de modelos la primera vez que se usa.
III·Lo que aprendí
“La primera vez que construí para las personas que tenía al lado.”
Herramientas
Vue 3·
Siguiente obra
Akelarre
Documentos legales, de la captura a la firma