Skip to content

feat: replace textarea with tiptap editor in chat composer (Refs: beans-l910)#173

Merged
hmans merged 1 commit intomainfrom
beans/minimum-sailfish-zfk8
Mar 21, 2026
Merged

feat: replace textarea with tiptap editor in chat composer (Refs: beans-l910)#173
hmans merged 1 commit intomainfrom
beans/minimum-sailfish-zfk8

Conversation

@hmans
Copy link
Copy Markdown
Owner

@hmans hmans commented Mar 21, 2026

Summary

  • Replaced the plain <textarea> in AgentComposer.svelte with a tiptap rich text editor
  • Added @tiptap/core, @tiptap/pm, @tiptap/starter-kit, and @tiptap/extension-placeholder as dependencies
  • All existing behavior preserved: Enter to send, Shift+Enter for newline, Shift+Tab to toggle plan/act, Escape to stop, image paste/drag-drop, localStorage persistence, and auto-focus

This provides a foundation for future enhancements like mentions, slash commands, or inline markdown formatting.

Test plan

  • Verify the composer renders and auto-focuses when opening a workspace
  • Type a message and press Enter — should send
  • Press Shift+Enter — should insert a newline
  • Press Shift+Tab — should toggle between Plan and Act mode
  • Paste an image — should appear as a pending attachment
  • Drag and drop an image onto the composer
  • Navigate between workspaces — composer input should persist via localStorage
  • Run mise test:e2e — workspace-create test should pass with updated selector

…ns-l910)

- Install @tiptap/core, @tiptap/pm, @tiptap/starter-kit, @tiptap/extension-placeholder
- Replace plain <textarea> with tiptap Editor in AgentComposer.svelte
- Add custom composerKeymap extension for Enter/Shift-Tab/Escape shortcuts
- Handle image paste via tiptap's handlePaste editor prop
- Maintain localStorage persistence and focus management
- Update e2e test selector for contenteditable element
@hmans hmans merged commit 638a1a4 into main Mar 21, 2026
1 check passed
@hmans hmans deleted the beans/minimum-sailfish-zfk8 branch March 21, 2026 13:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant