{"record":{"id":"5bc8c2023fb22899","repo":"deepseek-ai/deepseek-harness","slug":"binname-config-absoluteconfigpath-must-be-a","errorCode":null,"errorMessage":"${binName}: config ${absoluteConfigPath} must be a top-level YAML array of entries","messagePattern":"(.+?): config (.+?) must be a top-level YAML array of entries","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/boot/app-boot/src/index.ts","lineNumber":398,"sourceCode":"  binName: string,\n  absoluteConfigPath: string,\n  layers: ConfigDumpLayer[],\n  warn: (line: string) => void = line => void process.stderr.write(`${line}\\n`),\n): string {\n  let content: string\n  try {\n    content = readFileSync(absoluteConfigPath, 'utf8')\n  } catch (error) {\n    throw new Error(`${binName}: failed to read config ${absoluteConfigPath}: ${String(error)}`)\n  }\n  let parsed: unknown\n  try {\n    parsed = yaml.load(content, { schema: entryListSchema })\n  } catch (error) {\n    throw new Error(`${binName}: failed to parse config ${absoluteConfigPath}: ${String(error)}`)\n  }\n  if (!Array.isArray(parsed)) {\n    throw new Error(`${binName}: config ${absoluteConfigPath} must be a top-level YAML array of entries`)\n  }\n  const baseLabel = basename(absoluteConfigPath)\n  // YAML parsing yields untyped rows; the include validates each entry\n  // at mount, and the dump prints whatever the file holds, so `EntryOptions`\n  // here is structural trust in the same file `boot()` would include.\n  const base = parsed as Parameters<typeof applyEntryPatches>[0]\n  // snapshot_k = ONE application of layers 1..k flattened, using the exact\n  // arguments boot passes for that prefix. snapshot_N is the mounted composition.\n  // The patches are cloned per call: applyEntryPatches detaches the entry\n  // list but pushes `insert` rows by reference from the patch list, so\n  // sharing patch objects across snapshot calls would leak a later\n  // snapshot's mutations into an earlier one's result.\n  const snapshot = (count: number, warnings: string[]): ReturnType<typeof applyEntryPatches> => {\n    const flattened = structuredClone(layers.slice(0, count).flatMap(layer => layer.patches))\n    return applyEntryPatches(base, flattened, (message: string, ...args: unknown[]) => {\n      // The include logs through cordis's printf-style logger (`%C` = code); a\n      // dump has no logger, so substitute inline for a plain line.\n      let index = 0","sourceCodeStart":380,"sourceCodeEnd":416,"githubUrl":"https://github.com/deepseek-ai/deepseek-harness/blob/b150a551b8d465e31e418e1b2eaf5e79bbb7d28e/packages/boot/app-boot/src/index.ts#L380-L416","documentation":"Error \"${binName}: config ${absoluteConfigPath} must be a top-level YAML array of entries\" thrown in deepseek-ai/deepseek-harness.","triggerScenarios":"Thrown at packages/boot/app-boot/src/index.ts:398 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Make the config a top-level YAML array of entries."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"b150a551b8d465e31e418e1b2eaf5e79bbb7d28e","analyzedAt":"2026-08-24T18:12:29.105Z","schemaVersion":2},"datasetVersion":"2026-08-24T22:17:12.610Z"}