{"record":{"id":"24a0a771d46509b8","repo":"Fission-AI/OpenSpec","slug":"buildlaunchcommand-requires-an-absolute-workspace","errorCode":null,"errorMessage":"buildLaunchCommand requires an absolute workspace-file path (got '${input.codeWorkspacePath}').","messagePattern":"buildLaunchCommand requires an absolute workspace-file path \\(got '(.+?)'\\)\\.","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"src/core/openers.ts","lineNumber":345,"sourceCode":" * absolute path (which also defuses the cursor shim's `agent`\n * first-arg hijack). attach-dirs: pre-args + one attach flag + path\n * pair per surviving member, the primary included (the locked \"one\n * attach flag per member\"); never a trailing positional - both agent\n * CLIs would read one as a starter prompt, which 7.1 locks out.\n */\nexport function buildLaunchCommand(\n  opener: OpenerDefinition,\n  input: { members: WorksetMember[]; codeWorkspacePath: string }\n): LaunchCommand {\n  if (input.members.length === 0) {\n    throw new Error('buildLaunchCommand requires at least one member.');\n  }\n\n  // The no-hijack and no-positional guarantees lean on absolute paths\n  // (the child resolves relative argv against its own cwd) - keep the\n  // invariant local instead of three modules away.\n  if (!path.isAbsolute(input.codeWorkspacePath)) {\n    throw new Error(\n      `buildLaunchCommand requires an absolute workspace-file path (got '${input.codeWorkspacePath}').`\n    );\n  }\n\n  const cwd = input.members[0].path;\n\n  if (opener.style === 'workspace-file') {\n    return {\n      executable: opener.command,\n      args: [...opener.args, input.codeWorkspacePath],\n      cwd,\n      label: opener.label,\n      style: opener.style,\n    };\n  }\n\n  return {\n    executable: opener.command,","sourceCodeStart":327,"sourceCodeEnd":363,"githubUrl":"https://github.com/Fission-AI/OpenSpec/blob/6926ccb18afa4ff621112813e9968334576ee11a/src/core/openers.ts#L327-L363","documentation":"Error \"buildLaunchCommand requires an absolute workspace-file path (got '${input.codeWorkspacePath}').\" thrown in Fission-AI/OpenSpec.","triggerScenarios":"Thrown at src/core/openers.ts:345 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6926ccb18afa4ff621112813e9968334576ee11a","analyzedAt":"2026-08-25T12:29:45.729Z","schemaVersion":2},"datasetVersion":"2026-08-25T16:17:27.014Z"}