/ AppliedIntuition / bazel-remote
Key Takeaways
- GPT 5.5 and Claude Fable 5 tie for the lead with 42 of 47 tasks resolved.
- GPT-5.6 Luna and Grok 4.5 finish only one task behind; Luna costs $0.29 per test, while Grok is fastest at 267 seconds.
- Claude Fable 5 and GPT 5.5 complement one another at the task level, resolving 46 of 47 tasks together.
Cost / Test vs. Accuracy
GPT-5.6 Luna is the clearest value result: it resolves 41 of 47 tasks for $0.29 per test, one task behind the two leaders.
Latency vs. Accuracy
Grok 4.5 reaches the same 41-of-47 tier in 267 seconds, making it the fastest near-leading model by a wide margin.
Average token use / test
Tasks with failures
| Model | 093b598 | 0dd43ed | 11d575b | 1bcb7fa | 25792ea | 4d17ff5 | 50ab229 | 527a9a2 | 5afaf8b | 6b64010 | 8a93ff7 | 95beb3c | 98f2227 | 9f9567a | aac4506 | ad2ded8 | af08f8a | b013593 | b600499 | d9d93ca | e6330d3 | f10d8f2 | f5d834b | f7f9c9d | f9efcfe |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| GPT 5.5 | |||||||||||||||||||||||||
| Claude Fable 5 | |||||||||||||||||||||||||
| GPT-5.6 Luna | |||||||||||||||||||||||||
| Grok 4.5 | |||||||||||||||||||||||||
| Muse Spark 1.1 | |||||||||||||||||||||||||
| GPT-5.6 Sol | |||||||||||||||||||||||||
| Claude Opus 4.8 | |||||||||||||||||||||||||
| Claude Sonnet 5 | |||||||||||||||||||||||||
| GPT-5.6 Terra | |||||||||||||||||||||||||
| GLM 5.2 | |||||||||||||||||||||||||
| Claude Opus 4.7 | |||||||||||||||||||||||||
| Gemini 3.1 Pro Preview (02/26) | |||||||||||||||||||||||||
| Claude Haiku 4.5 (Nonthinking) | |||||||||||||||||||||||||
| Gemini 3.5 Flash |
Task detail
093b598754b1Issue statement
Add a flag to disable access logging
bazel-remote writes an access log line for every request it handles. In deployments that serve a very large number of requests, this access logging is noisy and unwanted, and there is currently no way to turn it off.
Add a new configuration option, access_log_level, that controls the verbosity of the access logger. It should be configurable both via the YAML config file (key access_log_level) and, ideally, via a corresponding command-line flag / environment variable.
Requirements:
- The option accepts exactly two values:
"all"and"none"."all"(the default) enables full access logging, matching today's behavior."none"disables access logging.
- When
access_log_levelis omitted from the configuration, it must default to"all". - The value must be validated when the configuration is loaded. Any value other than
"all"or"none"must cause configuration loading to fail with an error whose message mentionsaccess_log_level.
The parsed configuration should expose the selected value so the rest of the server can honor it.
Hidden tests
diff --git a/config/config_test.go b/config/config_test.goindex fc8d14b..1689d24 100644--- a/config/config_test.go+++ b/config/config_test.go@@ -24,6 +24,7 @@ enable_endpoint_metrics: true experimental_remote_asset_api: true http_read_timeout: 5s http_write_timeout: 10s+access_log_level: none ` config, err := newFromYaml([]byte(yaml))@@ -50,6 +51,7 @@ http_write_timeout: 10s NumUploaders: 100, MaxQueuedUploads: 1000000, MetricsDurationBuckets: []float64{.5, 1, 2.5, 5, 10, 20, 40, 80, 160, 320},+ AccessLogLevel: "none", } if !reflect.DeepEqual(config, expectedConfig) {@@ -88,6 +90,7 @@ gcs_proxy: NumUploaders: 100, MaxQueuedUploads: 1000000, MetricsDurationBuckets: []float64{.5, 1, 2.5, 5, 10, 20, 40, 80, 160, 320},+ AccessLogLevel: "all", } if !cmp.Equal(config, expectedConfig) {@@ -123,6 +126,7 @@ http_proxy: NumUploaders: 100, MaxQueuedUploads: 1000000, MetricsDurationBuckets: []float64{.5, 1, 2.5, 5, 10, 20, 40, 80, 160, 320},+ AccessLogLevel: "all", } if !cmp.Equal(config, expectedConfig) {@@ -195,6 +199,7 @@ s3_proxy: NumUploaders: 100, MaxQueuedUploads: 1000000, MetricsDurationBuckets: []float64{.5, 1, 2.5, 5, 10, 20, 40, 80, 160, 320},+ AccessLogLevel: "all", } if !cmp.Equal(config, expectedConfig) {@@ -225,6 +230,7 @@ profile_port: 7070 NumUploaders: 100, MaxQueuedUploads: 1000000, MetricsDurationBuckets: []float64{.5, 1, 2.5, 5, 10, 20, 40, 80, 160, 320},+ AccessLogLevel: "all", } if !cmp.Equal(config, expectedConfig) {@@ -268,6 +274,7 @@ endpoint_metrics_duration_buckets: [.005, .1, 5] NumUploaders: 100, MaxQueuedUploads: 1000000, MetricsDurationBuckets: []float64{0.005, 0.1, 5},+ AccessLogLevel: "all", } if !cmp.Equal(config, expectedConfig) {@@ -352,3 +359,19 @@ storage_mode: gzip } } }++func TestInvalidAccessLogLevel(t *testing.T) {+ yaml := `host: localhost+port: 1234+dir: /opt/cache-dir+max_size: 42+access_log_level: verbose+`+ _, err := newFromYaml([]byte(yaml))+ if err == nil {+ t.Fatal("Expected an error because 'access_log_level' was invalid")+ }+ if !strings.Contains(err.Error(), "access_log_level") {+ t.Fatal("Expected the error message to mention the invalid 'access_log_level' key/flag")+ }+}
Head-to-head
Accuracy
89.36%
89.36%
Cost / test
$1.50Δ $4.10
$5.60
Latency
888s
718sΔ 171s
Cost distribution
Latency distribution
Input token distribution
Output token distribution
Task outcomes
47 tasks