NousResearch/hermes-agent · error · Error
multitab setup failed (${ok}) — dev hooks missing? (needs a
Error message
multitab setup failed (${ok}) — dev hooks missing? (needs a dev/probe renderer) What it means
Error "multitab setup failed (${ok}) — dev hooks missing? (needs a dev/probe renderer)" thrown in NousResearch/hermes-agent.
Source
Thrown at apps/desktop/scripts/perf/scenarios/multitab.mjs:325
const tools = Boolean(opts.tools)
const tokens = Number(opts.tokens ?? 240)
// Matches STREAM_DELTA_FLUSH_MS — one publish per session per real flush.
const intervalMs = Number(opts.intervalMs ?? 33)
// --code: every tile grows ONE giant fenced code block with no settle
// boundaries — what a coding agent streams. The block re-parses and
// re-renders fully every flush (block memoization can't settle it), the
// documented worst case and the "5 tabs all coding" crawl.
const chunk = opts.code
? ' const value = await resolve(ctx, { retry: true }) // step\n'
: (opts.chunk ?? 'A streamed review sentence with **bold**, `code`, and ordinary prose.\n\n')
const streamSeed = opts.code ? '```ts\n' : ''
await cdp.send('Runtime.enable')
const ok = await cdp.eval(setup(tiles, seedTurns, streamSeed, zones, seedSessions, streaming, dead, tools))
if (ok !== 'ok') {
throw new Error(`multitab setup failed (${ok}) — dev hooks missing? (needs a dev/probe renderer)`)
}
// Mount every tab (keep-alive mounts on first activation), then settle.
// Each reveal is timed to the next paint — with deep transcripts the
// first mount is the "why does switching tabs hang" number.
const revealMs = []
for (let n = 1; n <= tiles; n++) {
const ms = Number(
await cdp.eval(`
new Promise(resolve => {
const t0 = performance.now()
${reveal(`perf-tile-${n}`)}
requestAnimationFrame(() => requestAnimationFrame(() => resolve(performance.now() - t0)))
})
`)
)
View on GitHub (pinned to c896c09c42)
Solutions
- Run the scenario against a dev build of the desktop app where dev hooks are installed.
- Confirm the renderer exposes the perf probe hooks and retry the setup step.
When it happens
Trigger: Thrown at apps/desktop/scripts/perf/scenarios/multitab.mjs:325 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/c1f411dd950529cb.
Report an issue: GitHub.