mirror of
https://github.com/coder/coder.git
synced 2026-06-02 20:48:20 +00:00
chore(dogfood): remove tasks bits from coder and vscode-coder templates (#25479)
Co-authored-by: Atif Ali <atif@coder.com>
This commit is contained in:
@@ -277,7 +277,6 @@ data "coder_external_auth" "github" {
|
|||||||
|
|
||||||
data "coder_workspace" "me" {}
|
data "coder_workspace" "me" {}
|
||||||
data "coder_workspace_owner" "me" {}
|
data "coder_workspace_owner" "me" {}
|
||||||
data "coder_task" "me" {}
|
|
||||||
data "coder_workspace_tags" "tags" {
|
data "coder_workspace_tags" "tags" {
|
||||||
tags = {
|
tags = {
|
||||||
"cluster" : "dogfood-v2"
|
"cluster" : "dogfood-v2"
|
||||||
@@ -991,10 +990,6 @@ resource "coder_metadata" "container_info" {
|
|||||||
key = "region"
|
key = "region"
|
||||||
value = data.coder_parameter.region.option[index(data.coder_parameter.region.option.*.value, data.coder_parameter.region.value)].name
|
value = data.coder_parameter.region.option[index(data.coder_parameter.region.option.*.value, data.coder_parameter.region.value)].name
|
||||||
}
|
}
|
||||||
item {
|
|
||||||
key = "ai_task"
|
|
||||||
value = data.coder_task.me.enabled ? "yes" : "no"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "coder_script" "boundary_config_setup" {
|
resource "coder_script" "boundary_config_setup" {
|
||||||
|
|||||||
@@ -204,7 +204,6 @@ data "coder_external_auth" "github" {
|
|||||||
|
|
||||||
data "coder_workspace" "me" {}
|
data "coder_workspace" "me" {}
|
||||||
data "coder_workspace_owner" "me" {}
|
data "coder_workspace_owner" "me" {}
|
||||||
data "coder_task" "me" {}
|
|
||||||
data "coder_workspace_tags" "tags" {
|
data "coder_workspace_tags" "tags" {
|
||||||
tags = {
|
tags = {
|
||||||
"cluster" : "dogfood-v2"
|
"cluster" : "dogfood-v2"
|
||||||
@@ -541,99 +540,28 @@ resource "coder_metadata" "container_info" {
|
|||||||
key = "region"
|
key = "region"
|
||||||
value = data.coder_parameter.region.option[index(data.coder_parameter.region.option.*.value, data.coder_parameter.region.value)].name
|
value = data.coder_parameter.region.option[index(data.coder_parameter.region.option.*.value, data.coder_parameter.region.value)].name
|
||||||
}
|
}
|
||||||
item {
|
|
||||||
key = "ai_task"
|
|
||||||
value = data.coder_task.me.enabled ? "yes" : "no"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# --- AI task support ---
|
|
||||||
|
|
||||||
locals {
|
|
||||||
claude_system_prompt = <<-EOT
|
|
||||||
-- Framing --
|
|
||||||
You are a helpful coding assistant working on the coder/vscode-coder
|
|
||||||
VS Code extension. Aim to autonomously investigate and solve issues
|
|
||||||
the user gives you and test your work, whenever possible.
|
|
||||||
|
|
||||||
Avoid shortcuts like mocking tests. When you get stuck, you can ask
|
|
||||||
the user but opt for autonomy.
|
|
||||||
|
|
||||||
-- Tool Selection --
|
|
||||||
- Built-in tools for everything:
|
|
||||||
(file operations, git commands, builds & installs, one-off shell commands)
|
|
||||||
|
|
||||||
-- Testing --
|
|
||||||
Integration tests launch a real VS Code instance and require a
|
|
||||||
virtual framebuffer. Run them headlessly with:
|
|
||||||
xvfb-run -a pnpm test:integration
|
|
||||||
This matches how CI runs them. Unit tests do not need xvfb-run:
|
|
||||||
pnpm test
|
|
||||||
|
|
||||||
-- Workflow --
|
|
||||||
When starting new work:
|
|
||||||
1. If given a GitHub issue URL, use the `gh` CLI to read the full
|
|
||||||
issue details with `gh issue view <issue-number>`.
|
|
||||||
2. Create a feature branch for the work using a descriptive name
|
|
||||||
based on the issue or task.
|
|
||||||
Example: `git checkout -b fix/issue-123-ssh-retry`
|
|
||||||
3. Proceed with implementation following the AGENTS.md guidelines.
|
|
||||||
|
|
||||||
-- Context --
|
|
||||||
This is the coder/vscode-coder VS Code extension. It is a real-world
|
|
||||||
production extension used by developers to connect to Coder workspaces.
|
|
||||||
Be sure to read AGENTS.md before making any changes.
|
|
||||||
EOT
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module "claude-code" {
|
module "claude-code" {
|
||||||
count = data.coder_task.me.enabled ? data.coder_workspace.me.start_count : 0
|
count = data.coder_workspace.me.start_count
|
||||||
source = "dev.registry.coder.com/coder/claude-code/coder"
|
source = "dev.registry.coder.com/coder/claude-code/coder"
|
||||||
version = "4.9.2"
|
version = "5.2.0"
|
||||||
enable_boundary = true
|
enable_ai_gateway = data.coder_parameter.use_ai_bridge.value
|
||||||
agent_id = coder_agent.dev.id
|
anthropic_api_key = data.coder_parameter.use_ai_bridge.value ? "" : var.anthropic_api_key
|
||||||
workdir = local.repo_dir
|
agent_id = coder_agent.dev.id
|
||||||
claude_code_version = "latest"
|
workdir = local.repo_dir
|
||||||
model = "opus"
|
|
||||||
order = 999
|
|
||||||
claude_api_key = data.coder_parameter.use_ai_bridge.value ? data.coder_workspace_owner.me.session_token : var.anthropic_api_key
|
|
||||||
agentapi_version = "latest"
|
|
||||||
system_prompt = local.claude_system_prompt
|
|
||||||
ai_prompt = data.coder_task.me.prompt
|
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "coder_ai_task" "task" {
|
resource "coder_app" "claude" {
|
||||||
count = data.coder_task.me.enabled ? data.coder_workspace.me.start_count : 0
|
|
||||||
app_id = module.claude-code[count.index].task_app_id
|
|
||||||
}
|
|
||||||
|
|
||||||
resource "coder_app" "watch" {
|
|
||||||
count = data.coder_task.me.enabled ? data.coder_workspace.me.start_count : 0
|
|
||||||
agent_id = coder_agent.dev.id
|
agent_id = coder_agent.dev.id
|
||||||
slug = "watch"
|
slug = "claude"
|
||||||
display_name = "pnpm watch"
|
display_name = "Claude Code"
|
||||||
icon = "${data.coder_workspace.me.access_url}/icon/code.svg"
|
icon = "/icon/claude.svg"
|
||||||
command = "screen -x pnpm_watch"
|
open_in = "slim-window"
|
||||||
share = "authenticated"
|
command = <<-EOT
|
||||||
open_in = "tab"
|
#!/bin/bash
|
||||||
order = 0
|
set -e
|
||||||
}
|
cd "${local.repo_dir}"
|
||||||
|
exec tmux new-session -A -s claude claude
|
||||||
resource "coder_script" "watch" {
|
|
||||||
count = data.coder_task.me.enabled ? data.coder_workspace.me.start_count : 0
|
|
||||||
display_name = "pnpm watch"
|
|
||||||
agent_id = coder_agent.dev.id
|
|
||||||
run_on_start = true
|
|
||||||
start_blocks_login = false
|
|
||||||
icon = "${data.coder_workspace.me.access_url}/icon/code.svg"
|
|
||||||
script = <<-EOT
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -eux -o pipefail
|
|
||||||
|
|
||||||
trap 'coder exp sync complete pnpm-watch' EXIT
|
|
||||||
coder exp sync want pnpm-watch install-deps
|
|
||||||
coder exp sync start pnpm-watch
|
|
||||||
|
|
||||||
cd "${local.repo_dir}" && screen -dmS pnpm_watch /bin/sh -c 'while true; do pnpm watch; echo "pnpm watch exited with code $? restarting in 10s"; sleep 10; done'
|
|
||||||
EOT
|
EOT
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user