fix(desktop): stop pulsing addressed agents on send (#6873)

## Summary

- Stop replaying the selected-agent pulse when a remembered agent
remains addressed across a send.
- Preserve the existing pulse for genuine selections and shake feedback
for failed sends.

### Related issue

Reported in Buzz:
buzz://message?channel=2745947d-f905-4f31-8a3f-fc4485d3c36c&id=0cffab376186be9cc4e7f29027352cc1c7941aead48b3fed948f36181f4a59af

### Testing

- `cd desktop && pnpm test` (5,556 passed)
- `cd desktop && pnpm typecheck`
- `cd desktop && pnpm check`
- `cd desktop && pnpm build:e2e`
- `cd desktop && pnpm exec playwright test
tests/e2e/persistent-agent-audience.spec.ts --grep 'always-mentioned
agents remain selected|failed always-mentioned send'` (2 passed)

This changes animation timing only; the regression is covered by
Playwright assertions on the pulse and shake versions, while a static
screenshot is unchanged.

Signed-off-by: Matt Toohey <contact@matttoohey.com>
This commit is contained in:
Matt Toohey
2026-08-26 21:46:19 +10:00
committed by GitHub
parent 4f529a45f2
commit db514b153a
4 changed files with 4 additions and 11 deletions

View File

@@ -500,7 +500,7 @@ test("the mention button opens settings and can undo an address", async ({
).toHaveCount(0);
});
test("always-mentioned agents remain in the mention button while Enter-send resolves", async ({
test("always-mentioned agents remain selected without replaying their animation while Enter-send resolves", async ({
page,
}) => {
await installAudienceFixtures(page, {
@@ -549,7 +549,7 @@ test("always-mentioned agents remain in the mention button while Enter-send reso
.not.toContain("");
await expect(avatar).toHaveAttribute(
"data-pulse-version",
String(initialPulseVersion + 1),
String(initialPulseVersion),
{ timeout: 500 },
);
await expect(
@@ -587,7 +587,7 @@ test("always-mentioned agents remain in the mention button while Enter-send reso
).toHaveCount(1);
});
test("a failed always-mentioned send shakes the composer avatar", async ({
test("a failed always-mentioned send shakes the composer avatar without replaying its selection animation", async ({
page,
}) => {
await installAudienceFixtures(page, {
@@ -610,7 +610,7 @@ test("a failed always-mentioned send shakes the composer avatar", async ({
await expect(avatar).toHaveAttribute(
"data-pulse-version",
String(initialPulseVersion + 1),
String(initialPulseVersion),
{ timeout: 500 },
);
await expect(input).toHaveText("@Morgarita please retry");