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

Commit705f201

Browse files
committed
chore: remove deprecated AITaskPromptParameterName constant
This removes the deprecated AITaskPromptParameterName constant andall backward compatibility code that was added in v2.28.Changes:- Remove AITaskPromptParameterName constant from codersdk/aitasks.go- Remove backward compatibility code in coderd/aitasks.go that automatically populated the 'AI Prompt' parameter for templates that defined it- Remove the backward compatibility test (OK AIPromptBackCompat)- Update dbfake to no longer set the AI Prompt parameter- Update toolsdk tests to not require AI Prompt parameter- Remove AITaskPromptParameterName from frontend TypeScript types- Remove preset prompt read-only feature from TaskPrompt component that relied on the AI Prompt parameter- Update test mocks (MockAIPromptPresets) to not include AI PromptTask prompts are now exclusively stored in the tasks.prompt databasecolumn, as introduced in the migration that added the tasks table.Related:coder/internal#1150
1 parentd3fe72c commit705f201

File tree

12 files changed

+22
-166
lines changed

12 files changed

+22
-166
lines changed

‎coderd/aitasks.go‎

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import (
2626
"github.com/coder/coder/v2/coderd/rbac/policy"
2727
"github.com/coder/coder/v2/coderd/searchquery"
2828
"github.com/coder/coder/v2/coderd/util/ptr"
29-
"github.com/coder/coder/v2/coderd/util/slice"
3029
"github.com/coder/coder/v2/codersdk"
3130
)
3231

@@ -129,31 +128,10 @@ func (api *API) tasksCreate(rw http.ResponseWriter, r *http.Request) {
129128
}
130129
}
131130

132-
// Check if the template defines the AI Prompt parameter.
133-
templateParams,err:=api.Database.GetTemplateVersionParameters(ctx,req.TemplateVersionID)
134-
iferr!=nil {
135-
httpapi.Write(ctx,rw,http.StatusInternalServerError, codersdk.Response{
136-
Message:"Internal error fetching template parameters.",
137-
Detail:err.Error(),
138-
})
139-
return
140-
}
141-
142-
varrichParams []codersdk.WorkspaceBuildParameter
143-
if_,hasAIPromptParam:=slice.Find(templateParams,func(param database.TemplateVersionParameter)bool {
144-
returnparam.Name==codersdk.AITaskPromptParameterName
145-
});hasAIPromptParam {
146-
// Only add the AI Prompt parameter if the template defines it.
147-
richParams= []codersdk.WorkspaceBuildParameter{
148-
{Name:codersdk.AITaskPromptParameterName,Value:req.Input},
149-
}
150-
}
151-
152131
createReq:= codersdk.CreateWorkspaceRequest{
153132
Name:taskName,
154133
TemplateVersionID:req.TemplateVersionID,
155134
TemplateVersionPresetID:req.TemplateVersionPresetID,
156-
RichParameterValues:richParams,
157135
}
158136

159137
varownerworkspaceOwner

‎coderd/aitasks_test.go‎

Lines changed: 4 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ func TestTasks(t *testing.T) {
5757
o(&opt)
5858
}
5959

