Nº 32

This week at Roark

July 20 to 26, 2026

This week I wanted to make the signals in Roark easier to act on. Four things landed: a much richer call audio player, issues that tell you where to fix them, a new naturalness metric, and simulations that mirror how your real flows chain together.


01

🎧 Notable moments on the call audio player

The call audio player now surfaces where the interesting things happened, not just the transcript. A sentiment ribbon runs under the diarization tracks, and a moments lane above it marks interruptions, agent cutoffs, and any boolean or offset metric that fired during the call.

Call audio player with sentiment ribbon and notable moment markers

How it works:

  • Hover a marker to see the metric name, value, reasoning, timestamp, and participant.
  • Click a marker to seek the audio to that instant and highlight the matching transcript line.
  • Toggle legend chips to filter the marker categories you care about.
  • Any new segment or turn metric shows up automatically based on its output type. Sentiment paints the ribbon, booleans and offsets drop markers, whole-call scalars stay in the metrics tab.

02

🩺 Issues now tell you where to fix them

Every issue in Roark now carries a remediation channel so you don't waste an LLM call generating prompt suggestions for a latency regression. A latency issue points at INFRA or LLM_MODEL, interruption issues point at VOICE_CONFIG, mishearing points at STT, and so on. The suggested-fix panel only auto-runs prompt analysis when PROMPT is actually in the mix; otherwise you get diagnosis-flavored guidance and a link to the right place to fix it.

Issue detail showing remediation channel chips and targeted suggested fix

Opened notifications also went source-agnostic. Trend alerts used to be the only source that pushed a webhook when an issue opened. Now AGENT, MANUAL, API, TRACE_FAILURE, and SINGLE_CALL_ALERT issues all fire the same issue.opened webhook. Existing subscriptions pick this up with no changes on your side.

Also new:

  • Sidebar badge with a live count of open and acked issues, hidden at zero.
  • Dashboard header chip showing the newest open issue title, or a quiet all-clear.
  • "Fix via" chip set on every issue row so you can triage at a glance.

03

🗣️ Conversation Flow, a new system metric

A new 1 to 5 LLM-judged metric in the Conversation Quality package that grades how naturally a call flowed: turn-taking, pacing, responsiveness, and the absence of awkward silences, robotic repetition, or talking over one another. Bands run from Very Choppy to Seamless, with a built-in threshold that fails the two Choppy bands so you can plug it into monitors immediately.

Conversation Flow metric card with 1 to 5 banding

It is transcript-based (it measures conversational naturalness, not audio fidelity) and opt-in per policy, dashboard, or run plan. Add it to a call and you get a holistic "did this flow well?" score in one number, on top of the raw response-time and interruption signals you already have.


04

🧪 Simulations: tighter loops, richer flows

A few upgrades that make simulation runs faster to iterate on and more faithful to how your production flows are actually wired.

Create-run dialog prompting for a preceding scripted flow's variables before the improv runs

What's new:

  • Preceded-by chained flows. An improv flow can now run a linked scripted flow first at runtime, and the create-run dialog prompts for the preceding flow's variables so the whole chain resolves without hardcoded values.
  • Sub-hourly schedules. Run a plan every 15, 30, or 45 minutes (or any custom minute value down to 15). The old floor was hourly.

From

James