🌪️ ShadowTempest — Segundo Cerebro Local-First en Flutter & Dart

El Tridente de Obsidian + Notion + Google Keep en un Solo Motor Móvil

ShadowTempest es una aplicación multiplataforma (Android, iOS, Desktop) de gestión de conocimiento personal (second brain) desarrollada en Flutter 3.44 y Dart 3.12. Diseñada bajo la filosofía local-first y cifrado de conocimiento cero (zero-knowledge), une la soberanía de notas en Markdown de Obsidian, los comandos / y bloques de Notion, y la captura fugaz de Google Keep.

  • 💻 Repositorio GitHub: github.com/Alecwce/ShadowTempest (Privado)
  • 🛡️ Seguridad: Cifrado militar AES-256-GCM + Argon2id
  • 🧪 Testing: 63 pruebas unitarias e integración aprobadas

🏛️ Fusión de Modelos PKM

InfluenciaFuncionalidad Adoptada en ShadowTempest
ObsidianNotas en Markdown estándar, enlaces bidireccionales [[wikilinks]] y propiedad local de archivos.
NotionMenú emergente de barra inclinada (/heading, /todo, /callout) y organización por bloques.
Google KeepWidgets de pantalla de inicio y botón de captura en 1 toque con etiquetas rápidas sin fricción.

🔒 Arquitectura de Seguridad y Sincronización

flowchart TD
    User["👤 Usuario"] <--> Editor["📱 Interfaz Flutter (Editor de Bloques + Markdown)"]
    Editor <--> Riverpod["⚡ Gestor de Estado (flutter_riverpod)"]
    
    subgraph LocalStorage["💾 Almacenamiento Local (Dispositivo)"]
        Drift["🗃️ Drift ORM + SQLite FTS5 (Búsqueda Instantánea)"]
        Crypto["🔐 Módulo Criptográfico (AES-256-GCM + Argon2id)"]
    end

    Riverpod <--> Drift
    Drift <--> Crypto
    Crypto <-->|Payloads Cifrados (Zero-Knowledge)| SupabaseCloud[("☁️ Supabase Cloud Sync (PostgreSQL)")]
  1. Cifrado Zero-Knowledge en el Dispositivo:
    • La clave de cifrado se deriva de la contraseña maestra del usuario mediante Argon2id.
    • Los datos se cifran con AES-256-GCM antes de salir del dispositivo; ni siquiera los administradores de la base de datos en Supabase pueden leer el contenido de las notas.
  2. Búsqueda FTS5 en Memoria Nativa:
    • Implementada mediante Drift ORM sobre SQLite FTS5, permitiendo búsquedas de texto completo en milisegundos sin conexión a internet.

🛠️ Stack Tecnológico

MóduloTecnología
Framework UIFlutter 3.44.8
LenguajeDart 3.12.2 Strict
Base de Datos LocalDrift ORM + SQLite FTS5
Gestión de Estadoflutter_riverpod
Criptografíacryptography (AES-256-GCM, Argon2id)
Sincronización CloudSupabase Cloud (PostgreSQL)

🧭 Conexiones Internas