From dd5dd1e45e26fd981222a3c4a5ba125443621bf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Sun, 13 Sep 2026 14:12:44 +0200 Subject: [PATCH] docs(nav): correct two comments about utilities and manage invites The More hub carries feature destinations only; Settings and Notifications sit in the top-bar menu. The browser-only refusal for a manage invitation comes from the transport check, which runs before and independently of the second-factor step-up. --- src/components/layout/bottom-nav.tsx | 7 ++++--- src/components/settings/access/grant-invite-card.tsx | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/components/layout/bottom-nav.tsx b/src/components/layout/bottom-nav.tsx index cef603a66..8990eb73d 100644 --- a/src/components/layout/bottom-nav.tsx +++ b/src/components/layout/bottom-nav.tsx @@ -56,9 +56,10 @@ interface NavLink { // (`nav-model.ts`), the same ordered list the desktop sidebar renders. // The bar keeps its ergonomic 5-slot shape, but the hub is computed by the // model's `mobileMoreHubDestinations()` (feature list minus the primary -// slots, plus the shared utility tail) — so the two surfaces tell one story -// instead of two hand-curated ones that drift, and the headline invariant -// is a tested model function rather than inline bar logic. +// slots; Settings and Notifications live in the top-bar menu) — so the two +// surfaces tell one story instead of two hand-curated ones that drift, +// and the headline invariant is a tested model function rather than +// inline bar logic. // The Meds slot is module-gated exactly like the Insights slot below: // `/medications` renders nothing when the medications module is off, so a // pinned tab would be a visible control over a blank page. diff --git a/src/components/settings/access/grant-invite-card.tsx b/src/components/settings/access/grant-invite-card.tsx index fbb0872f4..3b86108ea 100644 --- a/src/components/settings/access/grant-invite-card.tsx +++ b/src/components/settings/access/grant-invite-card.tsx @@ -724,8 +724,9 @@ export function inviteErrorKey(err: unknown): string { return "recordSharing.invite.errorInvalid"; case "sharing.invite.invalid_scope": return "recordSharing.invite.errorScope"; - // The decided consequence of gating Manage on a fresh second factor: the - // step-up is cookie-only, so this reaches a native caller and nobody else. + // Manage access is offered from a browser session only: the route refuses + // a Bearer caller before any second-factor check, so this reaches a native + // caller and nobody else. // Named rather than folded into the generic failure, because "use a // browser for this one" is a next step and "the invitation could not be // sent" is not.