🚀 GitFacil — Plugin Oficial de Obsidian (v1.8.15)

Publicado en la Tienda Oficial de Obsidian

GitFacil está disponible oficialmente en el directorio de plugins de la comunidad de Obsidian:


🎯 Propósito del Proyecto

Ofrecer sincronización de bóvedas de Obsidian con GitHub en un solo clic, pensado tanto para usuarios no técnicos como para desarrolladores que desean sincronizar sus notas entre PC (Linux, Windows, macOS) y Móvil (Android / iOS) sin usar la terminal ni sufrir conflictos de fusión.


🏗️ Arquitectura Dual-Engine (Escritorio + Móvil)

flowchart TD
    subgraph UI["🎨 Interfaz de Usuario en Obsidian"]
        Ribbon["🚀 Icono Ribbon\n(Sync 1-Clic + Contador de Cambios)"]
        Status["📊 Panel de Estado (GitStatusView)\n(Checkboxes + Pull + Últimos 5 Commits)"]
        Wizard["🪄 Asistente Paso a Paso\n(Setup Wizard & Clonador Móvil)"]
        Settings["⚙️ Ajustes\n(Token con Ojito + Auto-Sync + Idioma ES/EN)"]
    end

    subgraph Core["🧠 Motor de Sincronización (main.ts)"]
        PlatformCheck{"¿Plataforma?"}
    end

    subgraph Desktop["💻 Motor Escritorio (gitHelper.ts)"]
        NativeGit["Git Nativo (execFile)\n+ Auth Header In-Memory"]
        GHCli["GitHub CLI (gh)\nCreación automática de repos"]
    end

    subgraph Mobile["📱 Motor Móvil (mobileGit.ts)"]
        IsoGit["isomorphic-git\n100% JS puro sin binarios nativos"]
        FsAdapter["ObsidianIsomorphicFsAdapter\n(Puente con app.vault.adapter)"]
        HttpAdapter["obsidianHttpClient\n(Puente con requestUrl sin CORS)"]
        SmartMerge["smartMergeDriver\n(Resolución automática de conflictos)"]
    end

    UI --> PlatformCheck
    PlatformCheck -->|Platform.isDesktop = true| Desktop
    PlatformCheck -->|Platform.isDesktop = false| Mobile
    IsoGit --> FsAdapter
    IsoGit --> HttpAdapter
    IsoGit --> SmartMerge

✨ Características Principales (Hasta v1.8.15)

1. 📜 Historial Visual de Commits Recientes (v1.8.15)

  • Muestra en la parte inferior del panel lateral de Estado de Git (GitStatusView) los últimos 5 commits registrados en la rama actual.
  • Incluye hash abreviado, mensaje del commit y tiempo relativo (“hace 5 min”, “hace 2 h”).
  • Permanece visible incluso cuando la bóveda está en estado “Todo limpio ✅”, dando certeza visual inmediata de que los cambios están respaldados.
  • Funciona en escritorio mediante git log y en móvil mediante git.log de isomorphic-git + cálculo relativo puro (formatRelativeTime).

2. 🔄 Auto-Sync al Reanudar la Aplicación y Contador en Ribbon (v1.8.14)

  • Sincronización al despertar (visibilitychange): Detecta cuando vuelves a abrir o desbloquear Obsidian en el celular o la PC (con cooldown inteligente de 2 minutos) y descarga/sube los cambios automáticamente.
  • Badge / Tooltip dinámico en el icono del cohete: Muestra cuántos archivos tienes pendientes por sincronizar (GitFacil (3 cambios pendientes)).

3. 📶 Detección Offline Inteligente y Seguridad de Token (v1.8.13)

  • Modo Sin Conexión: Distingue entre errores de red (ENOTFOUND, ETIMEDOUT, caída de Wi-Fi) y errores reales de Git. Si no hay internet, guarda el commit localmente y avisa con tranquilidad que se subirá al recuperar la conexión.
  • Token PAT Enmascarado: Campo tipo contraseña con botón de ojito (👁️ / 🙈) para mostrar u ocultar el token de GitHub y redacción automática de secretos (redactSecrets) en cualquier log de error.

4. 🛡️ Resolución Automática de Conflictos en Móvil (v1.8.11 – v1.8.12)

  • smartMergeDriver: Si un archivo fue editado tanto en PC como en Android, fusiona automáticamente las líneas limpias o conserva ambas versiones sin abortar la sincronización ni corromper el árbol de trabajo.
  • Checkout Forzado Seguro: Sobrescribe limpiamente archivos de configuración inicial al clonar bóvedas en móvil evitando CheckoutConflictError.
  • Filtro de Archivos Internos: Ignora automáticamente data.json del propio plugin y workspace-mobile.json para evitar falsos positivos de cambios pendientes.

5. 🪄 Asistente de Configuración y Anti-Pánico

  • Setup Wizard: Guía paso a paso para verificar Git, configurar nombre/correo, generar token en 1 clic y crear o vincular el repositorio remoto.
  • Aviso Anti-Pánico: Si un push es rechazado porque hay cambios nuevos en la nube, ofrece un botón directo 🔄 Sincronizar con GitHub que alinea el historial (pull --rebase) sin perder ni un carácter.

🛠️ Flujo de Desarrollo, Pruebas y Lanzamiento

# 1. Ir al directorio del proyecto
cd /home/alexwce/Documentos/dev/obsidian-git-facil
 
# 2. Ejecutar linter, verificación de tipos y los 69 tests en Vitest
pnpm biome check --write .
pnpm run typecheck
pnpm test
 
# 3. Compilar bundle de producción
pnpm run build
 
# 4. Desplegar directamente en la bóveda local ryukami-labs
node scripts/deploy.mjs /home/alexwce/Documentos/Obsidian/ryukami-labs
 
# 5. Validar cumplimiento estricto de la tienda oficial de Obsidian
pnpm run validate:submission

🔗 Notas y Skills Relacionadas en la Bóveda