* feat(web): routine list toggles and hide empty Routinen section
Show Routinen in the Oo side panel only when the bot has routines; remove
the panel create control. Each list row gets an active switch with optimistic
updates via routines.update. E2E covers visibility, toggle persistence, and
updates existing routine specs to create via RPC like chat.
Co-authored-by: cynarAI <cynarAI@users.noreply.github.com>
* fix(web): sync lingui catalogs after routine panel UI change
Co-authored-by: cynarAI <cynarAI@users.noreply.github.com>
* fix(web): refresh routine list optimistically after save
Co-authored-by: cynarAI <cynarAI@users.noreply.github.com>
* test(e2e): wait for routine list after RPC create in golden path
Co-authored-by: cynarAI <cynarAI@users.noreply.github.com>
* style: format golden e2e after routine list wait
Co-authored-by: cynarAI <cynarAI@users.noreply.github.com>
* fix(web): show sign-up while session lookup is pending
Co-authored-by: cynarAI <cynarAI@users.noreply.github.com>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: cynarAI <cynarAI@users.noreply.github.com>
An empty draft shows the mic where the send arrow sits; it opens the
voice conversation as the separate Voice button did. As soon as the draft
holds text, a chip or an attachment, the slot turns back into Send. This
frees the width the extra Voice pill took on small screens.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XcoERsCTbvjqDzE8qC82Wo