Skip to content

Commit 94b1319

Browse files
sjarmakclaude
andcommitted
fix: re-mirror sg-benchmarks at pinned commits + fix 5 oracles
Re-mirrored 3 sg-benchmarks repos at Dockerfile-pinned versions to eliminate version drift between MCP and baseline configs: - expressjs-express: v5.2.1 → 4.21.1 - grafana-loki: v3.6.5 → v3.3.4 - kubernetes-client-go: v12.0.0 → v0.32.0 Fixed oracles for 5 tasks: - ccx-incident-031: server/storage/mvcc/ → server/mvcc/ (etcd v3.5.17) - ccx-onboard-050-ds: same etcd path rename - ccx-vuln-remed-011: cookie ^0.7.1 → 0.7.1 (express 4.21.1) - ccx-vuln-remed-014: pkg/dataobj/explorer/service.go → pkg/loki/modules.go (dataobj/ dir DNE at loki v3.3.4; modules.go has unauth ingester endpoints) - ccx-dep-trace-001: 8→9 files (remove lister.go false positive, add informer.go + golden_test.go at client-go v0.32.0) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 2f65df3 commit 94b1319

File tree

13 files changed

+120
-35
lines changed

13 files changed

+120
-35
lines changed
Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
11
{
22
"files": [
33
{"repo": "sg-benchmarks/kubernetes-client-go", "path": "dynamic/client_test.go"},
4+
{"repo": "sg-benchmarks/kubernetes-client-go", "path": "dynamic/dynamicinformer/informer.go"},
45
{"repo": "sg-benchmarks/kubernetes-client-go", "path": "dynamic/dynamicinformer/informer_test.go"},
5-
{"repo": "sg-benchmarks/kubernetes-client-go", "path": "dynamic/dynamiclister/lister.go"},
66
{"repo": "sg-benchmarks/kubernetes-client-go", "path": "dynamic/dynamiclister/lister_test.go"},
77
{"repo": "sg-benchmarks/kubernetes-client-go", "path": "dynamic/dynamiclister/shim.go"},
88
{"repo": "sg-benchmarks/kubernetes-client-go", "path": "dynamic/fake/simple.go"},
99
{"repo": "sg-benchmarks/kubernetes-client-go", "path": "dynamic/fake/simple_test.go"},
10+
{"repo": "sg-benchmarks/kubernetes-client-go", "path": "dynamic/golden_test.go"},
1011
{"repo": "sg-benchmarks/kubernetes-client-go", "path": "dynamic/scheme.go"}
1112
],
12-
"text": "Found 8 files in the dynamic/ tree of sg-benchmarks/kubernetes-client-go that directly import k8s.io/apimachinery/pkg/runtime: dynamic/client_test.go, dynamic/dynamicinformer/informer_test.go, dynamic/dynamiclister/lister.go, dynamic/dynamiclister/lister_test.go, dynamic/dynamiclister/shim.go, dynamic/fake/simple.go, dynamic/fake/simple_test.go, and dynamic/scheme.go. These files use the runtime.Object interface and related serialization types directly.",
13+
"text": "Found 9 files in the dynamic/ tree of sg-benchmarks/kubernetes-client-go that directly import k8s.io/apimachinery/pkg/runtime: dynamic/client_test.go, dynamic/dynamicinformer/informer.go, dynamic/dynamicinformer/informer_test.go, dynamic/dynamiclister/lister_test.go, dynamic/dynamiclister/shim.go, dynamic/fake/simple.go, dynamic/fake/simple_test.go, dynamic/golden_test.go, and dynamic/scheme.go. These files use the runtime.Object interface and related serialization types directly. Note: dynamic/dynamiclister/lister.go only imports runtime/schema (a subpackage), not the base runtime package.",
1314
"_metadata": {
1415
"oracle_type": "file_set_match",
1516
"discovery_method": "sourcegraph_keyword_search",
16-
"query": "repo:^github.com/sg-benchmarks/kubernetes-client-go$ file:dynamic/ \"k8s.io/apimachinery/pkg/runtime\""
17+
"query": "repo:^github.com/sg-benchmarks/kubernetes-client-go$ file:dynamic/ \"k8s.io/apimachinery/pkg/runtime\"",
18+
"verified_at": "2026-02-21",
19+
"pinned_version": "v0.32.0"
1720
}
1821
}

