Skip to content

Commit c9214e1

Browse files
sjarmakclaude
andcommitted
feat: add MCP infrastructure for 3 new ccb_fix tasks
Generates Dockerfile.sg_only for all 3 tasks, adds mirror mappings to inject_sg_repo_env.py, fixes clone manifest mirror names, and registers pending mirrors in instance_to_mirror.json. Mirrors at pre-fix commits (envoy--1ae957c1, envoy--5160151e, terraform--abd6b9ef) still need to be created on sg-evals before MCP runs can proceed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 03dfbe9 commit c9214e1

File tree

5 files changed

+157
-0
lines changed

5 files changed

+157
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# envoy-dfp-host-leak-fix-001 — sg_only_env variant (v2: clone-at-verify)
2+
# Empty workspace — agent uses Sourcegraph MCP for code access.
3+
# Verifier clones mirror(s) at verification time via clone manifest.
4+
5+
FROM ubuntu:22.04
6+
7+
ENV SOURCEGRAPH_REPO_NAME=sg-evals/envoy--5160151e
8+
9+
ENV DEBIAN_FRONTEND=noninteractive
10+
11+
RUN apt-get update && apt-get install -y --no-install-recommends \
12+
git \
13+
ca-certificates \
14+
python3 \
15+
curl \
16+
&& rm -rf /var/lib/apt/lists/*
17+
18+
# Install Node.js (needed by verifier)
19+
RUN if ! command -v node > /dev/null 2>&1; then \
20+
curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
21+
apt-get install -y --no-install-recommends nodejs; \
22+
fi
23+
24+
WORKDIR /workspace
25+
26+
# Empty git repo so agent can commit work
27+
RUN git init && \
28+
git config user.email "agent@example.com" && \
29+
git config user.name "Agent"
30+
31+
RUN mkdir -p /logs/agent /logs/verifier
32+
33+
# Clone manifest for verifier (clone-at-verify strategy)
34+
RUN echo '{"workdir":"/workspace","repos":[{"mirror":"sg-evals/envoy--5160151e","target_dir":"."}]}' > /tmp/.sg_only_clone_manifest.json
35+
36+
# Mark sg_only mode
37+
RUN touch /tmp/.sg_only_mode
38+
39+
# Pre-create claude user and set ownership at build time.
40+
RUN (adduser --disabled-password --gecos '' claude 2>/dev/null || true) && \
41+
for d in /workspace /app /testbed /logs; do [ -d "$d" ] && chown -R claude:claude "$d"; done || true
42+
43+
ENTRYPOINT []
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# envoy-udp-proxy-cds-fix-001 — sg_only_env variant (v2: clone-at-verify)
2+
# Empty workspace — agent uses Sourcegraph MCP for code access.
3+
# Verifier clones mirror(s) at verification time via clone manifest.
4+
5+
FROM ubuntu:22.04
6+
7+
ENV SOURCEGRAPH_REPO_NAME=sg-evals/envoy--1ae957c1
8+
9+
ENV DEBIAN_FRONTEND=noninteractive
10+
11+
RUN apt-get update && apt-get install -y --no-install-recommends \
12+
git \
13+
ca-certificates \
14+
python3 \
15+
curl \
16+
&& rm -rf /var/lib/apt/lists/*
17+
18+
# Install Node.js (needed by verifier)
19+
RUN if ! command -v node > /dev/null 2>&1; then \
20+
curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
21+
apt-get install -y --no-install-recommends nodejs; \
22+
fi
23+
24+
WORKDIR /workspace
25+
26+
# Empty git repo so agent can commit work
27+
RUN git init && \
28+
git config user.email "agent@example.com" && \
29+
git config user.name "Agent"
30+
31+
RUN mkdir -p /logs/agent /logs/verifier
32+
33+
# Clone manifest for verifier (clone-at-verify strategy)
34+
RUN echo '{"workdir":"/workspace","repos":[{"mirror":"sg-evals/envoy--1ae957c1","target_dir":"."}]}' > /tmp/.sg_only_clone_manifest.json
35+
36+
# Mark sg_only mode
37+
RUN touch /tmp/.sg_only_mode
38+
39+
# Pre-create claude user and set ownership at build time.
40+
RUN (adduser --disabled-password --gecos '' claude 2>/dev/null || true) && \
41+
for d in /workspace /app /testbed /logs; do [ -d "$d" ] && chown -R claude:claude "$d"; done || true
42+
43+
ENTRYPOINT []
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# terraform-plan-null-unknown-fix-001 — sg_only_env variant (v2: clone-at-verify)
2+
# Empty workspace — agent uses Sourcegraph MCP for code access.
3+
# Verifier clones mirror(s) at verification time via clone manifest.
4+
5+
FROM ubuntu:22.04
6+
7+
ENV SOURCEGRAPH_REPO_NAME=sg-evals/terraform--abd6b9ef
8+
9+
ENV DEBIAN_FRONTEND=noninteractive
10+
11+
RUN apt-get update && apt-get install -y --no-install-recommends \
12+
git \
13+
ca-certificates \
14+
python3 \
15+
curl \
16+
&& rm -rf /var/lib/apt/lists/*
17+
18+
# Install Node.js (needed by verifier)
19+
RUN if ! command -v node > /dev/null 2>&1; then \
20+
curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
21+
apt-get install -y --no-install-recommends nodejs; \
22+
fi
23+
24+
WORKDIR /workspace
25+
26+
# Empty git repo so agent can commit work
27+
RUN git init && \
28+
git config user.email "agent@example.com" && \
29+
git config user.name "Agent"
30+
31+
RUN mkdir -p /logs/agent /logs/verifier
32+
33+
# Clone manifest for verifier (clone-at-verify strategy)
34+
RUN echo '{"workdir":"/workspace","repos":[{"mirror":"sg-evals/terraform--abd6b9ef","target_dir":"."}]}' > /tmp/.sg_only_clone_manifest.json
35+
36+
# Mark sg_only mode
37+
RUN touch /tmp/.sg_only_mode
38+
39+
# Pre-create claude user and set ownership at build time.
40+
RUN (adduser --disabled-password --gecos '' claude 2>/dev/null || true) && \
41+
for d in /workspace /app /testbed /logs; do [ -d "$d" ] && chown -R claude:claude "$d"; done || true
42+
43+
ENTRYPOINT []

configs/instance_to_mirror.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -618,6 +618,22 @@
618618
"tag": "v1.31.0",
619619
"indexed": true,
620620
"used_by": ["envoy-migration-doc-gen-001"]
621+
},
622+
"pre_fix_udp_cds": {
623+
"repo": "envoyproxy/envoy",
624+
"mirror_name": "sg-evals/envoy--1ae957c1",
625+
"commit": "1ae957c1f92b8e0b0322ab702c67612aa618d214",
626+
"indexed": false,
627+
"pending_creation": true,
628+
"used_by": ["envoy-udp-proxy-cds-fix-001"]
629+
},
630+
"pre_fix_dfp_leak": {
631+
"repo": "envoyproxy/envoy",
632+
"mirror_name": "sg-evals/envoy--5160151e",
633+
"commit": "5160151e14837c6f352b9d0b3a9f55119a9317e8",
634+
"indexed": false,
635+
"pending_creation": true,
636+
"used_by": ["envoy-dfp-host-leak-fix-001"]
621637
}
622638
},
623639
"terraform": {
@@ -636,6 +652,14 @@
636652
"tag": "v1.10.0",
637653
"indexed": true,
638654
"used_by": ["terraform-arch-doc-gen-001"]
655+
},
656+
"pre_fix_plan_null_unknown": {
657+
"repo": "hashicorp/terraform",
658+
"mirror_name": "sg-evals/terraform--abd6b9ef",
659+
"commit": "abd6b9ef1ba5e98ed273f59f667d3b9f2077a87b",
660+
"indexed": false,
661+
"pending_creation": true,
662+
"used_by": ["terraform-plan-null-unknown-fix-001"]
639663
}
640664
}
641665
},

scripts/inject_sg_repo_env.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,9 @@
8686
"curl-cve-triage-001": "sg-evals/curl--09e25b9d",
8787
"curl-security-review-001": "sg-evals/curl--09e25b9d",
8888
"curl-vuln-reachability-001": "sg-evals/curl--09e25b9d",
89+
# --- envoy ---
90+
"envoy-udp-proxy-cds-fix-001": "sg-evals/envoy--1ae957c1",
91+
"envoy-dfp-host-leak-fix-001": "sg-evals/envoy--5160151e",
8992
# --- django ---
9093
"django-admins-migration-audit-001": "sg-evals/django--e295033",
9194
"django-audit-trail-implement-001": "sg-evals/django--674eda1c",
@@ -246,6 +249,7 @@
246249
"terraform-phantom-update-debug-001": "sg-evals/terraform--9658f9df",
247250
"terraform-plan-pipeline-qa-001": "sg-evals/terraform--24236f4f",
248251
"terraform-state-backend-handoff-001": "sg-evals/terraform--v1.9.0",
252+
"terraform-plan-null-unknown-fix-001": "sg-evals/terraform--abd6b9ef",
249253
# --- test suites ---
250254
"test-coverage-gap-001": "sg-evals/envoy--1d0ba73a",
251255
"test-coverage-gap-002": "sg-evals/kafka--e678b4b",

0 commit comments

Comments
 (0)