cleanup(web): drop the unimplemented user-message edit control

The user bubble's IconActions row carried an edit button with no click
handler, no client mutation, and no host operation behind it, advertising
an affordance the product cannot honor. The row now renders clock / copy /
branch only for both user and assistant chrome, and MessageIconActions
loses the `edit` prop with the button.

The package README records the missing capability under Known Limitations,
the web aria goldens pin the row without the control, and the Agent Note
states what must exist before it comes back.
This commit is contained in:
creatixchu
2026-07-31 16:23:36 +08:00
parent 9e11f438f3
commit 171c18b9ca
29 changed files with 73 additions and 60 deletions

View File

@@ -64,14 +64,14 @@ describe('web e2e: message IconActions and clocks on settled history', () => {
await expect.poll(() => page.getByText('DONE', { exact: true }).count(), { timeout: 15_000 }).toBe(1)
// Focus-reveal the footers (hover:hover keeps them opacity-hidden until
// hover/focus-within). User has three actions; each turn's last content
// assistant has copy + branch.
// hover/focus-within). User and each turn's last content assistant both
// have copy + branch.
const copyButtons = page.getByRole('button', { name: 'Copy' })
await expect.poll(() => copyButtons.count(), { timeout: 10_000 }).toBeGreaterThanOrEqual(2)
await copyButtons.first().focus()
await expect.poll(() => page.getByRole('button', { name: 'Branch into a new conversation' }).count(), { timeout: 5_000 })
.toBeGreaterThanOrEqual(2)
await expect.poll(() => page.getByRole('button', { name: 'Edit' }).count(), { timeout: 5_000 }).toBe(1)
await expect.poll(() => page.getByRole('button', { name: 'Edit' }).count(), { timeout: 5_000 }).toBe(0)
}, 60_000)
it.skipIf(MODE === 'record')('matches the conversation aria golden with IconActions and clocks', async () => {

View File

@@ -9,8 +9,6 @@
- img
- button "Branch into a new conversation":
- img
- button "Edit":
- img
- 'button "Think The user wants me to write a single `run_code` program that:"':
- img
- img

View File

@@ -9,8 +9,6 @@
- img
- button "Branch into a new conversation":
- img
- button "Edit":
- img
- button "Think The user wants me to:":
- img
- img

View File

@@ -9,8 +9,6 @@
- img
- button "Branch into a new conversation":
- img
- button "Edit":
- img
- button "Think The user wants me to run a simple bash command and reply with \"DONE\".":
- img
- img

View File

@@ -9,8 +9,6 @@
- img
- button "Branch into a new conversation":
- img
- button "Edit":
- img
- button "Think The user wants me to reply with a single word. Let me comply.":
- img
- img

View File

@@ -9,8 +9,6 @@
- img
- button "Branch into a new conversation":
- img
- button "Edit":
- img
- paragraph: partial
- text: Stopped
- button "Copy":

View File

@@ -9,8 +9,6 @@
- img
- button "Branch into a new conversation":
- img
- button "Edit":
- img
- textbox "Message the agent"
- button "Commands":
- img

View File

@@ -9,8 +9,6 @@
- img
- button "Branch into a new conversation":
- img
- button "Edit":
- img
- paragraph: partial
- status: Deep diving...
- textbox "Message the agent"

View File

@@ -9,8 +9,6 @@
- img
- button "Branch into a new conversation":
- img
- button "Edit":
- img
- group:
- status: Retried model request (1/2) · {{duration}}
- button "Think The user is asking for a one-sentence description of event sourcing. This is a straightforward knowledge question that doesn't require any skill loading or tool calls.":

View File

@@ -10,8 +10,6 @@
- tooltip "Copy"
- button "Branch into a new conversation":
- img
- button "Edit":
- img
- button "Think The user wants me to read a.txt and b.txt, then reply with \"DONE\". Let me do both reads in parallel.":
- img
- img

View File

@@ -10,8 +10,6 @@
- img
- button "Branch into a new conversation":
- img
- button "Edit":
- img
- 'button "Think The user wants me to plan a small change to add a `--greeting` flag to a CLI. They explicitly told me not to read or write any files, and to call exit_plan_mode with a short plan. Let me do that directly."':
- img
- img

View File

@@ -9,8 +9,6 @@
- img
- button "Branch into a new conversation":
- img
- button "Edit":
- img
- button "Think The user wants me to use the ask_user_question tool with specific parameters. Let me do exactly that.":
- img
- img

View File

@@ -9,8 +9,6 @@
- img
- button "Branch into a new conversation":
- img
- button "Edit":
- img
- paragraph: partial
- status: Deep diving...
- button "2 queued messages"

View File

@@ -9,8 +9,6 @@
- img
- button "Branch into a new conversation":
- img
- button "Edit":
- img
- paragraph: partial
- status: Deep diving...
- button "2 queued messages" [disabled] [expanded]

View File

@@ -9,8 +9,6 @@
- img
- button "Branch into a new conversation":
- img
- button "Edit":
- img
- paragraph: partial
- status: Deep diving...
- list:

View File

@@ -9,8 +9,6 @@
- img
- button "Branch into a new conversation":
- img
- button "Edit":
- img
- button "Think The user wants me to read a.txt and b.txt, then reply with \"DONE\". Let me do both reads in parallel.":
- img
- img

View File

@@ -9,8 +9,6 @@
- img
- button "Branch into a new conversation":
- img
- button "Edit":
- img
- button "Think The user wants me to read a.txt and b.txt, then reply with \"DONE\". Let me do both reads in parallel.":
- img
- img

View File

@@ -9,8 +9,6 @@
- img
- button "Branch into a new conversation":
- img
- button "Edit":
- img
- button "Think The user wants me to use the ask_user_question tool to ask them a specific question with the given parameters. Let me do exactly that.":
- img
- img

View File

@@ -9,8 +9,6 @@
- img
- button "Branch into a new conversation":
- img
- button "Edit":
- img
- button "Think The user wants me to use the ask_user_question tool to ask them a specific question with the given parameters. Let me do exactly that.":
- img
- img

View File

@@ -9,8 +9,6 @@
- img
- button "Branch into a new conversation":
- img
- button "Edit":
- img
- img
- text: Search DeepSeek Harness snapshot search
- list: