Remove threads from Messages: every conversation is flat

All messages already render chronologically in the channel pane, so the
thread affordance only duplicated them behind a second view. The reply
chip, the in-place thread pane, and the thread composer are gone;
ChatThreadView is deleted and the thread props are removed from the
conversation, timeline, and message-row chain. Message writes are
untouched.
This commit is contained in:
ZacharyZhang-NY committed 2026-07-07 01:58:11 -04:00
1 parent d19573187c
commit 0ec13e3e3a
6 files changed
+28 -432

No files matched your search

+3 -6
View File
@@ -106,12 +106,9 @@ test("onboards, hires, and creates work in the Electron shell", async () => {
await page.getByRole("button", { name: "Send" }).click();
await expect(page.getByText("@Board").first()).toBeVisible();
await expect(page.getByText("/escalate").first()).toBeVisible();
// Threads open in place: the center pane becomes the thread and the
// channel composer is gone until you go back.
await page.getByRole("button", { name: "Open thread" }).first().click();
await expect(page.getByRole("textbox", { name: "Thread reply" })).toBeVisible();
await expect(page.getByRole("textbox", { name: "Message" })).not.toBeVisible();
await page.getByRole("button", { name: "Close thread" }).click();
// Conversations are flat: every message lives in the channel pane and no
// thread affordance exists.
await expect(page.getByRole("button", { name: "Open thread" })).toHaveCount(0);
await expect(page.getByRole("textbox", { name: "Message" })).toBeVisible();
await page.getByRole("button", { name: "Approvals" }).click();
await expect(page.getByText("Escalate release").first()).toBeVisible();