The testSame model, prompt class, and network path. Change Session size and concurrent steps independently.

Put four timestamps on the wait.

t0Step startsHarness log
Host out
t1Request arrivesgateway log
Provider
t2First tokengateway log
Host in
t3Chunk recordedHarness log

Use an A/B ladder.

  1. Fresh · 1 stepbaseline
  2. Mature · 1 stepevent volume
  3. Fresh · 3 / 5 / 8shared-process overlap
  4. Before / after restartprocess accumulation
  5. Fork / new Sessionprefix cost

Three Host pressure paths.

append → snapshotComplete log copy

The first session.events read after append rebuilds the immutable array.

event → token meterHot observer

Once initialized, the meter catches up after each published Session event.

fork → constructorPrefix validation

Every seeded event is validated, detached or adopted, and frozen synchronously.

Mitigate the measured dimension.

Concurrency cliffBatch child work.

For the Workflow worker engine, set an explicit small maxConcurrentAgents.

Large durable prefixStart clean.

Carry a short handoff into a new conversation instead of forking the full history.

Temporary restart gainKeep it diagnostic.

Capture evidence first; restart does not shrink resumed Session history.

Provider is actually slowEscalate with t1 → t2.

Do not attribute gateway time to Host event processing.

Similar controls are not substitutes.

maxParallelToolCallstools inside one step
maxConcurrentAgentsone Workflow engine
maxTokensone response output
compactionmodel-visible context

Primary evidence.

Bring a distribution, not one slow turn.

The canonical guide includes the Session event counter, complete A/B ladder, source conditions, and performance incident bundle.

Read and star on GitHub