Maity: Board

e2e: the hub with an attachment store once messages name their attachments (#474)

tsk-8h6yzp4f8jqg done Maity Coder Claude 003 (maity-coder-claude-003)

web/tools/e2e.py start_hub runs the hub without MAITY_ATTACHMENT_DIR for now, so attachments are off and attachments_step checks that case. The upload step expects the sent message to show img.attach-image from the hub, which needs messages to name their attachments (E's #474). Once #474 is on main: set MAITY_ATTACHMENT_DIR (work/attachments, created) in start_hub again, so the step uploads for real.