{"record":{"id":"5971a8121b0ccf76","repo":"abhigyanpatwari/GitNexus","slug":"ce-arm-has-no-staged-compound-engineering-plugin","errorCode":null,"errorMessage":"ce_* arm has no staged Compound Engineering plugin","messagePattern":"ce_\\* arm has no staged Compound Engineering plugin","errorType":"exception","errorClass":"SandboxError","httpStatus":null,"severity":"error","filePath":"eval/workflow_bench/runtime_mounts.py","lineNumber":125,"sourceCode":"            \"name\": \"compound-engineering\",\n            \"version\": self.version,\n            \"manifest_schema_version\": CE_PLUGIN_MANIFEST_SCHEMA_VERSION,\n            \"manifest_digest\": self.manifest_digest,\n            \"file_count\": self.file_count,\n            \"total_bytes\": self.total_bytes,\n        }\n\n\ndef ce_plugin_mounts_for_arm(\n    arm: str,\n    snapshot: CePluginSnapshot | None,\n) -> tuple[ReadOnlyMount, ...]:\n    \"\"\"Expose the staged comparator only to CE arms.\"\"\"\n\n    if arm not in CE_ARMS:\n        return ()\n    if snapshot is None:\n        raise SandboxError(\"ce_* arm has no staged Compound Engineering plugin\")\n    return (snapshot.mount,)\n\n\ndef ce_plugin_dir_for_arm(arm: str, snapshot: CePluginSnapshot | None) -> str | None:\n    \"\"\"Return Claude's fixed in-sandbox plugin path only for CE arms.\"\"\"\n\n    ce_plugin_mounts_for_arm(arm, snapshot)\n    return SANDBOX_CE_PLUGIN if arm in CE_ARMS else None\n\n\ndef _validated_runtime_root(path: Path, *, label: str) -> Path:\n    \"\"\"Return one real directory without accepting any symlink hop.\"\"\"\n\n    root = path.expanduser().absolute()\n    try:\n        mode = root.lstat().st_mode\n        resolved = root.resolve(strict=True)\n    except OSError as exc:","sourceCodeStart":107,"sourceCodeEnd":143,"githubUrl":"https://github.com/abhigyanpatwari/GitNexus/blob/d540b00184d71a896261ee02670da9a92d59d8f7/eval/workflow_bench/runtime_mounts.py#L107-L143","documentation":"Raised by ce_plugin_mounts_for_arm (runtime_mounts.py:122-126) when a Compound-Engineering arm is selected (one of ce_workflow, ce_workflow_direct, ce_review) but no CePluginSnapshot was staged — i.e. snapshot is None. SandboxError subclasses RuntimeError and signals that containment could not be established without weakening the contract.","triggerScenarios":"The runner is invoked with a ce_* arm but --ce-plugin-dir and/or --ce-plugin-version were not supplied, so validate_ce_plugin_inputs returned None and staged_ce_plugin_snapshot yielded None; then ce_plugin_mounts_for_arm is called for that arm.","commonSituations":"Adding a CE arm to --arms without the plugin args; the CE plugin dir failed validation upstream; running CE comparison on a machine without the plugin checkout.","solutions":["Supply both --ce-plugin-dir and --ce-plugin-version when any ce_* arm is selected.","If you did not intend CE comparison, remove the ce_* arm from --arms.","Confirm the plugin dir passes validate_ce_plugin_inputs (real directory, valid manifest)."],"exampleFix":"# before: wfbench --arms ce_workflow ...\n# after:  wfbench --arms ce_workflow --ce-plugin-dir /path/to/plugin --ce-plugin-version 1.2.3 ...","handlingStrategy":"validation","validationCode":"from workflow_bench.runtime_mounts import CE_ARMS\nif any(a in CE_ARMS for a in args.arms):\n    if not args.ce_plugin_dir or not args.ce_plugin_version:\n        raise SystemExit(\"ce_* arms require --ce-plugin-dir and --ce-plugin-version\")","typeGuard":"from workflow_bench.runtime_mounts import CE_ARMS\ndef ce_arms_present(arms: list[str]) -> bool:\n    return any(a in CE_ARMS for a in arms)","tryCatchPattern":null,"preventionTips":["Always pair ce_* arms with --ce-plugin-dir and --ce-plugin-version.","Drop ce_* arms when you are not running Compound-Engineering comparison."],"tags":["workflow-bench","sandbox","ce-plugin","mounts"],"backgroundTag":null,"analyzedSha":"d540b00184d71a896261ee02670da9a92d59d8f7","analyzedAt":"2026-08-12T19:50:25.132Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}