diff --git a/packages/ui/src/components/chat/ChatInput.tsx b/packages/ui/src/components/chat/ChatInput.tsx index e4fbb54c..ea084d5e 100644 --- a/packages/ui/src/components/chat/ChatInput.tsx +++ b/packages/ui/src/components/chat/ChatInput.tsx @@ -589,11 +589,9 @@ export const ChatInput: React.FC = ({ onOpenSettings, scrollToBo if (pending?.text) { if (pending.mode === 'append') { setMessage((prev) => { - const next = pending.text.trim(); - if (!next) return prev; - const base = prev.trimEnd(); - if (!base.trim()) return next; - return `${base} ${next}`; + if (!pending.text) return prev; + if (!prev.trim()) return pending.text; + return `${prev}\n\n${pending.text}`; }); } else { setMessage(pending.text); diff --git a/packages/ui/src/components/chat/message/TextSelectionMenu.tsx b/packages/ui/src/components/chat/message/TextSelectionMenu.tsx index 2487908f..35f6a59b 100644 --- a/packages/ui/src/components/chat/message/TextSelectionMenu.tsx +++ b/packages/ui/src/components/chat/message/TextSelectionMenu.tsx @@ -249,7 +249,8 @@ export const TextSelectionMenu: React.FC = ({ containerR const handleAddToChat = React.useCallback(() => { if (!selectedText) return; - setPendingInputText(selectedText, 'append'); + const fenced = `\`\`\`md\n${selectedText}\n\`\`\``; + setPendingInputText(fenced, 'append'); hideMenu(); diff --git a/packages/ui/src/components/session/ProjectNotesTodoPanel.tsx b/packages/ui/src/components/session/ProjectNotesTodoPanel.tsx index 41d95620..4b92233d 100644 --- a/packages/ui/src/components/session/ProjectNotesTodoPanel.tsx +++ b/packages/ui/src/components/session/ProjectNotesTodoPanel.tsx @@ -192,7 +192,8 @@ export const ProjectNotesTodoPanel: React.FC = ({ return; } routeToChat(); - setPendingInputText(todoText, 'append'); + const fenced = `\`\`\`md\n${todoText}\n\`\`\``; + setPendingInputText(fenced, 'append'); toast.success('Todo sent to current session'); onActionComplete?.(); },