Replace Social with a Connectors control room

The Social surface gives way to Connectors: the searchable Composio catalog
(letter-glyph tiles - the CSP stays closed to remote images), one-click
connect that opens the authorization link in the browser and polls the
account until it turns active, and a Connected section where each toolkit
shows its status and a chip per agent that grants or revokes their access
on the spot. Route, nav label, glyph, and search targets follow the rename;
the social backend services remain for the domain while their page and e2e
steps retire in favor of connector coverage.
This commit is contained in:
ZacharyZhang-NY committed 2026-07-06 23:24:01 -04:00
1 parent fb72f1f29b
commit e9cd22e7f4
10 files changed
+399 -364

No files matched your search

+6 -24
View File
@@ -106,29 +106,11 @@ test("onboards, hires, and creates work in the Electron shell", async () => {
await page.getByRole("button", { name: "Approvals" }).click();
await expect(page.getByText("Escalate release").first()).toBeVisible();
await page.getByRole("button", { name: "Social" }).click();
await page.getByRole("button", { name: "Connect account" }).click();
await page.getByLabel("Handle").fill("@acme");
await page.getByLabel("Display name").fill("Acme Social");
await page.locator(".modal").getByRole("button", { name: "Connect" }).click();
await expect(page.getByText("@acme").first()).toBeVisible();
await page.getByRole("button", { name: "Draft post" }).click();
await page.getByLabel("Body").fill("Pilot starts Friday.");
await page.getByLabel("Scheduled for").fill("2027-01-15T09:30");
await page.locator(".modal").getByRole("button", { name: "Save" }).click();
await expect(page.getByText("Draft").first()).toBeVisible();
await page.getByRole("button", { name: "Schedule" }).click();
await expect(page.getByText("Awaiting approval").first()).toBeVisible();
await expect(page.getByRole("button", { name: "Publish" })).toBeDisabled();
await page.getByRole("button", { name: "Approvals" }).click();
await expect(page.getByText("Approve social post").first()).toBeVisible();
await page.getByLabel("Filter risk").selectOption("medium");
await page.getByRole("button", { name: /^Approve$/ }).first().click();
await page.getByRole("button", { name: "Social" }).click();
await expect(page.getByText("Approved").first()).toBeVisible();
await page.getByRole("button", { name: "Publish" }).click();
await expect(page.getByText("Published").first()).toBeVisible();
// The Connectors page shell renders whether or not the Composio catalog
// is reachable from the test machine.
await page.getByRole("button", { name: "Connectors", exact: true }).click();
await expect(page.getByRole("heading", { name: "Connectors" })).toBeVisible();
await expect(page.getByRole("button", { name: "Refresh" })).toBeVisible();
await page.getByRole("button", { name: "Settings" }).click();
await page.getByRole("button", { name: "Providers" }).click();
@@ -218,7 +200,7 @@ function createSkillDirectory(): string {
async function verifyPagesDoNotOverflow(page: Page): Promise<void> {
for (const size of [{ width: 1280, height: 860 }, { width: 980, height: 700 }]) {
await page.setViewportSize(size);
for (const nav of ["Home", "Team", "Work", "Messages", "Files", "Approvals", "Social", "Office", "Settings"]) {
for (const nav of ["Home", "Team", "Work", "Messages", "Files", "Approvals", "Connectors", "Office", "Settings"]) {
await page.getByRole("button", { name: nav, exact: true }).click();
await expectPageToFit(page);
}
@@ -46,7 +46,7 @@ test("captures every page for visual review", async () => {
await go(page, "Messages", outDir, "13-messages");
await go(page, "Files", outDir, "14-files");
await go(page, "Approvals", outDir, "15-approvals");
await go(page, "Social", outDir, "16-social");
await go(page, "Connectors", outDir, "16-connectors");
await go(page, "Settings", outDir, "17-settings");
await go(page, "Office", outDir, "18-office");