diff --git a/docs/contacts-plan.md b/docs/contacts-plan.md index e36617d..778514e 100644 --- a/docs/contacts-plan.md +++ b/docs/contacts-plan.md @@ -167,11 +167,18 @@ address book), though a lightweight mutual-add is optional polish. online/offline/in-room+Join. Bootstrap caveat: a friend with no saved addr shows offline until one ticket-based call seeds `last_addr`. -### P5 — Recents + UI — UI status/Join DONE 2026-06-15 (B2); recents PENDING +### P5 — Recents + UI — UI status/Join + room labels DONE; recents + add-from-room PENDING Friends-list UI with status (online / offline / in-room + Join) + Invisible/Normal/ -Discoverable controls in Settings — **DONE (B2)**. **STILL pending:** local recents -list (cosmetic room tags) and a cosmetic **room name/label** (the presence Pong's -`name` is empty until labels exist), plus an **add-friend-from-room** button. +Discoverable controls — **DONE (B2)**; the Friends panel + presence picker moved to +the **home screen** 2026-06-16 (`173585f`/`ddc78f1`/`be42941`). **Cosmetic room +labels — DONE 2026-06-16 (`4227ecc`):** an optional "Room name" field on Create mints +a ticket carrying the label (`PeerSpeakTicket.name`, `#[serde(default)]` → backward/ +forward compatible; `restamp` preserves it, `label_of` reads it); every member sets +`current_room.name` from the ticket → presence reports "in " + the room header +shows it. Sanitized via `sanitize_name` on mint + display. ⚠️ pure seam unit-tested + +home field screenshot-verified; in-room header + friend-side "in " presence need +a live/2-machine confirm. **STILL pending:** local **recents** list (cosmetic room +tags — now that labels exist they'd be meaningful) + an **add-friend-from-room** button. ### P6 — Opt-in discovery — Small Wire the *discoverable* state to n0 DNS publish (default off, time-boxed). Lookup