No way to edit a message after sending it
- Dominant language
- TypeScript
- Stars
- 909
- Forks
- 116
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 156
Description
### Before filing
- [x] I searched open and closed issues for duplicates.
- [x] I am using a recent release (0.6.2) and this doesn't already exist.
- [x] This is one request, not several bundled together.
### Closest existing issue
#104 (Undo (Ctrl+Z) does not work in the chat composer) is about text before sending. Nothing found on editing after sending.
### Is this new, or an improvement?
New capability
### The problem, in your terms
I send a message, realise straight away I left something out, and stop the agent mid-turn. Stopping is my signal that I want to change what I asked, but there's no way to change it. The message is final the moment it lands, so I have to correct myself in a follow-up and leave the wrong version sitting in the history and in the model's context.
### What you do today
Either send a follow-up correction and accept that the wrong message stays in context, or use **Fork from this message** on the last good message and retype. Forking works well, but it costs me an entire new chat every time I fix a typo.
### What you'd like to see
Edit one of my own sent messages and re-run from there, replacing the original rather than appending a correction.
One thing that might be relevant: an edit button appears to be half-built already. `MessageBubbleActions.tsx` renders a pencil action for user messages, gated on an `onEditMessage` handler, and in 0.6.2 nothing in the chat view ever supplies that handler — the only caller that does is a design-system preview page, with a no-op. So the button exists but can never render. I don't know whether that's abandoned or in progress, but it seemed worth mentioning.
### Why this belongs in Berd itself
Editing a sent message means changing session state and re-running the turn. That's Berd's own chat surface, so nothing outside can reach it.
### Non-goals
- Only my own messages, not the agent's.
- Not asking to edit while a turn is still running. Stopping first is fine.
- Not asking to keep the old version as history or a diff. Overwriting is fine.
- Not asking to change how forking works today.
### Berd version
0.6.2
### Operating system
macOS (Apple Silicon)
---
*Filed via `gh` (an agent helped investigate and draft; I reviewed before posting). Laid out with the feature-request form's fields since the API path doesn't render the form.*
Contributor guide
Research direction
Start with MessageBubbleActions.tsx and trace the chat view path that currently does not supply onEditMessage; compare it with the design-system preview caller. Follow the existing session-state and turn-rerun entry points, then verify that editing a stopped, user-authored message replaces it and reruns from that point without changing agent messages or forking behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100