La aplicación de escritorio combina una interfaz en React y TypeScript con un núcleo en Rust mediante Tauri 2: la interfaz se pinta en el WebView del sistema y el lado nativo gestiona el actualizador, el puente con la extensión y las integraciones de plataforma. La persistencia de la bóveda corre sobre wa-sqlite con un sobre de esquema versionado.
La extensión del navegador es una compilación TypeScript de Manifest V3 para Chromium y Firefox, y la aplicación de Android es un proyecto Tauri Android con vinculación biométrica por AndroidKeyStore. El host de nativeMessaging y el puente IPC viven en el workspace de Rust, donde la lógica del token de emparejamiento, el arrendamiento y el cifrado de tramas es más fácil de auditar.
El propio sitio es HTML plano subido al repositorio, sin paso de compilación para el despliegue, con scripts generadores y compuertas de calidad guardados junto a las páginas que producen.
Comprobación de tipos y 2204 pruebas unitarias
248 archivos de prueba con umbrales de cobertura exigidos: 90 % de líneas, 90 % de sentencias, 85 % de funciones y 80 % de ramas. Una regresión por debajo del umbral hace fallar la compilación, no un panel.
Compuertas de fuzzing, mutación y seguridad
Las pruebas de propiedades con fast-check golpean las rutas del importador, de las copias de seguridad y de los adjuntos con entradas mal formadas. Las pruebas de mutación con Stryker califican la calidad de las pruebas. Compuertas específicas comprueban el endurecimiento de la CSP, los artefactos de versión, los marcadores de depuración y los secretos.
Análisis de la cadena de suministro en CI
CodeQL analiza el código, OpenSSF Scorecard califica la postura del repositorio, gitleaks bloquea los secretos que se suban, y la política de dependencias falla ante cualquier aviso alto o crítico, con aceptación documentada para el resto.