* Flatten settings sidebar with a host picker Settings had two implicit tiers: app-level sections as flat sidebar rows, and per-host settings hidden behind a drill-in to one monolithic host page. This flattens both into a single sidebar with an "App" group and a "Host" group, where the host's settings are top-level rows scoped by a host picker. - Split the monolithic HostPage into four section pages: Connections, Orchestration (was the unnamed inject-tools + system-prompt block), Providers, and Daemon (status, updates, restart, remove). - Host picker reuses the canonical <Combobox> sidebar host switcher; defaults to the local host so a single-local-host user never thinks about "the daemon". - Host sections become real sub-routes (/settings/hosts/[id]/[section]); the old /settings/hosts/[id] redirects to the connections section, so existing deep links (pairing, workspace, open-project) keep working. - "Open providers" from the project screen now lands on the Providers section. * Fix e2e host-settings navigation for the flat sidebar The flat-settings refactor moved host settings onto separate section pages, but three e2e helpers still expected the old monolithic host page: - openDesktopSettings: the daemon-lifecycle card now lives on the Daemon section — navigate there before asserting it. - acp catalog: "Add provider" now lives on the Providers section — open that section before opening the add-provider modal. - openAddHostFlow: "Add host" is now an item inside the host picker (Combobox), not a standalone button — open the picker first. Test-only; no product changes. Fixes the 8 playwright failures on this branch.
30 lines
938 B
TypeScript
30 lines
938 B
TypeScript
import { test } from "./fixtures";
|
|
import { gotoAppShell, openSettings } from "./helpers/app";
|
|
import { getServerId } from "./helpers/server-id";
|
|
import {
|
|
expectProviderInstalledInSettings,
|
|
installAcpCatalogProvider,
|
|
openAddProviderModal,
|
|
openSettingsHost,
|
|
openSettingsHostSection,
|
|
} from "./helpers/settings";
|
|
|
|
const ACP_PROVIDER = {
|
|
id: "hermes",
|
|
name: "Hermes",
|
|
};
|
|
|
|
test.describe("ACP provider catalog", () => {
|
|
test("adds a catalog provider from settings", async ({ page }) => {
|
|
await gotoAppShell(page);
|
|
await openSettings(page);
|
|
await openSettingsHost(page, getServerId());
|
|
// Providers moved to their own host section; add-provider lives there now.
|
|
await openSettingsHostSection(page, getServerId(), "providers");
|
|
await openAddProviderModal(page);
|
|
|
|
await installAcpCatalogProvider(page, ACP_PROVIDER.name);
|
|
await expectProviderInstalledInSettings(page, ACP_PROVIDER.name);
|
|
});
|
|
});
|