block / block/berd

No way to edit a message after sending it

Open
#229 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.