From 80aca8a29f2bf9535cdc52e1a342d57b10dc5c28 Mon Sep 17 00:00:00 2001 From: randogoth Date: Thu, 8 Oct 2026 22:12:36 +0300 Subject: [PATCH] feat: refuse to learn a first-contact key from an unpinned server MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds an opt-in "require a pinned server" setting that gates the one RESOLVE path that currently trusts whatever key a server hands back for a brand-new, hand-typed address — self-certifying addresses and already-known contacts are structurally exempt. A refusal shows an inline recovery card in compose to fetch, compare, and pin the key without losing the draft. Also closes two adjacent gaps: a self-certifying address could silently overwrite an already-trusted contact's key (now asks, showing both fingerprints), and a contact's detail view now names its server and pin state. --- web/index.html | 26 ++++++++ web/js/app.js | 159 +++++++++++++++++++++++++++++++++++++++++++++--- web/js/store.js | 12 ++++ web/style.css | 5 ++ 4 files changed, 192 insertions(+), 10 deletions(-) diff --git a/web/index.html b/web/index.html index 41abf16..0e3bcc1 100644 --- a/web/index.html +++ b/web/index.html @@ -143,6 +143,21 @@ +