fix: promote Huddles back to stable — remove all gating

- Remove huddles entry from features.json (stable = no manifest entry)
- Unwrap FeatureGate wrappers in AppShell.tsx and ChannelMembersBar.tsx
- Remove unused FeatureGate imports
- Remove huddles screenshot test and view-huddles.png
- Remove huddles toggle from 'all on' test (now 4 features)

12/12 E2E tests passing.

Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
This commit is contained in:
Taylor Ho
2026-06-08 13:02:59 -07:00
parent 80b0838f3b
commit dcd558910d
6 changed files with 3 additions and 27 deletions
+1 -4
View File
@@ -54,7 +54,6 @@ import {
type SettingsSection,
} from "@/features/settings/ui/SettingsPanels";
import { HuddleBar, HuddleProvider } from "@/features/huddle";
import { FeatureGate } from "@/shared/features";
import { useMeshRelayOrchestrator } from "@/features/mesh-compute/hooks/useMeshRelayOrchestrator";
import { AppSidebar } from "@/features/sidebar/ui/AppSidebar";
import { useChannelMutes } from "@/features/sidebar/lib/useChannelMutes";
@@ -888,9 +887,7 @@ export function AppShell() {
}}
/>
</SidebarProvider>
<FeatureGate feature="huddles">
<HuddleBar />
</FeatureGate>
<HuddleBar />
</div>
</HuddleProvider>
</AppShellProvider>
@@ -3,7 +3,6 @@ import * as React from "react";
import { useQueryClient } from "@tanstack/react-query";
import { useHuddle } from "@/features/huddle";
import { HuddleIndicator } from "@/features/huddle/components/HuddleIndicator";
import { FeatureGate } from "@/shared/features";
import {
useAvailableAcpRuntimes,
useBackendProvidersQuery,
@@ -145,7 +144,7 @@ export function ChannelMembersBar({
{memberCount}
</span>
</DropdownMenuItem>
<FeatureGate feature="huddles">{huddleIndicator}</FeatureGate>
{huddleIndicator}
<DropdownMenuItem
data-testid="channel-management-trigger"
onSelect={onManageChannel}
@@ -186,7 +185,7 @@ export function ChannelMembersBar({
</span>
</Button>
<FeatureGate feature="huddles">{huddleIndicator}</FeatureGate>
{huddleIndicator}
<Button
aria-label="Manage channel"
@@ -125,18 +125,6 @@ test("screenshot: Forum with active thread (preview)", async ({ page }) => {
});
});
test("screenshot: Huddles in channel header (preview)", async ({ page }) => {
await page.goto("/");
await enableFeature(page, "huddles");
await page.getByTestId("channel-general").click();
await expect(page.getByTestId("chat-title")).toHaveText("general");
await page.waitForTimeout(500);
await page.screenshot({
path: "tests/e2e/screenshots/view-huddles.png",
fullPage: false,
});
});
test("screenshot: Settings → Compute (stable)", async ({ page }) => {
await page.goto("/");
await openSettings(page);
@@ -169,7 +157,6 @@ test("screenshot: Settings → Experiments (all on)", async ({ page }) => {
await page.getByTestId("feature-toggle-projects").click();
await page.getByTestId("feature-toggle-pulse").click();
await page.getByTestId("feature-toggle-forum").click();
await page.getByTestId("feature-toggle-huddles").click();
await page.waitForTimeout(500);
const view = page.getByTestId("settings-view");
await view.screenshot({
Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

-7
View File
@@ -56,13 +56,6 @@
"description": "Forum-style threaded channels for long-form discussions",
"tier": "preview",
"platforms": ["desktop"]
},
{
"id": "huddles",
"name": "Huddles",
"description": "Voice sessions with humans and agents via TTS/STT",
"tier": "preview",
"platforms": ["desktop"]
}
]
}