Arquitectura
Arquitectura
TermPuzzle es una app desktop-first. Tus proyectos, terminales e historial viven en tu máquina — no en una nube en la que tengas que confiar.
Desktop-first
TermPuzzle corre como una aplicación de escritorio nativa, no una web app ni un servicio en la nube. Funciona 100% offline: tras una validación de licencia (válida offline por 14 días), no se necesita conexión. No hay un servidor que guarde tu código.
Electron
La app está construida sobre Electron, un solo codebase para macOS, Windows y Linux con integración nativa del SO — gestión de ventanas, el llavero del sistema para guardar credenciales de forma segura, y auto-updates vía un updater integrado.
Terminales node-pty
Cada terminal es una pseudo-terminal (PTY) real vía node-pty — el mismo primitivo que usa una terminal nativa. Tus shells, dev servers y agentes de IA corren como procesos genuinos, así que todo lo que funciona en tu terminal funciona en TermPuzzle.
SQLite (local)
Proyectos, specs de terminal, grupos, crew y ajustes viven en una base SQLite local en tu máquina. Es la fuente de verdad para el restore, y nunca sale de tu dispositivo salvo que actives explícitamente el Cloud Sync — que lleva solo configuración, nunca tu código, salida de terminal ni conversaciones de IA.
Motor de Workspace Restore
El motor de restore reconstruye un workspace entero desde su spec: relanza los comandos de terminal, reabre el editor en posición, restaura las ventanas de agente y monta los proyectos de forma perezosa al arrancar para que el startup sea rápido. Las rutas que no existen en una máquina nueva se re-mapean en vez de fallar.
Estado operativo y Project Pulse
TermPuzzle rastrea el estado vivo de cada proceso — starting, running, idle, error — y lo agrega en Project Pulse, un score de salud 0–100. Un servicio caído se detecta, se muestra y puede recuperarse automáticamente, con cada lanzamiento, recuperación y push registrado en la Timeline del proyecto.
Workspace Spec
Todo lo anterior se describe con un archivo simple y commiteable. Mira el Workspace Spec para el formato.