Widget: copy a completed assistant reply
Mantenedores costumam responder em até 1 dia
Avaliação
Esta issue ainda não foi avaliada.
Descrição
What problem would this solve?
Visitors often need to reuse an answer outside the chat. Selecting a long rendered reply is awkward on phones and can be error-prone around formatted text and code blocks.
What would you like to happen?
Add a copy action to completed assistant replies. Copy the reply as readable plain text, preserving code block contents and line breaks without copying Markdown syntax. Keep the action out of the streaming state, make it keyboard accessible, and announce success or failure without disrupting the existing reply announcement.
Where to look
packages/widget/src/dom/messages.tsrenders assistant messages and reply actions.packages/widget/src/i18n.tsholds the widget’s accessible UI strings.packages/widget/src/styles/widget.csscontains message action styles.packages/widget/tests/dom/messages.test.tscovers message rendering.
Acceptance criteria
- A copy button is available for a completed assistant reply and is not shown while that reply is streaming.
- Clipboard failures are handled without an uncaught error, including when the Clipboard API is unavailable.
- The control has a localized accessible name, a visible focus indicator, and an accessible confirmation of the result.
- Tests cover copying formatted content, streaming replies, and clipboard failure.
- Add a widget changeset; keep the gzipped bundle within the configured size budget.
Contributing
- I’d like to work on this myself
- Linguagem predominante
- TypeScript
- Estrelas
- 13
- Forks
- 7
- Merge médio
- 3h 28min
- PRs com merge (30d)
- 296
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de codercops/chatcops
-
Core README lists old default modelsTalvez já em andamento @prakashNalla assumiu hoje. Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
codercops/chatcops#503 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Widget: theme.tokens to set any color or size token, and the full token table in the docsTalvez já em andamento @Sreehita-here assumiu hoje. Abertahacktoberfest
codercops/chatcops#500 · 2 comentários · 1 responsável ·
Mantenedores costumam responder em até 1 dia
-
Widget: a header menu with New conversation, Download transcript and a privacy linkTalvez já em andamento @anurag2787 assumiu hoje. Abertahacktoberfest
codercops/chatcops#496 · 4 comentários · 1 responsável ·
Mantenedores costumam responder em até 1 dia
-
Widget: keep a message sent while offline, and send it when the connection is backTalvez já em andamento @Saifjafri212213 assumiu hoje. Abertahacktoberfest
codercops/chatcops#495 · 3 comentários · 1 responsável ·
Mantenedores costumam responder em até 1 dia
-
Server: validate `rateLimit.windowMs` before creating the limiterTalvez já em andamento @ashutoshpalhare assumiu há 1 dia. Aberta
codercops/chatcops#452 · 1 comentário · 1 responsável ·
Mantenedores costumam responder em até 1 dia
Todas as issues de codercops/chatcops
Issues semelhantes
-
area:cli bug P4
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
Mantenedores costumam responder em até 1 dia
-
bug from-studio
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
esengine/DeepSeek-Reasonix#14868 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
linxiv-dev/linXiv#384 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
scope:core type:security
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
Mantenedores costumam responder em até 1 dia
-
follow-redirects updateAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
mailgun/mailgun.js#544 ·