From 79c1579e926000bc6baa36b05c31f08a5c014972 Mon Sep 17 00:00:00 2001 From: Strycher Date: Wed, 1 Jul 2026 03:44:04 -0400 Subject: [PATCH] docs(#164): blocked contacts stay visible with a blocked indicator Ben's UX call: do NOT hide blocked contacts to a settings-only list. Keep them in Contacts/Discovery with a red block icon + muted styling + inline unblock. A 'hide blocked entirely' toggle is a post-implementation follow-on. Co-Authored-By: Claude Opus 4.8 --- docs/architecture/block-contract-as-built.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/architecture/block-contract-as-built.md b/docs/architecture/block-contract-as-built.md index e412eb3..4f1c7d8 100644 --- a/docs/architecture/block-contract-as-built.md +++ b/docs/architecture/block-contract-as-built.md @@ -66,8 +66,8 @@ API: `isBlocked(keyHex)`, `isNameBlocked(name)`, `block(keyHex)`, `unblock(keyHe | Surface | Rule | |---|---| | Incoming DM | drop + suppress notification when `senderKey ∈ blockedKeys` (on Offband, firmware already dropped it at receive — §7) | -| Advert | suppress the new-advert notification for `blockedKeys`; exclude from Contacts + Discovery. **Do NOT discard the advert** — the contact-name update must keep flowing (self-heal, §5) | -| Contacts / Discovery lists | filter out `blockedKeys` | +| Advert | suppress the new-advert notification for `blockedKeys`. **Do NOT discard the advert** — the contact-name update must keep flowing (self-heal, §5) | +| Contacts / Discovery lists | **keep blocked entries VISIBLE** with a clear blocked indicator — a red block icon (`Icons.block`, circle-with-slash) + muted/greyed styling. **Do NOT hide them.** Inline unblock available. *(A "hide blocked entirely" toggle is a deliberate post-implementation follow-on, not v1.)* | | Channel message | hide per the resolution rule in §5, OR when the channel is muted (§6) | Blocking hides, never deletes history. Unblock restores. @@ -188,6 +188,7 @@ Mirrors the `0xC1`/`offband_caps` capability pattern (`supportsOffbandGps`). Val - **Entry points:** contact context menu, chat overflow, Discovery item, channel message long-press (name-based, labeled), channel header/list (mute). +- **Blocked contacts stay in-list** with a red block badge + muted styling (not hidden); unblock inline from the tile. A future "hide blocked entirely" setting is a post-impl follow-on. - **Management:** Settings → **Blocked** — list (name if known + short pubkey), unblock, muted-channels list, and an indicator of whether firmware offload/sync is active on the current radio.