Skip to content

Commit 8dfd38b

Browse files
EdwardAngertClaude
and
Claude
committed
Add feature stages documentation and update script
- Add featurestages.go with FeatureRegistry containing early access and beta features - Update docs_update_experiments.sh to extract feature information from featurestages.go - Update feature-stages.md with sections for early access and beta features 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 38b093d commit 8dfd38b

File tree

3 files changed

+232
-152
lines changed

3 files changed

+232
-152
lines changed

codersdk/featurestages.go

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
package codersdk
2+
3+
// FeatureStage represents the maturity level of a feature
4+
type FeatureStage string
5+
6+
const (
7+
// FeatureStageEarlyAccess indicates a feature that is neither feature-complete nor stable
8+
// Early access features are often disabled by default and not recommended for production use
9+
FeatureStageEarlyAccess FeatureStage = "early access"
10+
11+
// FeatureStageBeta indicates a feature that is open to the public but still under development
12+
// Beta features might have minor bugs but are generally ready for use
13+
FeatureStageBeta FeatureStage = "beta"
14+
)
15+
16+
// Feature contains metadata about a Coder feature
17+
type Feature struct {
18+
// Name is the display name of the feature
19+
Name string `json:"name"`
20+
21+
// Description provides details about the feature
22+
Description string `json:"description"`
23+
24+
// Stage indicates the current maturity level
25+
Stage FeatureStage `json:"stage"`
26+
27+
// DocsPath is the relative path to the feature's documentation
28+
DocsPath string `json:"docs_path"`
29+
30+
// Experiment is the associated experiment flag (if applicable)
31+
// An empty value means no experiment flag is associated
32+
Experiment Experiment `json:"experiment,omitempty"`
33+
}
34+
35+
// FeatureRegistry maps documentation paths to their feature stages
36+
// This is the central registry for feature stage information
37+
var FeatureRegistry = map[string]Feature{
38+
// Early Access features
39+
"user-guides/devcontainers/index.md": {
40+
Name: "Dev Containers Integration",
41+
Description: "Run containerized development environments in your Coder workspace using the dev containers specification.",
42+
Stage: FeatureStageEarlyAccess,
43+
Experiment: ExperimentDevContainers,
44+
},
45+
"user-guides/devcontainers/working-with-dev-containers.md": {
46+
Name: "Working with Dev Containers",
47+
Description: "Access dev containers via SSH, your IDE, or web terminal.",
48+
Stage: FeatureStageEarlyAccess,
49+
Experiment: ExperimentDevContainers,
50+
},
51+
"user-guides/devcontainers/troubleshooting-dev-containers.md": {
52+
Name: "Troubleshooting Dev Containers",
53+
Description: "Diagnose and resolve common issues with dev containers in your Coder workspace.",
54+
Stage: FeatureStageEarlyAccess,
55+
Experiment: ExperimentDevContainers,
56+
},
57+
"admin/templates/extending-templates/devcontainers.md": {
58+
Name: "Configure a template for dev containers",
59+
Description: "How to configure your template for dev containers",
60+
Stage: FeatureStageEarlyAccess,
61+
Experiment: ExperimentDevContainers,
62+
},
63+
"ai-coder/securing.md": {
64+
Name: "Securing agents in Coder",
65+
Description: "Learn how to secure agents with boundaries",
66+
Stage: FeatureStageEarlyAccess,
67+
},
68+
69+
// Beta features
70+
"ai-coder/index.md": {
71+
Name: "Run AI Coding Agents in Coder",
72+
Description: "Learn how to run and integrate AI coding agents like GPT-Code, OpenDevin, or SWE-Agent in Coder workspaces to boost developer productivity.",
73+
Stage: FeatureStageBeta,
74+
Experiment: ExperimentAgenticChat,
75+
},
76+
"user-guides/desktop/index.md": {
77+
Name: "Coder Desktop",
78+
Description: "Use Coder Desktop to access your workspace like it's a local machine",
79+
Stage: FeatureStageBeta,
80+
},
81+
"admin/templates/extending-templates/prebuilt-workspaces.md": {
82+
Name: "Prebuilt workspaces",
83+
Description: "Pre-provision a ready-to-deploy workspace with a defined set of parameters",
84+
Stage: FeatureStageBeta,
85+
Experiment: ExperimentWorkspacePrebuilds,
86+
},
87+
"ai-coder/create-template.md": {
88+
Name: "Create a Coder template for agents",
89+
Description: "Create a purpose-built template for your AI agents",
90+
Stage: FeatureStageBeta,
91+
},
92+
"ai-coder/issue-tracker.md": {
93+
Name: "Integrate with your issue tracker",
94+
Description: "Assign tickets to AI agents and interact via code reviews",
95+
Stage: FeatureStageBeta,
96+
},
97+
"ai-coder/best-practices.md": {
98+
Name: "Model Context Protocols (MCP) and adding AI tools",
99+
Description: "Improve results by adding tools to your AI agents",
100+
Stage: FeatureStageBeta,
101+
},
102+
"ai-coder/coder-dashboard.md": {
103+
Name: "Supervise agents via Coder UI",
104+
Description: "Interact with agents via the Coder UI",
105+
Stage: FeatureStageBeta,
106+
},
107+
"ai-coder/ide-integration.md": {
108+
Name: "Supervise agents via the IDE",
109+
Description: "Interact with agents via VS Code or Cursor",
110+
Stage: FeatureStageBeta,
111+
},
112+
"ai-coder/headless.md": {
113+
Name: "Programmatically manage agents",
114+
Description: "Manage agents via MCP, the Coder CLI, and/or REST API",
115+
Stage: FeatureStageBeta,
116+
},
117+
"ai-coder/custom-agents.md": {
118+
Name: "Custom agents",
119+
Description: "Learn how to use custom agents with Coder",
120+
Stage: FeatureStageBeta,
121+
},
122+
}
123+
124+
// GetFeaturesByStage returns all features with the given stage
125+
func GetFeaturesByStage(stage FeatureStage) []Feature {
126+
var stageFeatures []Feature
127+
for _, feature := range FeatureRegistry {
128+
if feature.Stage == stage {
129+
stageFeatures = append(stageFeatures, feature)
130+
}
131+
}
132+
return stageFeatures
133+
}
134+
135+
// GetFeatureStage returns the stage of a feature by its docs path
136+
func GetFeatureStage(docsPath string) (FeatureStage, bool) {
137+
feature, ok := FeatureRegistry[docsPath]
138+
if !ok {
139+
return "", false
140+
}
141+
return feature.Stage, true
142+
}

