Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit2a22440

Browse files
authored
chore!: patch release v2.28 to removeaibridge experiment (#20544)
Includes stack of PRs from#20520---------Signed-off-by: Danny Kopping <danny@coder.com>
1 parent8b6f55c commit2a22440

File tree

55 files changed

+787
-500
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+787
-500
lines changed

‎.github/workflows/dogfood.yaml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
with:
4141
# Pinning to 2.28 here, as Nix gets a "error: [json.exception.type_error.302] type must be array, but is string"
4242
# on version 2.29 and above.
43-
nix_version:"2.28.4"
43+
nix_version:"2.28.5"
4444

4545
-uses:nix-community/cache-nix-action@135667ec418502fa5a3598af6fb9eb733888ce6a# v6.1.3
4646
with:

‎Makefile‎

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -636,16 +636,16 @@ TAILNETTEST_MOCKS := \
636636
tailnet/tailnettest/subscriptionmock.go
637637

638638
AIBRIDGED_MOCKS :=\
639-
enterprise/x/aibridged/aibridgedmock/clientmock.go\
640-
enterprise/x/aibridged/aibridgedmock/poolmock.go
639+
enterprise/aibridged/aibridgedmock/clientmock.go\
640+
enterprise/aibridged/aibridgedmock/poolmock.go
641641

642642
GEN_FILES :=\
643643
tailnet/proto/tailnet.pb.go\
644644
agent/proto/agent.pb.go\
645645
provisionersdk/proto/provisioner.pb.go\
646646
provisionerd/proto/provisionerd.pb.go\
647647
vpn/vpn.pb.go\
648-
enterprise/x/aibridged/proto/aibridged.pb.go\
648+
enterprise/aibridged/proto/aibridged.pb.go\
649649
$(DB_GEN_FILES)\
650650
$(SITE_GEN_FILES)\
651651
coderd/rbac/object_gen.go\
@@ -697,7 +697,7 @@ gen/mark-fresh:
697697
provisionersdk/proto/provisioner.pb.go\
698698
provisionerd/proto/provisionerd.pb.go\
699699
vpn/vpn.pb.go\
700-
enterprise/x/aibridged/proto/aibridged.pb.go\
700+
enterprise/aibridged/proto/aibridged.pb.go\
701701
coderd/database/dump.sql\
702702
$(DB_GEN_FILES)\
703703
site/src/api/typesGenerated.ts\
@@ -768,8 +768,8 @@ codersdk/workspacesdk/agentconnmock/agentconnmock.go: codersdk/workspacesdk/agen
768768
go generate ./codersdk/workspacesdk/agentconnmock/
769769
touch"$@"
770770

771-
$(AIBRIDGED_MOCKS): enterprise/x/aibridged/client.go enterprise/x/aibridged/pool.go
772-
go generate ./enterprise/x/aibridged/aibridgedmock/
771+
$(AIBRIDGED_MOCKS): enterprise/aibridged/client.go enterprise/aibridged/pool.go
772+
go generate ./enterprise/aibridged/aibridgedmock/
773773
touch"$@"
774774

775775
agent/agentcontainers/dcspec/dcspec_gen.go:\
@@ -822,13 +822,13 @@ vpn/vpn.pb.go: vpn/vpn.proto
822822
--go_opt=paths=source_relative\
823823
./vpn/vpn.proto
824824

825-
enterprise/x/aibridged/proto/aibridged.pb.go: enterprise/x/aibridged/proto/aibridged.proto
825+
enterprise/aibridged/proto/aibridged.pb.go: enterprise/aibridged/proto/aibridged.proto
826826
protoc\
827827
--go_out=.\
828828
--go_opt=paths=source_relative\
829829
--go-drpc_out=.\
830830
--go-drpc_opt=paths=source_relative\
831-
./enterprise/x/aibridged/proto/aibridged.proto
831+
./enterprise/aibridged/proto/aibridged.proto
832832

833833
site/src/api/typesGenerated.ts: site/node_modules/.installed$(wildcard scripts/apitypings/*)$(shell find ./codersdk$(FIND_EXCLUSIONS) -type f -name '*.go')
834834
# -C sets the directory for the go run command

‎cli/testdata/coder_server_--help.golden‎

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,41 @@ OPTIONS:
8080
Periodically check for new releases of Coder and inform the owner. The
8181
check is performed once per day.
8282

83+
AIBRIDGE OPTIONS:
84+
--aibridge-anthropic-base-url string, $CODER_AIBRIDGE_ANTHROPIC_BASE_URL (default: https://api.anthropic.com/)
85+
The base URL of the Anthropic API.
86+
87+
--aibridge-anthropic-key string, $CODER_AIBRIDGE_ANTHROPIC_KEY
88+
The key to authenticate against the Anthropic API.
89+
90+
--aibridge-bedrock-access-key string, $CODER_AIBRIDGE_BEDROCK_ACCESS_KEY
91+
The access key to authenticate against the AWS Bedrock API.
92+
93+
--aibridge-bedrock-access-key-secret string, $CODER_AIBRIDGE_BEDROCK_ACCESS_KEY_SECRET
94+
The access key secret to use with the access key to authenticate
95+
against the AWS Bedrock API.
96+
97+
--aibridge-bedrock-model string, $CODER_AIBRIDGE_BEDROCK_MODEL (default: global.anthropic.claude-sonnet-4-5-20250929-v1:0)
98+
The model to use when making requests to the AWS Bedrock API.
99+
100+
--aibridge-bedrock-region string, $CODER_AIBRIDGE_BEDROCK_REGION
101+
The AWS Bedrock API region.
102+
103+
--aibridge-bedrock-small-fastmodel string, $CODER_AIBRIDGE_BEDROCK_SMALL_FAST_MODEL (default: global.anthropic.claude-haiku-4-5-20251001-v1:0)
104+
The small fast model to use when making requests to the AWS Bedrock
105+
API. Claude Code uses Haiku-class models to perform background tasks.
106+
See
107+
https://docs.claude.com/en/docs/claude-code/settings#environment-variables.
108+
109+
--aibridge-enabled bool, $CODER_AIBRIDGE_ENABLED (default: false)
110+
Whether to start an in-memory aibridged instance.
111+
112+
--aibridge-openai-base-url string, $CODER_AIBRIDGE_OPENAI_BASE_URL (default: https://api.openai.com/v1/)
113+
The base URL of the OpenAI API.
114+
115+
--aibridge-openai-key string, $CODER_AIBRIDGE_OPENAI_KEY
116+
The key to authenticate against the OpenAI API.
117+
83118
CLIENT OPTIONS:
84119
These options change the behavior of how clients interact with the Coder.
85120
Clients include the Coder CLI, Coder Desktop, IDE extensions, and the web UI.

‎cli/testdata/server-config.yaml.golden‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -714,8 +714,7 @@ workspace_prebuilds:
714714
# (default: 3, type: int)
715715
failure_hard_limit: 3
716716
aibridge:
717-
# Whether to start an in-memory aibridged instance ("aibridge" experiment must be
718-
# enabled, too).
717+
# Whether to start an in-memory aibridged instance.
719718
# (default: false, type: bool)
720719
enabled: false
721720
# The base URL of the OpenAI API.

‎coderd/apidoc/docs.go‎

Lines changed: 3 additions & 6 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/apidoc/swagger.json‎

Lines changed: 3 additions & 6 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎codersdk/aibridge.go‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,8 @@ func (f AIBridgeListInterceptionsFilter) asRequestOption() RequestOption {
113113

114114
// AIBridgeListInterceptions returns AIBridge interceptions with the given
115115
// filter.
116-
func (c*ExperimentalClient)AIBridgeListInterceptions(ctx context.Context,filterAIBridgeListInterceptionsFilter) (AIBridgeListInterceptionsResponse,error) {
117-
res,err:=c.Request(ctx,http.MethodGet,"/api/experimental/aibridge/interceptions",nil,filter.asRequestOption(),filter.Pagination.asRequestOption(),filter.Pagination.asRequestOption())
116+
func (c*Client)AIBridgeListInterceptions(ctx context.Context,filterAIBridgeListInterceptionsFilter) (AIBridgeListInterceptionsResponse,error) {
117+
res,err:=c.Request(ctx,http.MethodGet,"/api/v2/aibridge/interceptions",nil,filter.asRequestOption(),filter.Pagination.asRequestOption(),filter.Pagination.asRequestOption())
118118
iferr!=nil {
119119
returnAIBridgeListInterceptionsResponse{},err
120120
}

‎codersdk/deployment.go‎

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3241,14 +3241,13 @@ Write out the current server config as YAML to stdout.`,
32413241
// AIBridge Options
32423242
{
32433243
Name:"AIBridge Enabled",
3244-
Description:fmt.Sprintf("Whether to start an in-memory aibridged instance (%q experiment must be enabled, too).",ExperimentAIBridge),
3244+
Description:"Whether to start an in-memory aibridged instance.",
32453245
Flag:"aibridge-enabled",
32463246
Env:"CODER_AIBRIDGE_ENABLED",
32473247
Value:&c.AI.BridgeConfig.Enabled,
32483248
Default:"false",
32493249
Group:&deploymentGroupAIBridge,
32503250
YAML:"enabled",
3251-
Hidden:true,
32523251
},
32533252
{
32543253
Name:"AIBridge OpenAI Base URL",
@@ -3259,7 +3258,6 @@ Write out the current server config as YAML to stdout.`,
32593258
Default:"https://api.openai.com/v1/",
32603259
Group:&deploymentGroupAIBridge,
32613260
YAML:"openai_base_url",
3262-
Hidden:true,
32633261
},
32643262
{
32653263
Name:"AIBridge OpenAI Key",
@@ -3270,7 +3268,6 @@ Write out the current server config as YAML to stdout.`,
32703268
Default:"",
32713269
Group:&deploymentGroupAIBridge,
32723270
YAML:"openai_key",
3273-
Hidden:true,
32743271
},
32753272
{
32763273
Name:"AIBridge Anthropic Base URL",
@@ -3281,7 +3278,6 @@ Write out the current server config as YAML to stdout.`,
32813278
Default:"https://api.anthropic.com/",
32823279
Group:&deploymentGroupAIBridge,
32833280
YAML:"anthropic_base_url",
3284-
Hidden:true,
32853281
},
32863282
{
32873283
Name:"AIBridge Anthropic Key",
@@ -3292,7 +3288,6 @@ Write out the current server config as YAML to stdout.`,
32923288
Default:"",
32933289
Group:&deploymentGroupAIBridge,
32943290
YAML:"anthropic_key",
3295-
Hidden:true,
32963291
},
32973292
{
32983293
Name:"AIBridge Bedrock Region",
@@ -3303,7 +3298,6 @@ Write out the current server config as YAML to stdout.`,
33033298
Default:"",
33043299
Group:&deploymentGroupAIBridge,
33053300
YAML:"bedrock_region",
3306-
Hidden:true,
33073301
},
33083302
{
33093303
Name:"AIBridge Bedrock Access Key",
@@ -3314,7 +3308,6 @@ Write out the current server config as YAML to stdout.`,
33143308
Default:"",
33153309
Group:&deploymentGroupAIBridge,
33163310
YAML:"bedrock_access_key",
3317-
Hidden:true,
33183311
},
33193312
{
33203313
Name:"AIBridge Bedrock Access Key Secret",
@@ -3325,7 +3318,6 @@ Write out the current server config as YAML to stdout.`,
33253318
Default:"",
33263319
Group:&deploymentGroupAIBridge,
33273320
YAML:"bedrock_access_key_secret",
3328-
Hidden:true,
33293321
},
33303322
{
33313323
Name:"AIBridge Bedrock Model",
@@ -3336,7 +3328,6 @@ Write out the current server config as YAML to stdout.`,
33363328
Default:"global.anthropic.claude-sonnet-4-5-20250929-v1:0",// See https://docs.claude.com/en/api/claude-on-amazon-bedrock#accessing-bedrock.
33373329
Group:&deploymentGroupAIBridge,
33383330
YAML:"bedrock_model",
3339-
Hidden:true,
33403331
},
33413332
{
33423333
Name:"AIBridge Bedrock Small Fast Model",
@@ -3347,7 +3338,6 @@ Write out the current server config as YAML to stdout.`,
33473338
Default:"global.anthropic.claude-haiku-4-5-20251001-v1:0",// See https://docs.claude.com/en/api/claude-on-amazon-bedrock#accessing-bedrock.
33483339
Group:&deploymentGroupAIBridge,
33493340
YAML:"bedrock_small_fast_model",
3350-
Hidden:true,
33513341
},
33523342
{
33533343
Name:"Enable Authorization Recordings",
@@ -3645,7 +3635,6 @@ const (
36453635
ExperimentOAuth2Experiment="oauth2"// Enables OAuth2 provider functionality.
36463636
ExperimentMCPServerHTTPExperiment="mcp-server-http"// Enables the MCP HTTP server functionality.
36473637
ExperimentWorkspaceSharingExperiment="workspace-sharing"// Enables updating workspace ACLs for sharing with users and groups.
3648-
ExperimentAIBridgeExperiment="aibridge"// Enables AI Bridge functionality.
36493638
)
36503639

36513640
func (eExperiment)DisplayName()string {
@@ -3666,8 +3655,6 @@ func (e Experiment) DisplayName() string {
36663655
return"MCP HTTP Server Functionality"
36673656
caseExperimentWorkspaceSharing:
36683657
return"Workspace Sharing"
3669-
caseExperimentAIBridge:
3670-
return"AI Bridge"
36713658
default:
36723659
// Split on hyphen and convert to title case
36733660
// e.g. "web-push" -> "Web Push", "mcp-server-http" -> "Mcp Server Http"
@@ -3686,7 +3673,6 @@ var ExperimentsKnown = Experiments{
36863673
ExperimentOAuth2,
36873674
ExperimentMCPServerHTTP,
36883675
ExperimentWorkspaceSharing,
3689-
ExperimentAIBridge,
36903676
}
36913677

36923678
// ExperimentsSafe should include all experiments that are safe for

‎docs/ai-coder/ai-bridge.md‎

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
#AI Bridge
22

3-
>[!NOTE]
4-
>AI Bridge is currently an_experimental_ feature.
5-
63
![AI bridge diagram](../images/aibridge/aibridge_diagram.png)
74

85
Bridge is a smart proxy for AI. It acts as a man-in-the-middle between your users' coding agents / IDEs
@@ -45,17 +42,14 @@ Bridge runs inside the Coder control plane, requiring no separate compute to dep
4542

4643
###Activation
4744

48-
To enable this feature, activate the`aibridge` experiment using an environment variable or a CLI flag.
49-
Additionally, you will need to enable Bridge explicitly:
45+
You will need to enable AI Bridge explicitly:
5046

5147
```sh
52-
CODER_EXPERIMENTS="aibridge"CODER_AIBRIDGE_ENABLED=true coder server
48+
CODER_AIBRIDGE_ENABLED=true coder server
5349
# or
54-
coder server --experiments=aibridge --aibridge-enabled=true
50+
coder server --aibridge-enabled=true
5551
```
5652

57-
_If you have other experiments enabled, separate them by commas._
58-
5953
###Providers
6054

6155
Bridge currently supports OpenAI and Anthropic APIs.
@@ -89,8 +83,8 @@ Once AI Bridge is enabled on the server, your users need to configure their AI c
8983

9084
The exact configuration method varies by client — some use environment variables, others use configuration files or UI settings:
9185

92-
-**OpenAI-compatible clients**: Set the base URL (commonly via the`OPENAI_BASE_URL` environment variable) to`https://coder.example.com/api/experimental/aibridge/openai/v1`
93-
-**Anthropic-compatible clients**: Set the base URL (commonly via the`ANTHROPIC_BASE_URL` environment variable) to`https://coder.example.com/api/experimental/aibridge/anthropic`
86+
-**OpenAI-compatible clients**: Set the base URL (commonly via the`OPENAI_BASE_URL` environment variable) to`https://coder.example.com/api/v2/aibridge/openai/v1`
87+
-**Anthropic-compatible clients**: Set the base URL (commonly via the`ANTHROPIC_BASE_URL` environment variable) to`https://coder.example.com/api/v2/aibridge/anthropic`
9488

9589
Replace`coder.example.com` with your actual Coder deployment URL.
9690

@@ -133,7 +127,7 @@ All of these records are associated to an "interception" record, which maps 1:1
133127

134128
These logs can be used to determine usage patterns, track costs, and evaluate tooling adoption.
135129

136-
This data is currently accessible through the API and CLI (experimental), which we advise administrators export to their observability platform of choice. We've configured a Grafana dashboard to display Claude Code usage internally which can be imported as a starting point for your tooling adoption metrics.
130+
This data is currently accessible through the API and CLI, which we advise administrators export to their observability platform of choice. We've configured a Grafana dashboard to display Claude Code usage internally which can be imported as a starting point for your tooling adoption metrics.
137131

138132
![User Leaderboard](../images/aibridge/grafana_user_leaderboard.png)
139133

‎docs/manifest.json‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1180,6 +1180,21 @@
11801180
"path":"./reference/cli/index.md",
11811181
"icon_path":"./images/icons/terminal.svg",
11821182
"children": [
1183+
{
1184+
"title":"aibridge",
1185+
"description":"Manage AIBridge.",
1186+
"path":"reference/cli/aibridge.md"
1187+
},
1188+
{
1189+
"title":"aibridge interceptions",
1190+
"description":"Manage AIBridge interceptions.",
1191+
"path":"reference/cli/aibridge_interceptions.md"
1192+
},
1193+
{
1194+
"title":"aibridge interceptions list",
1195+
"description":"List AIBridge interceptions as JSON.",
1196+
"path":"reference/cli/aibridge_interceptions_list.md"
1197+
},
11831198
{
11841199
"title":"autoupdate",
11851200
"description":"Toggle auto-update policy for a workspace",

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp