{"record":{"id":"bd8f99f072f1a883","repo":"paperclipai/paperclip","slug":"current-capabilitylivesessionservice-requires-coll","errorCode":null,"errorMessage":"current CapabilityLiveSessionService requires collaboration-mode instructions","messagePattern":"current CapabilityLiveSessionService requires collaboration-mode instructions","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/paperclip-runner/src/cli/eval-session-contract.ts","lineNumber":275,"sourceCode":"  const managedProfile = provider === \"claude_managed\"\n    ? parseManagedProfile(managedProfileInput)\n    : undefined;\n  const agentCoreProfile = provider === \"aws_agentcore\"\n    ? parseAgentCoreProfile(agentCoreProfileInput)\n    : undefined;\n  if (provider !== \"claude_managed\" && managedProfileInput !== undefined) {\n    throw new Error(\"eval-session managedProfile requires provider claude_managed\");\n  }\n  if (provider !== \"aws_agentcore\" && agentCoreProfileInput !== undefined) {\n    throw new Error(\"eval-session agentCoreProfile requires provider aws_agentcore\");\n  }\n  if (input.nativeResume !== undefined) {\n    throw new Error(\n      \"eval-session nativeResume requires a retained live-session checkpoint\",\n    );\n  }\n  if (input.includeCollaborationModeInstructions === false) {\n    throw new Error(\n      \"current CapabilityLiveSessionService requires collaboration-mode instructions\",\n    );\n  }\n\n  const runnerd = object(input.runnerd, \"request.runnerd\");\n  const digest = text(runnerd.sha256, \"request.runnerd.sha256\");\n  if (!/^(?:sha256:)?[a-f0-9]{64}$/i.test(digest)) {\n    throw new Error(\"request.runnerd.sha256 must be a SHA-256 digest\");\n  }\n  const limits = object(input.limits, \"request.limits\");\n  const sessionInput = object(input.session, \"request.session\");\n  const session = sessionInput as unknown as CreateCapabilityLiveSessionInput;\n  const model = text(input.model, \"request.model\");\n  if (provider === \"claude_managed\" && model !== \"claude-sonnet-5\") {\n    throw new Error(\"Claude Managed evals require exact model claude-sonnet-5\");\n  }\n  if (\n    provider === \"aws_agentcore\" &&","sourceCodeStart":257,"sourceCodeEnd":293,"githubUrl":"https://github.com/paperclipai/paperclip/blob/01ad8584922b5d85292b1723cae71fa0d9b07a19/packages/paperclip-runner/src/cli/eval-session-contract.ts#L257-L293","documentation":"The current CapabilityLiveSessionService always injects collaboration-mode instructions, so it cannot honor a request that explicitly opts out. parseEvalSessionRequest throws when input.includeCollaborationModeInstructions is exactly false; undefined (absent) is accepted, but a deliberate false is refused fail-closed.","triggerScenarios":"Calling parseEvalSessionRequest with includeCollaborationModeInstructions: false in the eval-session request body for any provider.","commonSituations":"A generic harness/config builder that serializes an opt-out flag it supports elsewhere but this service does not; trying to slim prompts by disabling collaboration instructions in eval runs; porting a request shape from a different session service that allows the opt-out.","solutions":["Remove includeCollaborationModeInstructions or set it to true (or just omit it).","If the goal is fewer instructions, achieve it outside the eval-session contract; this service does not support opting out.","If opt-out should exist, extend CapabilityLiveSessionService itself, not just the request."],"exampleFix":"// before\n{ \"provider\": \"codex\", \"includeCollaborationModeInstructions\": false, ... }\n// after\n{ \"provider\": \"codex\", ... }","handlingStrategy":"validation","validationCode":"function allowsCollaborationOptOut(input) { return input.includeCollaborationModeInstructions !== false; }\nif (!allowsCollaborationOptOut(req)) throw new Error(\"collaboration-mode instructions are mandatory for this service\");","typeGuard":"function acceptsOptOut(input) { return input.includeCollaborationModeInstructions !== false; }","tryCatchPattern":"try { return parseEvalSessionRequest(raw); } catch (e) { if (String(e.message).includes(\"requires collaboration-mode instructions\")) { delete raw.includeCollaborationModeInstructions; return parseEvalSessionRequest(raw); } throw e; }","preventionTips":["Only send includeCollaborationModeInstructions when the target service supports opting out.","Centralize request construction so the opt-out flag cannot leak into eval-session calls.","Assert flags against a supported-options list in tests."],"tags":["validation","unsupported-feature","request-contract"],"backgroundTag":"unsupported-capability-flag","analyzedSha":"01ad8584922b5d85292b1723cae71fa0d9b07a19","analyzedAt":"2026-09-02T18:44:00.616Z","contentChangedAt":"2026-09-02T18:44:00.616Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}