05 //
GitVanguard
Controlador Git TUI de alto rendimiento para Linux. Desarrollado en Rust para máxima velocidad de respuesta sin sobrecargas de recolección de basura, integrando Sentinel Shield (escáner anti-fugas de credenciales), Time Machine (explorador visual del reflog con restauración en 1 tecla) y soporte integral de Git Worktrees.
╭────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ GITVANGUARD v0.1 │ [1. Archivos] │ 2. Ramas │ 3. Historial │ 4. Worktrees │ 5. Stash │ 6. Time Machine │
├──────────────────────────────────────────┬─────────────────────────────────────────────────────────────┤
│ Cambios de Trabajo [Unstaged: 2] │ Inspección de Diferencias (Diff) │
│ * [M] src/main.rs │ 1 │ diff --git a/src/main.rs b/src/main.rs │
│ [?] .env.local │ 2 │ --- a/src/main.rs │
│ │ 3 │ +++ b/src/main.rs │
├──────────────────────────────────────────┤ 4 │ @@ -45,3 +45,9 @@ │
│ Cambios Preparados [Staged: 1] │ 5 │ // Sentinel Shield: verificación activa │
│ * [M] src/sentinel.rs │ 6 │ +pub fn scan_diff(diff: &str) -> Vec<Finding> │
│ │ 7 │ + let compiled = get_compiled_rules(); │
╰──────────────────────────────────────────┴─────────────────────────────────────────────────────────────╯
Tab: Pestaña │ Space: Stage/Checkout │ c: Commit │ C: Conv. Commit │ U: Rebobinar │ q: Salir
Ingeniería Superior para Desarrolladores Linux
Construido pensando en flujos de trabajo profesionales donde la velocidad, la seguridad del código fuente y la ergonomía del teclado son fundamentales.
Sentinel Shield
Escáner heurístico pre-commit que inspecciona en tiempo real diffs preparados para interceptar claves OpenAI, AWS, GitHub PATs, llaves RSA y ficheros .env antes de que salgan a la luz.
Time Machine (Reflog)
Navega por la historia completa de operaciones de Git (rebases fallidos, resets o merges). Previsualiza el diff exacto de cada salto en el tiempo y rebobina el repositorio con la tecla U.
Worktrees Command Hub
Gestión de primera clase para Git Worktrees. Crea árboles de trabajo paralelos para revisar PRs o probar ramas sin perder tu estado de trabajo local en la terminal activa.
Rendimiento en Rust
Desarrollado sobre ratatui y crossterm. Renderiza frames en menos de 5 ms, inicia en frío en <10 ms y consume una fracción de memoria en repositorios con decenas de miles de commits.
Conventional Commits
Asistente modal guiado paso a paso para tipos estándar (feat, fix, perf, refactor), ámbitos contextuales y contador de caracteres con aviso de la regla 50/72.
Zombie Branch Pruner
Detecta automáticamente qué ramas locales ya han sido fusionadas e incorporadas en main o master, permitiendo purgarlas en lote con confirmación protegida.
Especificaciones Técnicas y Arquitectura
| Criterio Técnico | Implementación en GitVanguard | Beneficio Operativo para el Desarrollador |
|---|---|---|
| Tiempo de Frame & Latencia | Ultra-rápido (< 5 ms) sin pausas de runtime ni recolección de basura. | Fluidez inmediata incluso en repositorios masivos con decenas de miles de commits. |
| Prevención de Fugas de Secretos | Sentinel Shield nativo con inspección estricta de entropía y firmas criptográficas. | Detección previa al commit de claves AWS, OpenAI, GitHub tokens y variables sensibles. |
| Navegación Histórica de Reflog | Time Machine con previsualización de diffs y Undo en 1 tecla. | Recuperación instantánea de ramas eliminadas, rebases fallidos o resets accidentales. |
| Soporte Git Worktrees | Centro de mando nativo con vista dedicada para crear, vincular y desvincular. | Trabajo paralelo en múltiples ramas sin necesidad de stashes ni cambios de contexto disruptivos. |
| Asistente Conventional Commits | Wizard semántico guiado con contador estándar de 50/72 caracteres. | Historial de git limpio, ordenado y compatible con generadores automáticos de changelog. |
| Integración con el Sistema Linux | Soporte nativo para Wayland (wl-copy), X11 (xclip) y terminales OSC 52. |
Copia directa de hashes, mensajes y rutas sin dependencias gráficas externas. |
Hoja de Referencia de Atajos (Cheat Sheet)
| Tab / 1 .. 6 | Cambiar entre las 6 pestañas principales (Archivos, Ramas, Commits, Worktrees, Stash, Time Machine) |
| j / k (o ↓ / ↑) | Mover el cursor verticalmente por la lista de elementos activos |
| h / l | Alternar foco entre cambios Unstaged y Staged en el panel de Archivos |
| Space | Preparar o despreparar archivo (Stage/Unstage) o cambiar de rama activa (Checkout) |
| a / u | Preparar todos los cambios (git add -A) o despreparar todos (git reset) |
| c / C | Commit rápido estándar / Asistente guiado Conventional Commits |
| p / P | Ejecutar git pull / git push |
| f | Sincronizar remotos en segundo plano (git fetch --all --prune) |
| z | Zombie Branch Pruner: detectar y purgar ramas locales ya integradas |
| U | Time Machine Restore: rebobinar el repositorio al registro seleccionado del reflog |
| ? / q | Abrir modal de ayuda contextual / Salir de GitVanguard restaurando la terminal |
Compilación Manual y Filosofía Técnica
GitVanguard prescinde de librerías intermedias que reimplementan Git parcialmente (como libgit2), comunicándose de manera asíncrona mediante subprocesos POSIX optimizados directamente con el binario git de tu distribución Linux. Esto asegura compatibilidad al 100% con tus llaves SSH, claves criptográficas GPG de firma de commits, filtros Git LFS y configuraciones de ~/.gitconfig.
# Compilación nativa desde el código fuente
git clone https://github.com/Ismael-Sallami/git-vanguard.git
cd git-vanguard
cargo build --release
cp target/release/vanguard ~/.local/bin/
ln -sf ~/.local/bin/vanguard ~/.local/bin/gv