docs/install/releases/feature-stages.md

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ If you encounter an issue with any Coder feature, please submit a
1010
## Feature stages
1111

1212
| Feature stage | Stable | Production-ready | Support | Description |
13-
|----------------------------------------|--------|------------------|-----------------------|-------------------------------------------------------------------------------------------------------------------------------|
13+
| -------------------------------------- | ------ | ---------------- | --------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
1414
| [Early Access](#early-access-features) | No | No | GitHub issues | For staging only. Not feature-complete or stable. Disabled by default. |
1515
| [Beta](#beta) | No | Not fully | Docs, Discord, GitHub | Publicly available. In active development with minor bugs. Suitable for staging; optional for production. Not covered by SLA. |
1616
| [GA](#general-availability-ga) | Yes | Yes | License-based | Stable and tested. Enabled by default. Fully documented. Support based on license. |
@@ -65,12 +65,24 @@ You can opt-out of a feature after you've enabled it.
6565
<!-- Code generated by scripts/release/docs_update_experiments.sh. DO NOT EDIT. -->
6666
<!-- BEGIN: available-experimental-features -->
6767

68-
| Feature | Description | Available in |
69-
|-----------------------|----------------------------------------------|--------------|
70-
| `workspace-prebuilds` | Enables the new workspace prebuilds feature. | mainline |
68+
| Feature | Description | Available in |
69+
| --------------------- | ------------------------------------------- | ---------------- |
70+
| `dev-containers` | Enables dev containers support | mainline, stable |
71+
| `agentic-chat` | Enables the new agentic AI chat feature | mainline, stable |
72+
| `workspace-prebuilds` | Enables the new workspace prebuilds feature | mainline, stable |
7173

7274
<!-- END: available-experimental-features -->
7375

76+
### Early access features in documentation
77+
78+
<!-- Code generated by scripts/release/docs_update_experiments.sh. DO NOT EDIT. -->
79+
<!-- BEGIN: early-access-features -->
80+
81+
| Feature | Description | Documentation Path |
82+
| ------- | ----------- | ------------------ |
83+
84+
<!-- END: early-access-features -->
85+
7486
## Beta
7587

7688
- **Stable**: No
@@ -102,6 +114,16 @@ Most beta features are enabled by default. Beta features are announced through
102114
the [Coder Changelog](https://coder.com/changelog), and more information is
103115
available in the documentation.
104116

117+
### Beta features in documentation
118+
119+
<!-- Code generated by scripts/release/docs_update_experiments.sh. DO NOT EDIT. -->
120+
<!-- BEGIN: beta-features -->
121+
122+
| Feature | Description | Documentation Path |
123+
| ------- | ----------- | ------------------ |
124+
125+
<!-- END: beta-features -->
126+
105127
## General Availability (GA)
106128

107129
- **Stable**: Yes

0 commit comments

Comments
 (0)