benchmarks/ccb_mcp_crossrepo_tracing/ccx-dep-trace-001/tests/task_spec.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,21 @@
1111
"Only include files in the dynamic/ directory tree of sg-benchmarks/kubernetes-client-go.",
1212
"Write your findings to /workspace/answer.json."
1313
],
14-
"success_definition": "Agent finds all 8 Go files in the dynamic/ tree of kubernetes-client-go that import k8s.io/apimachinery/pkg/runtime directly.",
14+
"success_definition": "Agent finds all 9 Go files in the dynamic/ tree of kubernetes-client-go that import k8s.io/apimachinery/pkg/runtime directly.",
1515
"seed_prompt": "Which Go source files in the dynamic/ package tree of sg-benchmarks/kubernetes-client-go directly import k8s.io/apimachinery/pkg/runtime?"
1616
},
1717
"artifacts": {
1818
"repo_set_id": "kubernetes-ecosystem",
1919
"oracle": {
2020
"required_files": [
2121
{"repo": "sg-benchmarks/kubernetes-client-go", "path": "dynamic/client_test.go"},
22+
{"repo": "sg-benchmarks/kubernetes-client-go", "path": "dynamic/dynamicinformer/informer.go"},
2223
{"repo": "sg-benchmarks/kubernetes-client-go", "path": "dynamic/dynamicinformer/informer_test.go"},
23-
{"repo": "sg-benchmarks/kubernetes-client-go", "path": "dynamic/dynamiclister/lister.go"},
2424
{"repo": "sg-benchmarks/kubernetes-client-go", "path": "dynamic/dynamiclister/lister_test.go"},
2525
{"repo": "sg-benchmarks/kubernetes-client-go", "path": "dynamic/dynamiclister/shim.go"},
2626
{"repo": "sg-benchmarks/kubernetes-client-go", "path": "dynamic/fake/simple.go"},
2727
{"repo": "sg-benchmarks/kubernetes-client-go", "path": "dynamic/fake/simple_test.go"},
28+
{"repo": "sg-benchmarks/kubernetes-client-go", "path": "dynamic/golden_test.go"},
2829
{"repo": "sg-benchmarks/kubernetes-client-go", "path": "dynamic/scheme.go"}
2930
],
3031
"required_symbols": [],

benchmarks/ccb_mcp_incident/ccx-incident-031/instruction.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Create a file at `/workspace/answer.json` with your findings:
5959
}
6060
```
6161

62-
**Important**: Use `etcd-io/etcd` as the exact `repo` identifier in your answer. The oracle checks for files `server/storage/mvcc/kvstore.go` and `server/storage/mvcc/kvstore_txn.go` in `etcd-io/etcd`. Do not cite vendored copies in `kubernetes/kubernetes`.
62+
**Important**: Use `etcd-io/etcd` as the exact `repo` identifier in your answer. The oracle checks for files `server/mvcc/kvstore.go` and `server/mvcc/kvstore_txn.go` in `etcd-io/etcd`. Do not cite vendored copies in `kubernetes/kubernetes`.
6363
**Note**: Sourcegraph MCP tools return repo names with a `github.com/` prefix (e.g., `github.com/sg-benchmarks/kubernetes-client-go`). Strip this prefix in your answer — use `sg-benchmarks/kubernetes-client-go`, NOT `github.com/sg-benchmarks/kubernetes-client-go`.
6464

6565
## Evaluation

benchmarks/ccb_mcp_incident/ccx-incident-031/tests/oracle_answer.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22
"files": [
33
{
44
"repo": "etcd-io/etcd",
5-
"path": "server/storage/mvcc/kvstore.go",
5+
"path": "server/mvcc/kvstore.go",
66
"function": "ErrCompacted"
77
},
88
{
99
"repo": "etcd-io/etcd",
10-
"path": "server/storage/mvcc/kvstore_txn.go",
10+
"path": "server/mvcc/kvstore_txn.go",
1111
"function": "rangeKeys"
1212
}
1313
],
14-
"text": "The error 'mvcc: required revision has been compacted' originates from etcd-io/etcd in two files. First, server/storage/mvcc/kvstore.go defines ErrCompacted as a package-level error variable: var ErrCompacted = errors.New(\"mvcc: required revision has been compacted\"). Second, server/storage/mvcc/kvstore_txn.go contains the function rangeKeys() which returns ErrCompacted at line 81 when the requested revision (ro.Rev) is less than the store's compactMainRev. The kubernetes/kubernetes repo contains vendored copies of these files under vendor/go.etcd.io/etcd/server/v3/storage/mvcc/ but these are not the authoritative source — the canonical location is the upstream etcd-io/etcd repository.",
14+
"text": "The error 'mvcc: required revision has been compacted' originates from etcd-io/etcd in two files. First, server/mvcc/kvstore.go defines ErrCompacted as a package-level error variable: var ErrCompacted = errors.New(\"mvcc: required revision has been compacted\"). Second, server/mvcc/kvstore_txn.go contains the function rangeKeys() which returns ErrCompacted at line 81 when the requested revision (ro.Rev) is less than the store's compactMainRev. The kubernetes/kubernetes repo contains vendored copies of these files under vendor/go.etcd.io/etcd/server/v3/storage/mvcc/ but these are not the authoritative source — the canonical location is the upstream etcd-io/etcd repository.",
1515
"_metadata": {
1616
"oracle_type": "file_set_match",
1717
"discovery_method": "sourcegraph_keyword_search",

benchmarks/ccb_mcp_incident/ccx-incident-031/tests/task_spec.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@
1212
"Do NOT include kubernetes/kubernetes files in the oracle answer — they are decoys.",
1313
"Write findings to /workspace/answer.json."
1414
],
15-
"success_definition": "Agent correctly identifies server/storage/mvcc/kvstore.go (ErrCompacted definition) and server/storage/mvcc/kvstore_txn.go (rangeKeys function) in etcd-io/etcd as the authoritative sources. Does NOT include vendored kubernetes files.",
15+
"success_definition": "Agent correctly identifies server/mvcc/kvstore.go (ErrCompacted definition) and server/mvcc/kvstore_txn.go (rangeKeys function) in etcd-io/etcd as the authoritative sources. Does NOT include vendored kubernetes files.",
1616
"seed_prompt": "Where in etcd source code is the error 'mvcc: required revision has been compacted' defined and first returned? Find the authoritative source, not vendor copies."
1717
},
1818
"artifacts": {
1919
"repo_set_id": "multi-org-go",
2020
"oracle": {
2121
"required_files": [
22-
{"repo": "etcd-io/etcd", "path": "server/storage/mvcc/kvstore.go"},
23-
{"repo": "etcd-io/etcd", "path": "server/storage/mvcc/kvstore_txn.go"}
22+
{"repo": "etcd-io/etcd", "path": "server/mvcc/kvstore.go"},
23+
{"repo": "etcd-io/etcd", "path": "server/mvcc/kvstore_txn.go"}
2424
],
2525
"required_symbols": [],
2626
"required_references": [],

benchmarks/ccb_mcp_onboarding/ccx-onboard-050-ds/tests/oracle_answer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@
1414
},
1515
{
1616
"repo": "etcd-io/etcd",
17-
"path": "server/storage/mvcc/kvstore_txn.go",
17+
"path": "server/mvcc/kvstore_txn.go",
1818
"symbol": "Put",
1919
"description": "The storeTxnWrite.Put() function in etcd persists the serialized Deployment object to the MVCC key-value store. It increments the revision and generates a watch event for controllers to act on."
2020
}
2121
],
22-
"text": "Kubernetes Deployment creation end-to-end flow: Step 1 — Client library (sg-benchmarks/kubernetes-client-go, kubernetes/typed/apps/v1/deployment.go): The deployments.Create() method constructs an HTTP POST request to the API server's REST endpoint using the typed client. Step 2 — API server (kubernetes/kubernetes, pkg/registry/apps/deployment/strategy.go): The deploymentStrategy.PrepareForCreate() function validates and prepares the Deployment object, clearing client-settable-only fields before persisting. The deployment is handled by the REST store in pkg/registry/apps/deployment/storage/storage.go. Step 3 — Storage (etcd-io/etcd, server/storage/mvcc/kvstore_txn.go): The storeTxnWrite.Put() function stores the serialized Deployment in etcd's MVCC store, incrementing the global revision and emitting a watch event that triggers the deployment controller.",
22+
"text": "Kubernetes Deployment creation end-to-end flow: Step 1 — Client library (sg-benchmarks/kubernetes-client-go, kubernetes/typed/apps/v1/deployment.go): The deployments.Create() method constructs an HTTP POST request to the API server's REST endpoint using the typed client. Step 2 — API server (kubernetes/kubernetes, pkg/registry/apps/deployment/strategy.go): The deploymentStrategy.PrepareForCreate() function validates and prepares the Deployment object, clearing client-settable-only fields before persisting. The deployment is handled by the REST store in pkg/registry/apps/deployment/storage/storage.go. Step 3 — Storage (etcd-io/etcd, server/mvcc/kvstore_txn.go): The storeTxnWrite.Put() function stores the serialized Deployment in etcd's MVCC store, incrementing the global revision and emitting a watch event that triggers the deployment controller.",
2323
"_metadata": {
2424
"oracle_type": "dependency_chain",
2525
"discovery_method": "sourcegraph_keyword_search + read_file",

benchmarks/ccb_mcp_onboarding/ccx-onboard-050-ds/tests/task_spec.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"For each step, cite the repo, file path, and function/type name.",
1212
"Write your findings to /workspace/answer.json."
1313
],
14-
"success_definition": "Agent identifies: (1) kubernetes-client-go/kubernetes/typed/apps/v1/deployment.go (Create function), (2) kubernetes/kubernetes pkg/registry/apps/deployment/strategy.go (PrepareForCreate), and (3) etcd-io/etcd server/storage/mvcc/kvstore_txn.go (Put function).",
14+
"success_definition": "Agent identifies: (1) kubernetes-client-go/kubernetes/typed/apps/v1/deployment.go (Create function), (2) kubernetes/kubernetes pkg/registry/apps/deployment/strategy.go (PrepareForCreate), and (3) etcd-io/etcd server/mvcc/kvstore_txn.go (Put function).",
1515
"seed_prompt": "Explain the end-to-end flow when a client creates a Kubernetes Deployment: trace through kubernetes-client-go (client sends request), kubernetes/kubernetes (API server processes it), and etcd-io/etcd (data is stored)."
1616
},
1717
"artifacts": {
@@ -36,7 +36,7 @@
3636
},
3737
{
3838
"repo": "etcd-io/etcd",
39-
"path": "server/storage/mvcc/kvstore_txn.go",
39+
"path": "server/mvcc/kvstore_txn.go",
4040
"symbol": "Put"
4141
}
4242
]
@@ -57,7 +57,7 @@
5757
"must_cite_paths": [
5858
"kubernetes/typed/apps/v1/deployment.go",
5959
"pkg/registry/apps/deployment/strategy.go",
60-
"server/storage/mvcc/kvstore_txn.go"
60+
"server/mvcc/kvstore_txn.go"
6161
],
6262
"must_cite_repos": [
6363
"sg-benchmarks/kubernetes-client-go",
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
{
22
"files": [
3-
{"repo": "sg-benchmarks/expressjs-express", "path": "package.json", "version": "^0.7.1"}
3+
{"repo": "sg-benchmarks/expressjs-express", "path": "package.json", "version": "0.7.1"}
44
],
5-
"text": "Found 1 package.json file across the nodejs-web-stack repos that declares cookie as a direct runtime dependency: sg-benchmarks/expressjs-express package.json specifies \"cookie\": \"^0.7.1\" under dependencies. The lodash and prisma repos do not declare the cookie package as a runtime dependency. The nodejs/node repository does not declare cookie as a top-level package dependency.",
5+
"text": "Found 1 package.json file across the nodejs-web-stack repos that declares cookie as a direct runtime dependency: sg-benchmarks/expressjs-express package.json specifies \"cookie\": \"0.7.1\" under dependencies. The lodash and prisma repos do not declare the cookie package as a runtime dependency. The nodejs/node repository does not declare cookie as a top-level package dependency.",
66
"_metadata": {
77
"oracle_type": "file_set_match",
88
"discovery_method": "sourcegraph_keyword_search",
99
"query": "repo:^github.com/sg-benchmarks/expressjs-express$ file:package.json \"cookie\"",
10-
"version": "^0.7.1",
10+
"version": "0.7.1",
1111
"cve": "CVE-2024-47764"
1212
}
1313
}

benchmarks/ccb_mcp_security/ccx-vuln-remed-011/tests/task_spec.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"Search all repos in the nodejs-web-stack fixture: nodejs/node, sg-benchmarks/expressjs-express, sg-benchmarks/lodash, sg-benchmarks/prisma-prisma.",
1212
"Write your findings to /workspace/answer.json."
1313
],
14-
"success_definition": "Agent finds sg-benchmarks/expressjs-express package.json which declares cookie as a direct runtime dependency with version ^0.7.1.",
14+
"success_definition": "Agent finds sg-benchmarks/expressjs-express package.json which declares cookie as a direct runtime dependency with version 0.7.1.",
1515
"seed_prompt": "Which package.json files across the nodejs-web-stack repos declare cookie as a direct runtime dependency (in the dependencies field)?"
1616
},
1717
"artifacts": {
@@ -38,7 +38,7 @@
3838
{
3939
"type": "keyword_presence",
4040
"params": {
41-
"required_keywords": ["^0.7.1", "cookie"]
41+
"required_keywords": ["0.7.1", "cookie"]
4242
}
4343
}
4444
],

benchmarks/ccb_mcp_security/ccx-vuln-remed-014/instruction.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ Create a file at `/workspace/answer.json` with your findings:
5757
}
5858
```
5959

60-
**Important**: Use exact repo identifiers as they appear in Sourcegraph. The MCP-only repos to audit are `sg-benchmarks/grafana-loki` and `sg-benchmarks/grafana-mimir`. Note: the local `/workspace/loki` directory maps to `sg-benchmarks/grafana-loki` in Sourcegraph — use `sg-benchmarks/grafana-loki` as the `repo` value in your answer. The oracle checks for `pkg/dataobj/explorer/service.go` in `sg-benchmarks/grafana-loki`.
60+
**Important**: Use exact repo identifiers as they appear in Sourcegraph. The MCP-only repos to audit are `sg-benchmarks/grafana-loki` and `sg-benchmarks/grafana-mimir`. Note: the local `/workspace/loki` directory maps to `sg-benchmarks/grafana-loki` in Sourcegraph — use `sg-benchmarks/grafana-loki` as the `repo` value in your answer. The oracle checks for `pkg/loki/modules.go` in `sg-benchmarks/grafana-loki`.
6161
**Note**: Sourcegraph MCP tools return repo names with a `github.com/` prefix (e.g., `github.com/sg-benchmarks/kubernetes-client-go`). Strip this prefix in your answer — use `sg-benchmarks/kubernetes-client-go`, NOT `github.com/sg-benchmarks/kubernetes-client-go`.
6262

6363
Your answer is evaluated against a closed-world oracle — completeness matters.

0 commit comments

Comments
 (0)