File size: 2,825 Bytes
94e16b3 0c8c14f 94e16b3 0c8c14f 94e16b3 0c8c14f 94e16b3 0c8c14f 94e16b3 0c8c14f 94e16b3 0c8c14f 94e16b3 0c8c14f 94e16b3 0c8c14f 94e16b3 0c8c14f 94e16b3 0c8c14f 94e16b3 0c8c14f 94e16b3 0c8c14f 94e16b3 0c8c14f 94e16b3 0c8c14f 94e16b3 0c8c14f 94e16b3 0c8c14f 94e16b3 0c8c14f 94e16b3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | {
"repo": "tinyhttp",
"summary": "README documents defaults and Response.json() behavior that contradict src/client.py.",
"findings": [
{
"id": "default-timeout-mismatch",
"severity": "high",
"title": "README says default timeout is 30 seconds, but code defaults to 5 seconds",
"doc_refs": [
"README.md: 'Default timeout is **30 seconds**.'"
],
"code_refs": [
"src/client.py: DEFAULT_TIMEOUT = 5.0"
],
"evidence": "The README states a 30-second default timeout, while DEFAULT_TIMEOUT is 5.0 and Client.__init__ uses it as the default.",
"suggested_fix": "Update either the README or DEFAULT_TIMEOUT so the documented and implemented default timeout match.",
"confidence": 1.0,
"verified": true,
"verification_notes": "Fixture intentionally planted; confirmed against fixture source."
},
{
"id": "default-retries-mismatch",
"severity": "high",
"title": "README says retries are enabled by default with 3 attempts, but code defaults to 0",
"doc_refs": [
"README.md: 'Retries are enabled by default (3 attempts).'"
],
"code_refs": [
"src/client.py: DEFAULT_RETRIES = 0"
],
"evidence": "The README promises 3 retry attempts by default, while DEFAULT_RETRIES is 0 and Client.__init__ uses it as the default.",
"suggested_fix": "Update either the README or DEFAULT_RETRIES so the documented and implemented default retry count match.",
"confidence": 1.0,
"verified": true,
"verification_notes": "Fixture intentionally planted; confirmed against fixture source."
},
{
"id": "json-always-available-mismatch",
"severity": "high",
"title": "README says Response.json() is always available, but code raises for non-JSON content",
"doc_refs": [
"README.md: '`Client.request` returns a `Response` with `.json()` always available.'"
],
"code_refs": [
"src/client.py: Response.json() raises ValueError when content-type is not application/json"
],
"evidence": "The README claims .json() is always available, but the implementation only parses JSON when the content-type header contains application/json and otherwise raises ValueError.",
"suggested_fix": "Change the README to state that .json() requires JSON content, or change Response.json() to always attempt parsing.",
"confidence": 1.0,
"verified": true,
"verification_notes": "Fixture intentionally planted; confirmed against fixture source."
}
],
"usage": {
"prompt_tokens": 673,
"completion_tokens": 887,
"reasoning_tokens": 353,
"total_tokens": 1560
},
"reasoning_effort": "medium",
"latency_s": 3.92,
"model": "Beam-1.0-501B-A23B",
"source": "live-beam"
} |