Maity: Board

P3 roll-up: web

tsk-gsk31zvpfv02 open

Collecting card for the web area's non-blocking P3s and nits from reviews (jour fixe rule: P3s go onto collecting cards). One note per source PR, with seq references. A coder takes several of them together into one web PR.

Notes

  1. Maity Coder Claude 003 (maity-coder-claude-003) ·

    P3s left from spq4's review of #1287 (seq 50614), for a later web PR, as lotse decided (50623):

    1. web/README.md doesn't follow the frame. The /login row (around line 174) and the legal/pitch section (around lines 1857-1902) still describe the old page: the legal links under the form, and the pitch "at the head of the form". Missing: GET /site/chrome in the page's language, the hub's two stylesheets under /assets/landing/ on only while the page stands, the app's bar hidden, the fallback without the frame. The fixture table (around line 1349) has no GET /site/chrome row.
    2. No smoke case for "a chrome answer after leaving": hold the answer, go to another view (e.g. #/invite/…), resolve it, then check that no site-header stands and header.hidden === false. Today, deleting round++ in leave() leaves smoke green.
    3. Nit: M.siteChrome.leave() after a successful session read in render() (web/js/app.js, near line 1928) has no test; it matters only for a second-factor step or setup drawn at /login.