{"record":{"id":"109d982d5bf45f59","repo":"abhigyanpatwari/GitNexus","slug":"transcript-artifacts-exceeds-the-per-row-session-l","errorCode":null,"errorMessage":"transcript_artifacts exceeds the per-row session limit of {MAX_TRANSCRIPT_ARTIFACTS_PER_ROW}","messagePattern":"transcript_artifacts exceeds the per-row session limit of (.+?)","errorType":"exception","errorClass":"SandboxError","httpStatus":null,"severity":"error","filePath":"eval/workflow_bench/evolve.py","lineNumber":369,"sourceCode":"        or relative.parts[0] != \"transcripts\"\n        or any(part in {\"\", \".\", \"..\"} for part in relative.parts)\n    ):\n        raise SandboxError(f\"unsafe results artifact path: {relative_value!r}\")\n    return relative.as_posix()\n\n\ndef _preflight_transcript_artifacts(evidence: list[dict[str, Any]]) -> list[list[Any]]:\n    \"\"\"Bound every transcript reference before any evidence file is read.\"\"\"\n\n    artifacts_by_row: list[list[Any]] = []\n    seen_paths: set[str] = set()\n    total = 0\n    for artifacts_row in evidence:\n        artifacts = artifacts_row.get(\"transcript_artifacts\", [])\n        if not isinstance(artifacts, list):\n            raise SandboxError(\"transcript_artifacts must be a list\")\n        if len(artifacts) > MAX_TRANSCRIPT_ARTIFACTS_PER_ROW:\n            raise SandboxError(\n                f\"transcript_artifacts exceeds the per-row session limit of {MAX_TRANSCRIPT_ARTIFACTS_PER_ROW}\"\n            )\n        total += len(artifacts)\n        if total > MAX_TRANSCRIPT_ARTIFACTS:\n            raise SandboxError(f\"transcript_artifacts exceeds the global evidence limit of {MAX_TRANSCRIPT_ARTIFACTS}\")\n        for artifact in artifacts:\n            relative, _, _ = _transcript_artifact_metadata(artifact)\n            normalized = _normalized_transcript_artifact_path(relative)\n            if normalized in seen_paths:\n                raise SandboxError(f\"duplicate transcript artifact path: {normalized}\")\n            seen_paths.add(normalized)\n        artifacts_by_row.append(artifacts)\n    return artifacts_by_row\n\n\ndef _bound_transcript_artifact(root: Path, metadata: Any) -> str:\n    relative, expected_digest, expected_size = _transcript_artifact_metadata(metadata)\n","sourceCodeStart":351,"sourceCodeEnd":387,"githubUrl":"https://github.com/abhigyanpatwari/GitNexus/blob/d540b00184d71a896261ee02670da9a92d59d8f7/eval/workflow_bench/evolve.py#L351-L387","documentation":"Raised by `_preflight_transcript_artifacts` when a single evidence row carries more than `MAX_TRANSCRIPT_ARTIFACTS_PER_ROW` (=2) transcript artifacts. Each row corresponds to one benchmark run, which the runner caps at 2 captured sessions, so >2 is an invariant violation.","triggerScenarios":"`proposer_evidence_entries` is called with an `evidence` list where some row's `transcript_artifacts` list has length 3 or more.","commonSituations":"A results.jsonl produced by a modified runner that captures extra sessions, or a row assembled by stitching several runs together.","solutions":["Inspect results.jsonl and locate the row with >2 transcript_artifacts entries.","Trim the list to the 2 entries the runner would actually produce, or re-run the benchmark with the stock runner.","If you genuinely need more, raise MAX_TRANSCRIPT_ARTIFACTS_PER_ROW in evolve.py and MAX_TRANSCRIPT_ARTIFACTS accordingly and update the tests that pin the cap."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"MAX_PER_ROW = 2\nviolators = [(r.get('task'), len(r.get('transcript_artifacts', []))) for r in evidence if len(r.get('transcript_artifacts', [])) > MAX_PER_ROW]\nif violators:\n    raise ValueError(f'rows over per-row transcript limit: {violators}')","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Treat MAX_TRANSCRIPT_ARTIFACTS_PER_ROW as a runner contract: one run yields at most 2 sessions.","Do not merge multiple runs into a single evidence row."],"tags":["python","workflow-bench","evidence","limits","sandbox"],"backgroundTag":null,"analyzedSha":"d540b00184d71a896261ee02670da9a92d59d8f7","analyzedAt":"2026-08-12T19:50:25.132Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}