mirror of
https://github.com/coder/coder.git
synced 2026-06-03 04:58:23 +00:00
e57525002c
Remove the `ExperimentAgents` feature flag so the Agents feature is always available without requiring `--experiments=agents`. The feature is now in beta. Existing deployments that still pass `--experiments=agents` will get a harmless "ignoring unknown experiment" warning on startup. ### Changes **Backend:** - Remove `RequireExperimentWithDevBypass` middleware from chat and MCP server routes - Always include `AgentsAccessRole` in assignable site roles (later refactored to org-scoped on main; rebase keeps that) - Always set `AgentsTabVisible = true`, then drop the entire dead `AgentsTabVisible` metadata pipeline (Go htmlState field, populateHTMLState goroutine, HTML meta tag, useEmbeddedMetadata registration, mock); no production consumer reads it. `AgentsNavItem` already gates on `permissions.createChat`. - Make `blob:` CSP `img-src` addition unconditional - Remove `ExperimentAgents` constant, `DisplayName` case, and `ExperimentsKnown` entry **CLI:** - Graduate the agents TUI from `coder exp agents` to `coder agents` (moved from `AGPLExperimental()` to `CoreSubcommands()`) - Drop the `agent` alias so it does not collide with the hidden workspace-agent command - Rename implementation files `cli/exp_agents_*.go` -> `cli/agents_*.go` and internal identifiers (`expChatsTUIModel` -> `chatsTUIModel`, `newExpChatsTUIModel` -> `newChatsTUIModel`, `setupExpAgentsBackend` -> `setupAgentsBackend`, `startExpAgentsSession` -> `startAgentsSession`, `expAgentsPtr` -> `agentsPtr`, `expAgentsSession` -> `agentsSession`, `TestExpAgents*` -> `TestAgents*`). `expClient` (the `*codersdk.ExperimentalClient` local) is kept; `coderd/exp_chats*.go` and other still-experimental `cli/exp_*.go` commands are intentionally untouched. **Frontend:** - Remove experiment check from `AgentsNavItem` - render when `canCreateChat` is true - Remove `agentsEnabled` experiment check from `WorkspacesPage`, then gate `chatsByWorkspace` on `permissions.createChat` so users without chat access don't trigger the per-page DB query (Copilot review feedback) - Add `FeatureStageBadge` (beta) next to the Coder logo in the Agents sidebar (desktop + mobile) **Docs:** - Remove experiment flag setup instructions from `early-access.md` and `getting-started.md` (and rename `early-access.md`'s "Enable Coder Agents" heading to "Set up Coder Agents", since there is no enablement step left) - Update `chats-api.md` and `getting-started.md`'s Chats API note to say "beta" instead of "experimental" - `docs/manifest.json`: drop "experimental" from the Chats API sidebar description - `make gen` regenerated `docs/reference/cli/agents.md` and the CLI index - `scripts/check_emdash.sh`: exclude `cli/testdata/*.golden` and `enterprise/cli/testdata/*.golden` from the new repo-wide emdash lint, since serpent emits emdash borders in every generated `--help` golden file **Tests:** - Remove `ExperimentAgents` setup from all test files (14 occurrences across 7 files) - Update stale "with the agents experiment" comments in `coderd/x/chatd/integration_test.go` and `coderd/mcp_test.go` <img width="1185" height="900" alt="image" src="https://github.com/user-attachments/assets/b420bc8f-41d6-42c6-abd8-ad572533d651" /> > 🤖 Generated by Coder Agents
65 lines
2.3 KiB
HTML
65 lines
2.3 KiB
HTML
<!doctype html>
|
|
|
|
<!--
|
|
-####### +######- ########+ ########## ########+. ###########
|
|
+#####--###### +#####--#####+ ############ ########## ####+++#####- ###########
|
|
####- -#### ####- ##### #### ####+ #### #### .#### ###########
|
|
.#### #### #### #### #### ######### ####...+##+ ###########
|
|
####. .#### #### +#### #### +#### #### ####+####### ###########
|
|
#####- -##### ######..###### ############- ########## #### ##### ###########
|
|
.########+ -########. #########+ ########## #### .#### ###########
|
|
-->
|
|
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<title>Coder</title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<meta name="theme-color" content="#17172E" />
|
|
<meta name="application-name" content="{{ .ApplicationName }}" />
|
|
<meta property="og:type" content="website" />
|
|
<meta property="csrf-token" content="{{ .CSRF.Token }}" />
|
|
<meta property="build-info" content="{{ .BuildInfo }}" />
|
|
<meta property="user" content="{{ .User }}" />
|
|
<meta property="entitlements" content="{{ .Entitlements }}" />
|
|
<meta property="appearance" content="{{ .Appearance }}" />
|
|
<meta property="userAppearance" content="{{ .UserAppearance }}" />
|
|
<meta property="experiments" content="{{ .Experiments }}" />
|
|
<meta property="regions" content="{{ .Regions }}" />
|
|
<meta property="docs-url" content="{{ .DocsURL }}" />
|
|
<meta property="logo-url" content="{{ .LogoURL }}" />
|
|
<meta property="tasks-tab-visible" content="{{ .TasksTabVisible }}" />
|
|
<meta property="permissions" content="{{ .Permissions }}" />
|
|
<meta property="organizations" content="{{ .Organizations }}" />
|
|
<link
|
|
rel="alternate icon"
|
|
type="image/png"
|
|
href="/favicons/favicon-light.png"
|
|
media="(prefers-color-scheme: dark)"
|
|
/>
|
|
<link
|
|
rel="icon"
|
|
type="image/svg+xml"
|
|
href="/favicons/favicon-light.svg"
|
|
media="(prefers-color-scheme: dark)"
|
|
/>
|
|
<link
|
|
rel="alternate icon"
|
|
type="image/png"
|
|
href="/favicons/favicon-dark.png"
|
|
media="(prefers-color-scheme: light)"
|
|
/>
|
|
<link
|
|
rel="icon"
|
|
type="image/svg+xml"
|
|
href="/favicons/favicon-dark.svg"
|
|
media="(prefers-color-scheme: light)"
|
|
/>
|
|
</head>
|
|
|
|
<body>
|
|
<div id="root"></div>
|
|
<script type="module" src="./src/index.tsx"></script>
|
|
</body>
|
|
</html>
|