Files
moreminimore-vibe/e2e-tests
Adeniji Adekunle James 2597d50529 feat: add copy functionality for ai responses with Dyad tag formatting (#1290) (#1315)
## Summary
Adds AI response copy functionality to chat messages that preserves
formatting and converts Dyad-specific tags to clean, readable markdown.

## Changes
- **New `useCopyToClipboard` hook**: Parses Dyad tags and converts them
to professional markdown format
- **Updated `ChatMessage` component**: Positions copy button on left
side of approval status
- **Dyad tag conversion**: Transforms custom tags to readable format:
  - `<dyad-write>` → `### File: path/to/file.js` + code block
  - `<dyad-edit>` → `### Edit: path/to/file.js` + code block  
  - `<dyad-execute-sql>` → `### Execute SQL` + ```sql block
  - `<think>` → `### Thinking` + content

## Features
-  Automatic programming language detection from file extensions  
-  Professional markdown formatting with proper headings and code
blocks
-  Tooltip showing "Copied" confirmation
-  Reuses existing DyadMarkdownParser logic for consistency

closes (#1290)
    
<!-- This is an auto-generated description by cubic. -->
---

## Summary by cubic
Adds a Copy button to assistant messages that copies a clean Markdown
version of the response by converting Dyad tags and preserving code
blocks. Improves shareability and removes Dyad-only markup; addresses
Linear #1290.

- **New Features**
- Added useCopyToClipboard hook that parses Dyad tags to Markdown,
auto-detects code language, and cleans spacing.
- Updated ChatMessage to show a Copy button (with Copy/Copied tooltip)
to the left of approval status; disabled while streaming.
- Tag conversions: think → "### Thinking"; dyad-write/edit → "###
File/Edit: path" + fenced code; dyad-execute-sql → "### Execute SQL" +
sql block; other Dyad tags map to concise headings; chat-summary/command
are omitted.
- Added e2e tests for clipboard copy, Dyad tag stripping/formatting, and
tooltip states.

<!-- End of auto-generated description by cubic. -->
2025-09-22 23:32:55 -07:00
..
2025-09-19 15:43:39 -07:00
2025-09-22 15:50:18 -07:00
2025-07-10 10:23:22 -07:00
2025-06-24 14:35:05 -07:00
2025-09-09 00:18:48 -07:00
2025-06-05 22:26:17 -07:00
2025-08-20 14:16:07 -07:00
2025-06-17 16:59:26 -07:00
2025-05-31 23:04:28 -07:00
2025-09-19 15:43:39 -07:00
2025-06-02 22:35:55 -07:00
2025-05-31 22:01:48 -07:00
2025-08-14 13:48:27 -07:00
2025-08-18 13:25:11 -07:00
2025-06-02 22:46:35 -07:00
2025-06-02 22:49:02 -07:00
2025-06-02 16:19:47 -07:00
2025-06-04 10:31:13 -07:00