task_detail
validation/gpt-5-1-codex-mini/flux-pr-1001/task_detail.v1.json
16855 bytes
{
"version": "v1",
"materialization": {
"mode": "canonical"
},
"identity": {
"variant_id": "gpt-5.1-codex-mini",
"requested_model": "gpt-5.1-codex-mini",
"model_key": "gpt-5-1-codex-mini",
"run_id": "2026-02-28__13-38-10__gpt-5-1-codex-mini",
"task_id": "flux-pr-1001",
"trial_name": "flux-pr-1001.1-of-1.2026-02-28__13-38-10__gpt-5-1-codex-mini"
},
"decision": {
"status": "pass",
"primary_signal": "tests",
"matrix_status": "pass_with_warn",
"reason_codes": [
"primary_tests",
"tests_passed",
"equivalence_non_equivalent",
"review_fail"
],
"flags": [
"equiv_warn",
"review_warn"
],
"publish": {
"include_in_leaderboard": true,
"weak_signal_risk": false
},
"rescue": {
"candidate": false,
"eligible": false,
"decision": "not_candidate",
"required_artifacts_ok": true
}
},
"tests": {
"outcome": "pass",
"strength": "strong",
"commands": [
"go test -C v2 ./... -count=1 -timeout=300s"
],
"command_results": [
{
"command": "go test -C v2 ./... -count=1 -timeout=300s",
"gold_outcome": "pass",
"gold_tb_trial_name": "flux-pr-1001.1-of-1.validate-gold-1772296961302068000",
"gold_failure_mode": "unset",
"agent_outcome": "pass",
"agent_tb_trial_name": "flux-pr-1001.1-of-1.validate-override-1772297011115450000",
"agent_failure_mode": "unset",
"agent_retried": false
}
],
"partial_score": {
"score": 1,
"numerator": 1,
"denominator": 1,
"level": "command",
"provenance": "fallback_command_level",
"reason": "test_case_detail_unavailable"
},
"tb": {
"trial_name": "flux-pr-1001.1-of-1.2026-02-28__13-38-10__gpt-5-1-codex-mini",
"is_resolved": true,
"failure_mode": "unset",
"duration_sec": 100.484363708,
"time_budget_sec": 1200
},
"cache": {
"cache_hit": false,
"cache_miss_reason": "missing_pinned_dependencies",
"environment_group_id": "eg_46b6a6c82a4890b6e6e87c39575fd02c"
}
},
"quality": {
"equivalence": {
"status": "used",
"outcome": "non_equivalent",
"confidence": 0.85,
"issue_type": "behavioral",
"notes": "The patch enriches `OnFinished`, but not in the intended way. It keeps separate `statusCode`/`err` params and adds a custom `*httpclient.ResponseContext` with traced/redacted fields, instead of providing a unified richer response object with direct request/response metadata. It also still gates `OnFinished` on `loaderHookContext != nil`, so hook completion can be skipped when `OnLoad` returns nil, and response metadata is only set after body-read success (missing cases where a response exists but read/decode fails)."
},
"code_review": {
"status": "used",
"signal": "fail",
"confidence": 0.85,
"issue_type": "unclear",
"source_field": "code_review",
"dimension_scores": {
"correctness": {
"score_0_4": 2,
"confidence_0_1": 0.87,
"rationale": "The patch adds extra hook data, but it does not provide full upstream HTTP request/response objects and preserves callback gating that can skip OnFinished when OnLoad returns nil. That diverges from the intended richer and consistently-delivered hook semantics."
},
"edge_case_handling": {
"score_0_4": 1,
"confidence_0_1": 0.85,
"rationale": "Two edge cases are weakly handled: OnFinished can be skipped when hook context is nil, and response metadata may be absent on read errors despite a received HTTP response."
},
"introduced_bug_risk": {
"score_0_4": 1,
"confidence_0_1": 0.83,
"rationale": "Response metadata population is tied to successful body reads; if body decoding fails, hook consumers may lose response headers/status context they need for observability."
},
"maintainability_idioms": {
"score_0_4": 2,
"confidence_0_1": 0.79,
"rationale": "The API now mixes old scalar args (statusCode, err) with a partial response context payload, which is less cohesive than a single structured response info object and harder to evolve cleanly."
}
},
"findings": [
{
"id": "f1",
"dimension": "correctness",
"severity": "major",
"title": "Hook does not expose full HTTP request/response objects",
"detail": "ResponseContext stores TraceHTTPRequest/TraceHTTPResponse snapshots instead of the actual net/http request and response objects, limiting metadata available to OnFinished consumers compared to the intended full upstream context.",
"confidence_0_1": 0.89,
"citations": [
{
"path": "v2/pkg/engine/datasource/httpclient/nethttpclient.go",
"side": "new",
"start_line": 70,
"end_line": 74,
"anchor_kind": "diff",
"head_sha": "fcbfba1d6616c5f8d267e5d172268d1662023218"
},
{
"path": "v2/pkg/engine/resolve/loader.go",
"side": "new",
"start_line": 36,
"end_line": 41,
"anchor_kind": "diff",
"head_sha": "fcbfba1d6616c5f8d267e5d172268d1662023218"
}
]
},
{
"id": "f2",
"dimension": "edge_case_handling",
"severity": "major",
"title": "OnFinished can still be skipped when loader hook context is nil",
"detail": "All OnFinished call sites still require `loaderHookContext != nil`; if OnLoad returns nil, OnFinished is never invoked, so observability hooks may miss executions.",
"confidence_0_1": 0.9,
"citations": [
{
"path": "v2/pkg/engine/resolve/loader.go",
"side": "new",
"start_line": 119,
"end_line": 126,
"anchor_kind": "diff",
"head_sha": "fcbfba1d6616c5f8d267e5d172268d1662023218"
},
{
"path": "v2/pkg/engine/resolve/loader.go",
"side": "new",
"start_line": 176,
"end_line": 183,
"anchor_kind": "diff",
"head_sha": "fcbfba1d6616c5f8d267e5d172268d1662023218"
}
]
},
{
"id": "f3",
"dimension": "introduced_bug_risk",
"severity": "major",
"title": "Response details are only set after successful body read",
"detail": "The response payload in context is populated via `setResponseData` only after body read succeeds. If body read fails, hooks lose response headers/status metadata even though a response was received.",
"confidence_0_1": 0.86,
"citations": [
{
"path": "v2/pkg/engine/datasource/httpclient/nethttpclient.go",
"side": "new",
"start_line": 236,
"end_line": 246,
"anchor_kind": "diff",
"head_sha": "fcbfba1d6616c5f8d267e5d172268d1662023218"
},
{
"path": "v2/pkg/engine/datasource/httpclient/nethttpclient.go",
"side": "new",
"start_line": 249,
"end_line": 252,
"anchor_kind": "diff",
"head_sha": "fcbfba1d6616c5f8d267e5d172268d1662023218"
}
]
}
],
"overall": {
"confidence_overall": 0.85,
"summary": "The patch compiles and adds hook metadata, but it likely does not fully satisfy the intended change: it provides partial/redacted trace structs instead of full HTTP request/response context, retains skip conditions for OnFinished, and weakens failure-path metadata capture."
},
"notes": "The patch compiles and adds hook metadata, but it likely does not fully satisfy the intended change: it provides partial/redacted trace structs instead of full HTTP request/response context, retains skip conditions for OnFinished, and weakens failure-path metadata capture."
},
"behavioral_robustness": {
"status": "used",
"probe_status": "used",
"gold_pass_candidate_pass_count": 1,
"agreement_rate": 1,
"coverage_delta_status": "unavailable",
"coverage_delta_reason": "coverage_adapter_unavailable",
"mutation_lite_status": "unavailable",
"mutation_lite_reason": "mutation_runner_unavailable",
"notes": "derived from command-level outcomes; no accepted generated probes"
},
"footprint_risk": {
"status": "used",
"reason": "none",
"version": "v1",
"level": "low",
"score": 0.2551513182660356,
"flag": false,
"severe_flag": false
},
"cost": {
"status": "tokens_only",
"token_status": "present",
"cache_token_status": "present",
"total_input_tokens": 3169476,
"total_output_tokens": 26591,
"total_tokens": 3196067,
"uncached_input_tokens": 560324,
"cache_read_input_tokens": 2609152,
"cached_input_tokens": 2609152,
"total_cost_usd": 1.3914048,
"token_source": "openai_cached_tokens_usage",
"pricing_model_key": "gpt-5.1-codex-mini",
"pricing_mode": "cache_aware"
}
},
"summary": {
"task": {
"matrix_status": "pass_with_warn",
"tests_outcome": "pass",
"tests_unknown_cause": null,
"lane_report_lane": null,
"lane_report_source": null,
"lane_report_reasons": null,
"cache_hit": false,
"cache_miss_reason": "missing_pinned_dependencies",
"setup_ms_saved": null,
"pinned_bytes": null,
"environment_group_id": "eg_46b6a6c82a4890b6e6e87c39575fd02c",
"equivalence_status": "used",
"equivalence_outcome": "non_equivalent",
"code_review_status": "used",
"code_review_signal": "fail",
"behavioral_robustness_status": "used",
"coverage_delta_status": "unavailable",
"mutation_lite_status": "unavailable",
"probe_accepted_candidates": null,
"probe_accepted_commands": null,
"probe_agreement_rate": 1,
"probe_gold_pass_candidate_pass_count": 1,
"probe_gold_pass_candidate_fail_count": null,
"probe_review_required_count": null,
"flags": [
"equiv_warn",
"review_warn"
],
"tb_is_resolved": true,
"tb_failure_mode": "unset",
"tb_total_input_tokens": 3169476,
"tb_total_output_tokens": 26591,
"tb_total_tokens": 3196067,
"tb_uncached_input_tokens": 560324,
"tb_cache_creation_input_tokens": null,
"tb_cache_read_input_tokens": 2609152,
"tb_cached_input_tokens": 2609152,
"token_status": "present",
"cache_token_status": "present",
"token_source": "openai_cached_tokens_usage",
"task_cost": 1.3914048,
"cost_status": "present",
"cost_pricing_mode": "cache_aware",
"pricing_model_key": "gpt-5.1-codex-mini",
"equiv_rescue_policy": "on",
"rescue_candidate": false,
"rescue_eligible": false,
"rescue_decision": "not_candidate",
"publish_include_in_leaderboard": true,
"publish_exclusion_reasons": [],
"publish_weak_signal_risk": false,
"tests_only_outcome": 1,
"rescue_aware_outcome": 1,
"partial_score": 1,
"partial_score_numerator": 1,
"partial_score_denominator": 1,
"partial_score_level": "command",
"partial_score_provenance": "fallback_command_level",
"partial_score_reason": "test_case_detail_unavailable",
"partial_score_unknown_count": 0,
"footprint_risk_status": "used",
"footprint_risk_reason": "none",
"footprint_risk_level": "low",
"footprint_risk_score": 0.2551513182660356,
"footprint_risk_flag": false,
"footprint_risk_severe_flag": false
},
"run": {
"model": "gpt-5.1-codex-mini",
"requested_model": "gpt-5.1-codex-mini",
"run_id": "2026-02-28__13-38-10__gpt-5-1-codex-mini",
"passRate": 0.9655172413793104,
"ciLow": 0.896551724137931,
"ciHigh": 1,
"effectiveN": 29,
"tier": 1,
"validation_counts": {
"fail_guardrail": 0,
"fail_high_conf": 0,
"fail_infra": 1,
"fail_likely_equiv": 0,
"fail_with_diag": 0,
"missing": 0,
"pass": 2,
"pass_with_warn": 26
}
},
"run_metadata": {
"agent_name": "codex",
"model_name": "gpt-5.1-codex-mini",
"start_time": "2026-02-28T15:13:02.887835+00:00",
"end_time": "2026-02-28T16:42:40.244280+00:00",
"commit_hash": "99ae882e59281de74856a3e7eeb1b7c986b466af",
"accuracy": 0.6896551724137931,
"reasoning_effort": "medium"
}
},
"evidence": {
"task_detail": {
"path": "validation/gpt-5-1-codex-mini/flux-pr-1001/task_detail.v1.json",
"exists": true
},
"trajectory": {
"path": "validation/gpt-5-1-codex-mini/flux-pr-1001/trajectory.v1.json",
"exists": true,
"non_empty": true,
"size_bytes": 15393
},
"validation": {
"path": "validation/gpt-5-1-codex-mini/flux-pr-1001/validation.json",
"exists": true,
"non_empty": true,
"size_bytes": 141224
},
"results": {
"path": "runs/2026-02-28__13-38-10__gpt-5-1-codex-mini/results.json",
"exists": true,
"non_empty": true,
"size_bytes": 57447
},
"run_metadata": {
"path": "runs/2026-02-28__13-38-10__gpt-5-1-codex-mini/run_metadata.json",
"exists": true,
"non_empty": true,
"size_bytes": 1645
},
"agent_patch": {
"path": "runs/2026-02-28__13-38-10__gpt-5-1-codex-mini/flux-pr-1001/flux-pr-1001.1-of-1.2026-02-28__13-38-10__gpt-5-1-codex-mini/agent-logs/agent.patch",
"exists": true,
"non_empty": true,
"size_bytes": 9672
},
"summary": {
"path": "reports/summary.json",
"exists": true,
"non_empty": true,
"size_bytes": 269968
},
"manifest": {
"path": "manifest.json",
"exists": true,
"non_empty": true,
"size_bytes": 677
},
"validation_inputs": {
"required_for_rescue_ok": true,
"gold_patch": {
"exists": true,
"non_empty": true,
"size_bytes": 9761,
"sha256": "4f4be1e17e703fc3cc540539ce5f871a5426000898c2b32f153bbf088512a89d",
"required_for_rescue": true
},
"repo_tarball": {
"exists": true,
"non_empty": true,
"size_bytes": 4156764,
"sha256": "a84f92df8a1b5a1b8b23f6c61187570bb3fb8efb03eed33d78bffb8c3a3f3872",
"required_for_rescue": true
},
"agent_patch": {
"path": "runs/2026-02-28__13-38-10__gpt-5-1-codex-mini/flux-pr-1001/flux-pr-1001.1-of-1.2026-02-28__13-38-10__gpt-5-1-codex-mini/agent-logs/agent.patch",
"exists": true,
"non_empty": true,
"size_bytes": 9672,
"sha256": "a0a80d6c7d873476bbd6e4a39f14a3ae544f1b3e01691ba0933a614994d8fa7c",
"required_for_rescue": true
}
}
},
"provenance": {
"identity": [
{
"source": "manifest",
"available": true
},
{
"source": "tb_results",
"available": true
}
],
"decision": [
{
"source": "validation",
"available": true
}
],
"tests": [
{
"source": "validation",
"available": true
},
{
"source": "tb_results",
"available": true
}
],
"quality": {
"equivalence": [
{
"source": "validation",
"available": true
}
],
"code_review": [
{
"source": "validation",
"available": true
}
],
"behavioral_robustness": [
{
"source": "validation",
"available": true
}
],
"footprint_risk": [
{
"source": "validation",
"available": true
}
],
"cost": [
{
"source": "validation",
"available": true
},
{
"source": "summary",
"available": true
}
]
},
"summary": {
"task": [
{
"source": "summary",
"available": true
}
],
"run": [
{
"source": "summary",
"available": true
}
],
"run_metadata": [
{
"source": "run_metadata",
"available": true
}
]
},
"evidence": [
{
"source": "filesystem",
"available": true
}
]
}
}