# Frontend Navigation Audit — the "opaque click" anti-pattern > **Status, 2026-08-07. Phases 1–4 and the cross-cutting section are closed except the two chat items.** > Every finding H1–H5 and M1–M10 is done, void, or decided-and-recorded, and so is every Phase 4 line and > every cross-cutting line. Two selections that the audit never listed were found afterwards by sweeping > for `useGlobal<` / `useState` rather than by reading the table — the email folder and the Soulseek > room/peer rails — and are done too. What remains, and only this: > **H4** (chat detail reading `sessionId` from `useParams` instead of the `chat:selected-session` channel) > and the **"New Chat"** button that depends on it. Both are inside the chat nucleus, which has its own > owner — they are not stalled here, they are somebody else's to land. > > Three findings turned out to be wrong on inspection and are marked as such rather than quietly dropped: > **H3** is void (Projects was deleted, so every `Projects/`, `SELECTED_PROJECT` and `/projects/:id` > reference below is historical), **M7**'s "every caller inherits the opaque click" was false (it had no > callers, and the component is deleted), and the **Preview slug** item names an app that does not exist. > Two components — `Combobox` and `BackButton` — were deleted rather than fixed, having never been used. > > The rules in this file are current and authoritative; the findings table is a snapshot. > **Nothing below has had a runtime click-through.** Every "Needs runtime test" note is still true. **Date:** 2026-07-30 · **Origin:** written as exploration before any of the routing work was done. Prep work for the upcoming **full navigation refactor**. This catalogues every place the frontend navigates to / selects an **addressable entity** using a `