Vals-Smith

/ oven-sh / bun

PUBLIC

Updated 7/21/2026

Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one.

6080 Branches 16460 Commits 451 Contributors 48 Tasks

Key Takeaways

Cost / Test vs. Accuracy

GPT-5.6 Luna resolves 23 of 48 tasks for $0.54 per test, offering a lower-cost alternative to the tightly grouped leaders.

Latency vs. Accuracy

GPT-5.6 Sol provides the strongest speed-to-accuracy balance at 24 of 48 tasks in 514 seconds; faster models give up at least three tasks.

Average token use / test

Input
Output
Reasoning
Cache read
Cache write
Claude Sonnet 5
10.2M
Claude Opus 4.7
5.3M
Claude Opus 4.8
4.3M
Claude Fable 5
3.9M
GLM 5.2 (Fireworks)
3.2M
Kimi K3
3.1M
Gemini 3.5 Flash
2.8M
GPT-5.6 Luna
2.6M
Muse Spark 1.1
2.4M
GPT-5.6 Sol
2.1M
Claude Haiku 4.5 (Nonthinking)
1.7M
GPT 5.5
1.6M
Gemini 3.1 Pro Preview (02/26)
1.2M
Grok 4.5
1.2M
GPT-5.6 Terra
634K

Tasks with failures

PassedFailed
Modele830f1ac4d6713bfd8e11f6f15232acc0423219883d23d6934a53c6bdd88b5c73b6c148cac538be77b65f5b73a0f64a684fdfb820a5f045bf6f22f1cdf7f44bad29279f5cc6bc71f98bb5f2d0a43ee0384cf2d502908cb38c170f68c3c34799fc2f82e2230a8d2a3514bbe0751fbfe1d0ecd5085d350cc9657f37
Kimi K3
Claude Opus 4.8
Claude Fable 5
GPT-5.6 Sol
Claude Opus 4.7
GPT-5.6 Luna
Grok 4.5
Gemini 3.1 Pro Preview (02/26)
GPT 5.5
Muse Spark 1.1
Claude Sonnet 5
GPT-5.6 Terra
GLM 5.2
Gemini 3.5 Flash
Claude Haiku 4.5 (Nonthinking)

Task detail

e830f1af466b

Issue statement

The HTTP request-line parser can mistake complete malformed input for a fragmented request and wait indefinitely for more bytes. Complete request lines must be rejected as soon as a CR/LF terminator proves they cannot become valid: this includes a method token not followed by a space, a one-character invalid method, a short non-origin-form target, and an origin-form target with no HTTP version. At the same time, genuinely partial request-line input must remain eligible for continuation rather than being rejected merely because it is short.

Hidden tests
diff --git a/test/valsmith/http_parser_request_line_test.cpp b/test/valsmith/http_parser_request_line_test.cppnew file mode 100644index 00000000..6fa929c4--- /dev/null+++ b/test/valsmith/http_parser_request_line_test.cpp@@ -0,0 +1,72 @@+#include <algorithm>+#include <chrono>+#include <climits>+#include <cstring>+#include <map>+#include <span>+#include <string>+#include <string_view>+#include <utility>++#define private public+#include "packages/bun-uws/src/HttpParser.h"+#undef private++#include <fstream>+#include <iostream>+#include <vector>++extern "C" size_t BUN_DEFAULT_MAX_HTTP_HEADER_SIZE = 16384;+extern "C" int16_t Bun__HTTPMethod__from(const char *, size_t len) { return len == 1 ? -1 : 0; }++struct Case {+    const char *name;+    std::string input;+    uWS::HTTPHeaderParserError expected;+};++static uWS::ConsumeRequestLineResult parse(std::string input) {+    const size_t input_size = input.size();+    input.resize(input_size + uWS::MINIMUM_HTTP_POST_PADDING, '\r');+    uWS::HttpRequest::Header header{};+    return uWS::HttpParser::consumeRequestLine(input.data(), input.data() + input_size,+                                                header, true, 16384);+}++static std::string xml_escape(std::string value) {+    size_t pos = 0;+    while ((pos = value.find('&', pos)) != std::string::npos) value.replace(pos, 1, "&amp;");+    pos = 0;+    while ((pos = value.find('\"', pos)) != std::string::npos) value.replace(pos, 1, "&quot;");+    return value;+}++int main(int argc, char **argv) {+    const char *report = argc > 1 ? argv[1] : "valsmith-junit.xml";+    const std::vector<Case> cases = {+        {"complete method followed by CRLF is rejected", "GET\r\n\r\n", uWS::HTTP_HEADER_PARSER_ERROR_INVALID_METHOD},+        {"single-character method with a complete line is rejected", "G / HTTP/1.1\r\nHost: localhost\r\n\r\n", uWS::HTTP_HEADER_PARSER_ERROR_INVALID_METHOD},+        {"short non-origin target ending at CRLF is rejected", "POST x\r\n\r\n", uWS::HTTP_HEADER_PARSER_ERROR_INVALID_REQUEST},+        {"origin target without an HTTP version is rejected", "GET /\r\nHost: localhost\r\n\r\n", uWS::HTTP_HEADER_PARSER_ERROR_INVALID_HTTP_VERSION},+    };++    std::ofstream out(report);+    out << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<testsuite name=\"HttpParser request line\" tests=\""+        << cases.size() << "\">\n";+    int failures = 0;+    for (const auto &test : cases) {+        auto result = parse(test.input);+        bool passed = result.headerParserError == test.expected;+        out << "  <testcase classname=\"HttpParser request line\" name=\"" << xml_escape(test.name) << "\">";+        if (!passed) {+            failures++;+            out << "<failure message=\"expected parser error " << int(test.expected)+                << ", got " << int(result.headerParserError) << "\"/>";+            std::cerr << test.name << ": expected parser error " << int(test.expected)+                      << ", got " << int(result.headerParserError) << "\n";+        }+        out << "</testcase>\n";+    }+    out << "</testsuite>\n";+    return failures == 0 ? 0 : 1;+} 

Head-to-head

VS

Accuracy

54.17%Δ 2.08%

52.08%

Cost / test

$2.26Δ $1.86

$4.11

Latency

1005s

957sΔ 48s

Cost distribution

$0.00$9.73$19.45

Latency distribution

0s2037s4074s

Input token distribution

011.5M22.9M

Output token distribution

0103.8K207.6K

Task outcomes

48 tasks

Both
A only
B only
Neither