60-
// Create a template version that supports AI tasks with the AI Prompt parameter.
60+
// Create a template version that supports AI tasks.
6161
taskAppID:=uuid.New()
6262
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,&echo.Responses{
6363
Parse:echo.ParseComplete,
@@ -145,7 +145,7 @@ func TestTasks(t *testing.T) {
145145

146146
got,ok:=slice.Find(tasks,func(t codersdk.Task)bool {returnt.ID==task.ID })
147147
require.True(t,ok,"task should be found in the list")
148-
assert.Equal(t,wantPrompt,got.InitialPrompt,"task prompt should match theAI Prompt parameter")
148+
assert.Equal(t,wantPrompt,got.InitialPrompt,"task prompt should match theinput")
149149
assert.Equal(t,task.WorkspaceID.UUID,got.WorkspaceID.UUID,"workspace id should match")
150150
assert.Equal(t,task.WorkspaceName,got.WorkspaceName,"workspace name should match")
151151
// Status should be populated via the tasks_with_status view.
@@ -204,7 +204,7 @@ func TestTasks(t *testing.T) {
204204

205205
assert.Equal(t,task.ID,updated.ID,"task ID should match")
206206
assert.Equal(t,task.Name,updated.Name,"task name should match")
207-
assert.Equal(t,wantPrompt,updated.InitialPrompt,"task prompt should match theAI Prompt parameter")
207+
assert.Equal(t,wantPrompt,updated.InitialPrompt,"task prompt should match theinput")
208208
assert.Equal(t,task.WorkspaceID.UUID,updated.WorkspaceID.UUID,"workspace id should match")
209209
assert.Equal(t,task.WorkspaceName,updated.WorkspaceName,"workspace name should match")
210210
assert.Equal(t,ws.LatestBuild.BuildNumber,updated.WorkspaceBuildNumber,"workspace build number should match")
@@ -973,56 +973,6 @@ func TestTasksCreate(t *testing.T) {
973973
require.Len(t,parameters,0)
974974
})
975975

976-
t.Run("OK AIPromptBackCompat",func(t*testing.T) {
977-
t.Parallel()
978-
979-
var (
980-
ctx=testutil.Context(t,testutil.WaitShort)
981-
982-
taskPrompt="Some task prompt"
983-
)
984-
985-
client:=coderdtest.New(t,&coderdtest.Options{IncludeProvisionerDaemon:true})
986-
user:=coderdtest.CreateFirstUser(t,client)
987-
988-
// Given: A template with an "AI Prompt" parameter
989-
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,&echo.Responses{
990-
Parse:echo.ParseComplete,
991-
ProvisionApply:echo.ApplyComplete,
992-
ProvisionPlan: []*proto.Response{
993-
{Type:&proto.Response_Plan{Plan:&proto.PlanComplete{
994-
Parameters: []*proto.RichParameter{{Name:codersdk.AITaskPromptParameterName,Type:"string"}},
995-
HasAiTasks:true,
996-
}}},
997-
},
998-
})
999-
coderdtest.AwaitTemplateVersionJobCompleted(t,client,version.ID)
1000-
template:=coderdtest.CreateTemplate(t,client,user.OrganizationID,version.ID)
1001-
1002-
// When: We attempt to create a Task.
1003-
task,err:=client.CreateTask(ctx,"me", codersdk.CreateTaskRequest{
1004-
TemplateVersionID:template.ActiveVersionID,
1005-
Input:taskPrompt,
1006-
})
1007-
require.NoError(t,err)
1008-
require.True(t,task.WorkspaceID.Valid)
1009-
1010-
ws,err:=client.Workspace(ctx,task.WorkspaceID.UUID)
1011-
require.NoError(t,err)
1012-
coderdtest.AwaitWorkspaceBuildJobCompleted(t,client,ws.LatestBuild.ID)
1013-
1014-
// Then: We expect a workspace to have been created.
1015-
assert.NotEmpty(t,task.Name)
1016-
assert.Equal(t,template.ID,task.TemplateID)
1017-
1018-
// And: We expect it to have the "AI Prompt" parameter correctly set.
1019-
parameters,err:=client.WorkspaceBuildParameters(ctx,ws.LatestBuild.ID)
1020-
require.NoError(t,err)
1021-
require.Len(t,parameters,1)
1022-
assert.Equal(t,codersdk.AITaskPromptParameterName,parameters[0].Name)
1023-
assert.Equal(t,taskPrompt,parameters[0].Value)
1024-
})
1025-
1026976
t.Run("CustomNames",func(t*testing.T) {
1027977
t.Parallel()
1028978

@@ -1149,7 +1099,7 @@ func TestTasksCreate(t *testing.T) {
11491099
client:=coderdtest.New(t,&coderdtest.Options{IncludeProvisionerDaemon:true})
11501100
user:=coderdtest.CreateFirstUser(t,client)
11511101

1152-
// Given: A template withoutan "AIPrompt" parameter
1102+
// Given: A template without AItask support (no coder_ai_task resource)
11531103
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,nil)
11541104
coderdtest.AwaitTemplateVersionJobCompleted(t,client,version.ID)
11551105
template:=coderdtest.CreateTemplate(t,client,user.OrganizationID,version.ID)

‎coderd/database/dbfake/dbfake.go‎

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
"github.com/coder/coder/v2/coderd/rbac"
2525
"github.com/coder/coder/v2/coderd/telemetry"
2626
"github.com/coder/coder/v2/coderd/wspubsub"
27-
"github.com/coder/coder/v2/codersdk"
2827
"github.com/coder/coder/v2/provisionersdk"
2928
sdkproto"github.com/coder/coder/v2/provisionersdk/proto"
3029
)
@@ -130,10 +129,7 @@ func (b WorkspaceBuildBuilder) WithTask(taskSeed database.TaskTable, appSeed *sd
130129
b.taskAppID,err=uuid.Parse(takeFirst(appSeed.Id,uuid.NewString()))
131130
require.NoError(b.t,err)
132131

133-
returnb.Params(database.WorkspaceBuildParameter{
134-
Name:codersdk.AITaskPromptParameterName,
135-
Value:b.taskSeed.Prompt,
136-
}).WithAgent(func(a []*sdkproto.Agent) []*sdkproto.Agent {
132+
returnb.WithAgent(func(a []*sdkproto.Agent) []*sdkproto.Agent {
137133
a[0].Apps= []*sdkproto.App{
138134
{
139135
Id:b.taskAppID.String(),

‎codersdk/aitasks.go‎

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,8 @@ import (
1010

1111
"github.com/google/uuid"
1212
"golang.org/x/xerrors"
13-
14-
"github.com/coder/terraform-provider-coder/v2/provider"
1513
)
1614

17-
// AITaskPromptParameterName is the name of the parameter used to pass prompts
18-
// to AI tasks.
19-
//
20-
// Deprecated: This constant is deprecated and maintained only for backwards
21-
// compatibility with older templates. Task prompts are now stored directly
22-
// in the tasks.prompt database column. New code should access prompts via
23-
// the Task.InitialPrompt field returned from task endpoints.
24-
//
25-
// This constant will be removed in a future major version. Templates should
26-
// not rely on this parameter name, as the backend will continue to create it
27-
// automatically for compatibility but reads from tasks.prompt.
28-
constAITaskPromptParameterName=provider.TaskPromptParameterName
29-
3015
// CreateTaskRequest represents the request to create a new task.
3116
typeCreateTaskRequeststruct {
3217
TemplateVersionID uuid.UUID`json:"template_version_id" format:"uuid"`

‎codersdk/toolsdk/toolsdk_test.go‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1017,7 +1017,6 @@ func TestTools(t *testing.T) {
10171017
ProvisionApply:echo.ApplyComplete,
10181018
ProvisionPlan: []*proto.Response{
10191019
{Type:&proto.Response_Plan{Plan:&proto.PlanComplete{
1020-
Parameters: []*proto.RichParameter{{Name:"AI Prompt",Type:"string"}},
10211020
HasAiTasks:true,
10221021
}}},
10231022
},

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ data "coder_workspace_owner" "me" {}
5858
5959
data "coder_workspace" "me" {}
6060
61+
data "coder_task" "me" {}
62+
6163
resource "coder_agent" "dev" {
6264
arch = "amd64"
6365
os = "linux"
@@ -71,13 +73,12 @@ resource "coder_agent" "dev" {
7173
7274
# See https://registry.coder.com/modules/coder/claude-code for more information
7375
module "claude-code" {
74-
count = local.has_ai_prompt ? data.coder_workspace.me.start_count : 0
7576
source = "dev.registry.coder.com/coder/claude-code/coder"
76-
version = ">=3.4.0"
77+
version = ">=4.0.0"
7778
agent_id = coder_agent.dev.id
7879
workdir = "/home/coder/project"
7980
claude_api_key = data.coder_workspace_owner.me.session_token # Use the Coder session token to authenticate with AI Bridge
80-
ai_prompt = data.coder_parameter.ai_prompt.value
81+
ai_prompt = data.coder_task.me.prompt
8182
... # other claude-code configuration
8283
}
8384
```

‎docs/ai-coder/tasks-migration.md‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ Prior to Coder version 2.28.0, the definition of a Coder task was different to t
88

99
Note that 2 and 3 were generally handled by the`coder/agentapi` Terraform module.
1010

11-
The pre-2.28.0 definition will be supported until the release of 2.29.0. You will need to update your Tasks-enabled templates to continue using Tasks after this release.
11+
>[!IMPORTANT]
12+
>The pre-2.28.0 definition is no longer supported as of Coder 2.30.0. You must update your Tasks-enabled templates to use the new format described below.
1213
1314
You can view an[example migration here](https://github.com/coder/coder/pull/20420). Alternatively, follow the steps below:
1415

@@ -114,7 +115,7 @@ resource "coder_ai_task" "task" {
114115

115116
In v2.28 and above, the following changes were made:
116117

117-
- The explicitly named "AI Prompt" parameter isdeprecated. The task prompt is now available in the`coder_ai_task` resource (provider version 2.12 and above) and`coder_task` data source (provider version 2.13 and above).
118+
- The explicitly named "AI Prompt" parameter isno longer supported. The task prompt is now available in the`coder_ai_task` resource (provider version 2.12 and above) and`coder_task` data source (provider version 2.13 and above).
118119
- Modules no longer define the`coder_ai_task` resource. These must be defined explicitly in the template.
119120
- The`sidebar_app` field of the`coder_ai_task` resource is now deprecated. In its place, use`app_id`.
120121

‎provisioner/terraform/provision_test.go‎

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ import (
1919
"github.com/stretchr/testify/assert"
2020
"github.com/stretchr/testify/require"
2121

22-
"github.com/coder/terraform-provider-coder/v2/provider"
23-
2422
"cdr.dev/slog"
2523
"cdr.dev/slog/sloggers/slogtest"
2624

@@ -885,18 +883,15 @@ func TestProvision(t *testing.T) {
885883
{
886884
Name:"ai-task-multiple-allowed-in-plan",
887885
Files:map[string]string{
888-
"main.tf":fmt.Sprintf(`terraform {
886+
"main.tf":`terraform {
889887
required_providers {
890888
coder = {
891889
source = "coder/coder"
892-
version = ">= 2.7.0"
890+
version = ">= 2.13.0"
893891
}
894892
}
895893
}
896-
data "coder_parameter" "prompt" {
897-
name = "%s"
898-
type = "string"
899-
}
894+
data "coder_task" "me" {}
900895
resource "coder_ai_task" "a" {
901896
sidebar_app {
902897
id = "7128be08-8722-44cb-bbe1-b5a391c4d94b" # fake ID, irrelevant here anyway but needed for validation
@@ -907,7 +902,7 @@ func TestProvision(t *testing.T) {
907902
id = "7128be08-8722-44cb-bbe1-b5a391c4d94b" # fake ID, irrelevant here anyway but needed for validation
908903
}
909904
}
910-
`,provider.TaskPromptParameterName),
905+
`,
911906
},
912907
Request:&proto.PlanRequest{},
913908
Response:&proto.PlanComplete{
@@ -921,14 +916,6 @@ func TestProvision(t *testing.T) {
921916
Type:"coder_ai_task",
922917
},
923918
},
924-
Parameters: []*proto.RichParameter{
925-
{
926-
Name:provider.TaskPromptParameterName,
927-
Type:"string",
928-
Required:true,
929-
FormType:proto.ParameterFormType_INPUT,
930-
},
931-
},
932919
AiTasks: []*proto.AITask{
933920
{
934921
Id:"a",

‎site/src/api/typesGenerated.ts‎

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

‎site/src/modules/tasks/TaskPrompt/TaskPrompt.stories.tsx‎

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import{
2-
MockAIPromptPresets,
32
MockPresets,
43
MockTask,
4+
MockTaskPresets,
55
MockTasks,
66
MockTemplate,
77
MockTemplateVersion,
@@ -72,11 +72,9 @@ export const WithPresets: Story = {
7272
},
7373
};
7474

75-
exportconstReadOnlyPresetPrompt:Story={
75+
exportconstWithAIPresets:Story={
7676
beforeEach:()=>{
77-
spyOn(API,"getTemplateVersionPresets").mockResolvedValue(
78-
MockAIPromptPresets,
79-
);
77+
spyOn(API,"getTemplateVersionPresets").mockResolvedValue(MockTaskPresets);
8078
},
8179
};
8280

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp