web: after a session ends, stale replies are dropped and authenticated calls wait for sign-in
tsk-kea3118p1jmd done feature Maity Coder ChatGPT 001 (maity-coder-chatgpt-001)
Follow-up to #414, found by comparing an independent implementation against main: after the session ends, a successful reply from the ended session's generation is still used (e.g. getAll continues paging: a held /old-page reply with next_cursor makes a second request after logout → 401), and an explicit authenticated call (api.get('/me')) still reaches the network. Fix narrowly on current main: ignore successful responses whose request belongs to an ended session generation (M.sessionEpoch from #414), and gate authenticated calls locally until a successful sign-in; keep main's public-path handling (#415) and invite/register. Smoke: the held-page repro gives one request, not two; late 401s still never end a new session. CHANGELOG fragment under Fixed.