Skip to content

Releases: kerviaHerve/kervia-vault

Kervia-vault v1.8.3

Choose a tag to compare

@github-actions github-actions released this 25 Oct 06:56

Kervia-vault v1.8.3 — 2026-10-25

  • Extension Firefox — XPI signé AMO servi par la webui + mises à jour
    automatiques.
    La webui sert désormais en priorité un XPI signé
    déposé dans le data dir (extension-firefox.xpi à côté de la DB —
    lu à chaque requête, sans redémarrage), en retombant sur l'embarqué
    non signé en son absence. scripts/amo-sign-extension.sh signe via
    l'API AMO (web-ext sign --channel unlisted --id coffre@kervia-vault)
    avec les identifiants JWT lus dans le vault (REST agent — passés à
    web-ext par variables d'environnement, jamais en argv) et dépose
    l'XPI signé au bon endroit : installation permanente dans Firefox
    (fini about:debugging)
    . Le workflow Release sait aussi signer
    via les secrets repo AMO_API_KEY/AMO_API_SECRET s'ils sont
    présents (fallback silencieux sinon, la release n'échoue jamais).
    Le manifest déclare update_url vers
    vault.kervia.ch/ui/extension-updates.json — généré par chaque
    release (version courante → lien de l'XPI servi) : Firefox propose
    la mise à jour tout seul aux installations. Première soumission
    manuelle faite côté AMO (data_collection_permissions :
    authenticationInfo requis — le token d'extension part vers le
    coffre de l'utilisateur ; rien d'autre ne quitte le navigateur).

Install

sudo bash install.sh

The installer verifies the sha256 checksum before installing.
Updates: webui → Settings → Version → Update now (self-update, data untouched).

Full history: CHANGELOG.md

Kervia-vault v1.8.2

Choose a tag to compare

@github-actions github-actions released this 25 Oct 06:19

Kervia-vault v1.8.2 — 2026-10-25

  • Extension Firefox — exigences AMO (publication). Conformité au
    consentement de collecte intégré à Firefox (obligatoire pour toute
    nouvelle extension depuis le 3 nov. 2025) : déclaration
    browser_specific_settings.gecko.data_collection_permissions avec
    authenticationInfo en requis — l'extension transmet le token
    d'extension vers le serveur du coffre (service à compte de
    l'utilisateur) ; rien d'autre ne quitte le navigateur (aucune
    télémétrie, aucune donnée de navigation envoyée, remplissage purement
    local). js/lucide.js construit désormais les SVG via DOMParser
    (document inert) au lieu d'une affectation innerHTML : plus aucun
    avertissement du validateur AMO sur ce point. Avertissement restant,
    sans impact : permissions.request non implémentée sur Firefox pour
    Android 115 — l'extension vise le desktop (raccourcis clavier,
    popup) ; le fallback Android reste la configuration manuelle.

Install

sudo bash install.sh

The installer verifies the sha256 checksum before installing.
Updates: webui → Settings → Version → Update now (self-update, data untouched).

Full history: CHANGELOG.md

Kervia-vault v1.8.1

Choose a tag to compare

@github-actions github-actions released this 22 Oct 13:14

Kervia-vault v1.8.1 — 2026-10-22

  • Extension Firefox — refonte visuelle. Le popup et les réglages
    passent au design system Kervia : tokens exacts de
    kervia.tokens.json v1.0.0 (charbon, citron, menthe), police
    Space Grotesk embarquée (woff2 local, 22 Ko — aucune requête
    externe), anneaux de focus menthe, états survol/actif, défilement
    fin. Uniquement des icônes Lucide (celles de shadcn/ui) en SVG
    inline — zéro image, zéro emoji
    : géométrie exacte de
    lucide-static v0.548.0 (ISC) via js/lucide.js, hydratation
    data-lucide pour les gabarits statiques et helper lucide() pour
    les lignes dynamiques. Écran verrouillé repensé (tuile citron, œil
    afficher/masquer), TOTP en pastille mono menthe, liste avec états
    survol, générateur en carte, toasts avec icône, réglages avec cartes
    titrées et verrouillage auto en contrôle segmenté.
  • Correctif popup. no_token : l'élément #session-url inexistant
    faisait planter le handler avant l'ouverture des paramètres webui ;
    l'onglet s'ouvre désormais via l'URL du serveur configuré.

Install

sudo bash install.sh

The installer verifies the sha256 checksum before installing.
Updates: webui → Settings → Version → Update now (self-update, data untouched).

Full history: CHANGELOG.md

Kervia-vault v1.8.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 11:31

Kervia-vault v1.8.0 — 2026-10-22

  • Extension Firefox pour le Coffre. Remplis tes sites directement
    depuis ton coffre : l'extension détecte les formulaires et y colle
    identifiant, mot de passe et code TOTP — uniquement sur ton clic
    (bouton « Remplir » ou Ctrl+Shift+L ; Ctrl+Shift+K ouvre le
    coffre). Aucune interface n'est jamais injectée dans les pages —
    exactement le comportement des extensions classiques qui cassait la
    webui est exclu par conception. Popup : déverrouillage, éléments
    correspondant à la page, recherche, copie (effacement presse-papier
    30 s), TOTP vivant, générateur, synchronisation, auto-lock. Le coffre
    déverrouillé ne vit qu'en mémoire du processus d'arrière-plan.
  • Token d'extension dédié (nouvelle surface serveur minimale).
    Paramètres → Extension : Créer le token (affiché une seule fois,
    seul son hash Argon2id est stocké — même schéma que les clés agents),
    statut dernière utilisation, révocation, régénération. Le token
    n'ouvre qu'une route : GET /ext/coffre (Bearer) qui renvoie
    enveloppe + blobs chiffrés en un aller-retour. Aucune surface admin,
    aucune surface agent (/v1, MCP) — testé, tripwire intact. Sans le
    mot de passe maître, le token ne révèle rien : zero-knowledge
    préservé de bout en bout. Ce modèle remplace la piste « session
    webui » abandonnée : SameSite=Strict rend le cookie inutilisable
    depuis une extension (Firefox strippe même un header Cookie manuel —
    vérifié).
  • Installable depuis la webui. L'XPI est construit par CI, embarqué
    dans le binaire (servi par la carte Paramètres → Extension) et joint
    à la release GitHub. Installation : Télécharger l'extension →
    ouvrir le fichier dans Firefox. Sans signature AMO, Firefox le
    charge comme extension temporaire (about:debugging) ; la signature
    one-click (compte AMO requis) sera ajoutée en option.
  • Validation. Go : tests du cycle de vie complet (création → statut
    → usage → 401s, clé agent refusée sur /ext, token refusé sur /admin,
    révocation) + forme /ext/coffre. Extension : crypto vérifiée (même
    schéma que la webui, mauvais mot de passe → message clair) ;
    E2E sur vrai Firefox 158.0.1 (macOS, Apple Silicon) — install
    XPI, auto-déverrouillage par token (3 éléments déchiffrés),
    correspondance URL → formulaire, remplissage complet vérifié champ
    par champ + soumission. E2E webui complet toujours 21/21.

Install

sudo bash install.sh

The installer verifies the sha256 checksum before installing.
Updates: webui → Settings → Version → Update now (self-update, data untouched).

Full history: CHANGELOG.md

Kervia-vault v1.7.3

Choose a tag to compare

@github-actions github-actions released this 22 Oct 09:27

Kervia-vault v1.7.3 — 2026-10-22

  • Perf gros coffres (6 500 items et plus). Le coffre rendait TOUTES
    les lignes d'un coup (6 500 lignes DOM) et chaque ligne avec TOTP
    montait son propre timer — des centaines d'intervalles par seconde
    saturaient le navigateur ; chaque sauvegarde re-téléchargeait et
    re-déchiffrait l'intégralité du coffre. Tout cela est corrigé :
    • Pagination de la liste : 100 lignes rendues, bouton « Afficher
      les suivants » par paliers de 500 — le DOM reste léger quel que
      soit la taille du coffre.
    • Un SEUL timer TOTP pour toute la page (ticker partagé) au lieu
      d'un interval par ligne.
    • Sauvegarde/corbeille = mise à jour locale de l'élément : plus
      de re-téléchargement + re-décryptage des 6 500 items à chaque
      enregistrement. Le rechargement complet reste pour l'import en lot.
    • Recherche précalculée (_search indexé au chargement) et
      filtres/dossiers/tags mémoïsés ; spinner « Chargement du coffre… »
      pendant le déverrouillage.
    • Mesuré sur un coffre de 3 000 items (chromium) : déverrouillage
      complet 260 ms, clic « Nouveau » → picker 138 ms, recherche 18 ms,
      création complète d'un item 533 ms, ouverture d'un item 86 ms.
      E2E complet 21/21 toujours vert.

Install

sudo bash install.sh

The installer verifies the sha256 checksum before installing.
Updates: webui → Settings → Version → Update now (self-update, data untouched).

Full history: CHANGELOG.md

Kervia-vault v1.7.2

Choose a tag to compare

@github-actions github-actions released this 22 Oct 08:34

Kervia-vault v1.7.2 — 2026-10-22

  • Dialogs : peinture instantanée, zéro animation. Dernier maillon
    du bug « premier clic → flou, deuxième clic → ça marche » (Firefox
    158/macOS) : l'animation d'entrée popin partait de opacity: 0 —
    dans cet environnement, la progression vers l'état final ne se
    peignait pas au premier rendu (GPU/extension), laissant le contenu
    invisible derrière le scrim. Toutes les animations des dialogs
    (entrée ET sortie) sont retirées : l'overlay et le contenu n'ont plus
    JAMAIS d'état initial invisible — ils se peignent d'emblée à l'état
    final. Structurellement impossible d'avoir un dialog invisible ou un
    scrim suspendu, quel que soit l'environnement. Le blur du scrim et
    l'ombrage du panneau restent (statiques). Validé : E2E chromium
    complet 21/21, Firefox 158.0.1 réel — premier clic : dialog peint
    immédiatement (animationName: none, opacité 1), fermetures Échap et
    × en boucle propres.

Install

sudo bash install.sh

The installer verifies the sha256 checksum before installing.
Updates: webui → Settings → Version → Update now (self-update, data untouched).

Full history: CHANGELOG.md

Kervia-vault v1.7.1

Choose a tag to compare

@github-actions github-actions released this 22 Oct 08:24

Kervia-vault v1.7.1 — 2026-10-22

  • Robustesse dialogs : plus jamais de page floue figée. Les overlays
    Radix attendaient l'événement animationend des animations de sortie
    pour se démonter — si cet événement ne part jamais (extension du
    navigateur qui interfère, quirk de rendu), le scrim restait suspendu à
    vie : écran flou et page morte, sans aucune erreur console. Les
    animations de sortie sont retirées : Radix voit animationName: none
    et démonte immédiatement à la fermeture. Les animations d'entrée sont
    conservées. Validé sur Firefox 158.0.1 réel (binaire officiel via
    geckodriver) : fermetures Escape et bouton × en boucle, overlay
    proprement retiré à chaque fois ; E2E chromium complet toujours 21/21.
  • Filet de sécurité : écran d'erreur au lieu de page blanche. Un
    boundary React englobe l'application — tout crash de rendu affiche
    désormais une carte claire avec le message d'erreur et un bouton
    « Recharger » (auto-contenu, aucun import : le crash peut venir de
    n'importe quel module). Les données ne risquent jamais rien : tout est
    chiffré côté serveur.
  • Diagnostic coffre (informatif) : le « flou bloquant » constaté sur
    un poste (Firefox 158/macOS, profil normal) ne se reproduit ni en
    fenêtre privée, ni sur le même Firefox officiel headless avec
    l'artefact release exact — la cause est une extension du navigateur
    (probablement le gestionnaire de mots de passe) qui injecte son
    autofill dans les dialogs. Exclure vault.kervia.ch dans les réglages
    de l'extension.

Install

sudo bash install.sh

The installer verifies the sha256 checksum before installing.
Updates: webui → Settings → Version → Update now (self-update, data untouched).

Full history: CHANGELOG.md

Kervia-vault v1.7.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 07:48

Kervia-vault v1.7.0 — 2026-10-22

  • Le Coffre v2 — un vrai gestionnaire de mots de passe. Le coffre
    personnel (zero-knowledge, agents JAMAIS accès — inchangé) passe du
    « login + note » à une organisation type 1Password : 14 modèles
    d'éléments, imports Bitwarden / 1Password / CSV et TOTP avancé.
    Tout reste côté navigateur : le serveur ne voit toujours que des
    blobs AES-256-GCM opaques — aucune modification de l'API ni du
    schéma serveur
    , aucune nouvelle dépendance npm (WebCrypto +
    DecompressionStream natifs).
    • 14 modèles : Identifiant, Note, Carte bancaire, Compte bancaire,
      Identité, Passeport, Wallet crypto, Clé SSH, Serveur, Base de
      données, Wi-Fi, Licence logicielle, Abonnement/Membre, Code TOTP.
      Chaque modèle pré-remplit ses champs (numéro masqué, expiration,
      CVV, IBAN, seed…) ; des champs personnalisés (7 types : texte,
      secret, TOTP, lien, mois, date, multiligne) complètent n'importe
      quel élément ; étiquettes (tags) et dossiers.
    • Imports (détection automatique du format) : Bitwarden /
      Vaultwarden JSON (identifiants, notes, cartes, identités,
      champs personnalisés), 1Password .1pux (ZIP officiel, lu par
      DecompressionStream natif — zip zéro dépendance) et 1PIF
      (legacy 1Password 7), CSV de Chrome, Firefox, Safari, LastPass,
      Dashlane, KeePass, Proton, NordPass… (colonnes auto-détectées,
      cartes bancaires reconnues), et le format Kervia (round-trip
      complet). Exports : Kervia JSON (fidèle à 100 %) et Bitwarden
      JSON
      (ré-importable dans Vaultwarden).
    • TOTP v2 : plusieurs seeds par élément, URI otpauth://
      complètes (SHA-1/SHA-256/SHA-512, 6-8 chiffres, périodes 30/60 s)
      validées contre les vecteurs RFC 6238 ; code vivant en liste et en
      vue détaillée.
    • Migration douce : les items v1 existants sont normalisés v2 à
      la lecture et réécrits au prochain enregistrement — les vieux
      blobs restent lisibles pour toujours, aucune action requise.
    • E2E navigateur (chromium headless) : 21 étapes vertes —
      création, 14 modèles, carte bancaire (sous-titre •••• 4242), filtre
      par catégorie, import CSV + Bitwarden, TOTP SHA-256 8 chiffres
      vivant, export Kervia + round-trip, verrouillage/déverrouillage.
      Suite lib Node : 31 tests (schéma, migration, imports, exports,
      vecteurs RFC 6238).

Install

sudo bash install.sh

The installer verifies the sha256 checksum before installing.
Updates: webui → Settings → Version → Update now (self-update, data untouched).

Full history: CHANGELOG.md

Kervia-vault v1.6.3

Choose a tag to compare

@github-actions github-actions released this 22 Oct 07:15

Kervia-vault v1.6.3 — 2026-10-22

  • Coffre réparé : écran blanc au premier clic. Le coffre personnel était
    cassé depuis sa naissance (v1.2.0) : les cinq dialogs (nouvel item,
    générateur, import, export, réglages) étaient rendus sans le <Dialog>
    Root de Radix — Radix jette « must be used within Dialog » au premier
    rendu et React démonte l'arbre complet. Résultat : déverrouiller le
    coffre marchait, mais cliquer « Nouveau » (ou tout autre bouton ouvrant
    un dialog) provoquait un écran blanc. Personne ne l'avait vu car la
    validation E2E de l'époque couvrait la crypto (Node/WebCrypto) et les
    API (HTTP) — jamais l'UI au clic. Chaque dialog est désormais enveloppé
    dans son <Dialog open onOpenChange>, le même pattern que les pages
    secrets/agents. Validé par un parcours complet en navigateur headless :
    création du coffre, nouvel item, vue détaillée, générateur, import,
    export, réglages, verrouillage/déverrouillage, item TOTP — 12/12 verts,
    zéro erreur console.

Install

sudo bash install.sh

The installer verifies the sha256 checksum before installing.
Updates: webui → Settings → Version → Update now (self-update, data untouched).

Full history: CHANGELOG.md

Kervia-vault v1.6.2

Choose a tag to compare

@github-actions github-actions released this 22 Oct 06:30

Kervia-vault v1.6.2 — 2026-10-22

  • Journal des versions dans Paramètres. Un panneau à droite affiche les
    trois dernières releases (tag, date, notes complètes) — collant
    (sticky), déroulant, masqué sur petit écran. La release la plus récente
    porte le badge « Mise à jour » quand elle n'est pas encore installée.
    Un seul fetch côté serveur alimente le journal ET les notes de l'update
    à venir (recent[] dans le statut, notes dérivé) ; URL overridable
    (KERVIA_VAULT_RECENT_URL), tolérant aux pannes — pas de réponse =
    pas de panneau, jamais un check cassé.

Install

sudo bash install.sh

The installer verifies the sha256 checksum before installing.
Updates: webui → Settings → Version → Update now (self-update, data untouched).

Full history: CHANGELOG.md