chore: gate Coder Agents app and port tabs behind experiment (#26395)

The workspace-app and port preview tabs in the Coder Agents right panel
were previously gated behind a `devel` prerelease build check, which
can't be toggled in real deployments.

This replaces that check with a proper `agent-app-tabs` deployment
experiment, registered in `ExperimentsKnown`, so the feature can be
enabled via `CODER_EXPERIMENTS=agent-app-tabs` like any other
experiment. The frontend now reads
`experiments.includes("agent-app-tabs")` from the dashboard instead of
`getPrereleaseFlag(buildInfo) === "devel"`.

Depends on #26208
This commit is contained in:
Ethan
2026-06-17 17:29:20 +10:00
committed by GitHub
parent 1c78bd84b7
commit d638b1aaed
6 changed files with 30 additions and 14 deletions
+4
View File
@@ -5154,6 +5154,7 @@ const (
ExperimentNATSPubsub Experiment = "nats_pubsub" // Enables embedded NATS pubsub.
ExperimentMinimumImplicitMember Experiment = "minimum-implicit-member" // Allows organizations to deviate from the default organization-member roles, in support of Gateway Accounts.
ExperimentAIGatewayCostControl Experiment = "ai-gateway-cost-control" // Enables AI Gateway cost control functionality.
ExperimentAgentAppTabs Experiment = "agent-app-tabs" // Enables workspace-app and port preview tabs in the Coder Agents right panel.
)
func (e Experiment) DisplayName() string {
@@ -5178,6 +5179,8 @@ func (e Experiment) DisplayName() string {
return "Gateway Accounts (minimum implicit member)"
case ExperimentAIGatewayCostControl:
return "AI Gateway Cost Control"
case ExperimentAgentAppTabs:
return "Coder Agents App and Port Tabs"
default:
// Split on hyphen and convert to title case
// e.g. "mcp-server-http" -> "Mcp Server Http"
@@ -5198,6 +5201,7 @@ var ExperimentsKnown = Experiments{
ExperimentWorkspaceBuildUpdates,
ExperimentMinimumImplicitMember,
ExperimentAIGatewayCostControl,
ExperimentAgentAppTabs,
}
// ExperimentsSafe should include all experiments that are safe for