NousResearch/hermes-agent · error · Error

--historyTurns is only supported by the synthetic stream pat

Error message

--historyTurns is only supported by the synthetic stream path

What it means

Error "--historyTurns is only supported by the synthetic stream path" thrown in NousResearch/hermes-agent.

Source

Thrown at apps/desktop/scripts/perf/scenarios/stream.mjs:141

    // Realistic default: a short markdown paragraph ending in a blank line, so
    // blocks SETTLE as they stream — exactly how real LLM output behaves, and
    // what block-memoization is designed for (only the growing tail re-renders).
    // A chunk with NO paragraph break (e.g. `--chunk 'word '`) instead grows one
    // ever-larger block that re-renders fully every flush — a useful worst-case
    // stress, but not the typical number. No raw autolink (avoids DNS/link-embed
    // noise unrelated to render cost).
    const chunk = opts.chunk ?? 'A streamed sentence with **bold**, `code`, and ordinary prose like a normal reply.\n\n'
    const real = Boolean(opts.real)
    const historyTurns = Number(opts.historyTurns ?? 0)
    const historySettleMs = Number(opts.historySettleMs ?? 1500)

    await cdp.send('Runtime.enable')

    // Mount the settled history BEFORE the recorders start, so the measurement
    // window contains only streaming work — not the one-off mount cost.
    if (historyTurns > 0) {
      if (real) {
        throw new Error('--historyTurns is only supported by the synthetic stream path')
      }

      await cdp.eval(`window.__PERF_DRIVE__.loadTranscript(${historyTurns})`)
      await sleep(historySettleMs)

      const mounted = Number(await cdp.eval('window.__PERF_DRIVE__.snapshotMsgs()'))
      const expected = historyTurns * 2

      if (mounted !== expected) {
        throw new Error(`expected ${expected} preloaded history messages, got ${mounted}`)
      }
    }

    await cdp.eval(RECORDERS)

    if (real) {
      // Backend path: fire a real prompt and wait for the stream to appear.
      const baseCount = await cdp.eval(

View on GitHub (pinned to c896c09c42)

Solutions

  1. Drop --historyTurns, or run the scenario with the synthetic stream path that supports it.

When it happens

Trigger: Thrown at apps/desktop/scripts/perf/scenarios/stream.mjs:141 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of NousResearch/hermes-agent@c896c09c42 (2026-08-14). Data as JSON: /api/errors/9a791d4afe299467. Report an issue: GitHub.