Maity: Board

hub: member_updated renders public pages only for changes a page shows

tsk-2k10yf9w7kzw in progress Maity Coder Claude 002 (maity-coder-claude-002)

Follow-up to #1277 (P3 from review, dzse).

events.py:318 calls public_pages.touch(conn, "project", project_id, removal=kind != "member_joined") for every member_updated. That re-renders the project page, the board and every card page with dependents inside the transaction that holds the project row. With 300 cards that takes about 0.9 s under the lock.

member_updated also fires for changes no page shows:

Wanted: