Raahat Scenario Harness

Curated conversation replay against the real runtime with stepwise diagnostics, readable deltas, and deterministic checks.

Resume Active Workflow

continuity_resume_active_workflow · continuity · 1/2 turns executed

Scenario Summary

IDcontinuity_resume_active_workflow
TitleResume Active Workflow
Categorycontinuity
Turns1/2
Run Statepartial
resume transport multi_turn

Seed State

UserUnknown user
Phone919900000403
Seed Workflowtransport
Seed State Machine

Current Runtime State

Routetransport
Workflowtransport
State Machine
Stageroute_defined

Checks And Lifecycle

Expectations Passed1
Expectations Failed0
Heuristic Warnings0
Sticky continuation
Final assessmentOperationally incomplete: unresolved fields remain (pet_count).

Final Outcome

Partial

Completed vs partial run state.

Final Route

transport

Current route at the end of the replay.

Final Workflow / State

transport

Workflow preferred; state machine shown if no workflow is active.

Final Stage

route_defined

Resolved from workflow progress or active snapshot.

Expectation Totals

Pass 1 Fail 0

Heuristic Totals

Warnings 0

Missing Fields

pet_count

Lifecycle Events Seen

Sticky continuation
Turn 1
transport transport route_defined active_workflow_snapshot follow_up active_workflow_snapshot
Sticky continuation New slots filled Memory updated Stayed on transport
PASS
User
Tomorrow morning
Assistant
Got it. I can help with transport. How many cats is this for?

What Changed This Turn

  • Active workflow remained transport.
  • New slot filled: last_question_key=pet_count.
  • New slot filled: raw_date_text=tomorrow.
  • New slot filled: raw_time_text=morning.
  • New slot filled: request_kind=booking.
  • New slot filled: time_window=morning.
  • New slot filled: travel_date=2026-03-17.
  • New slot filled: trip_kind=unknown.
  • New slot filled: urgency_class=soon.
  • Memory updated with area.
  • Memory updated with date_phrase.
  • Memory updated with drop_area.
  • Memory updated with last_non_medical_domain.
  • Memory updated with pickup_area.
  • Memory updated with time_text.
  • Memory updated with time_window.
  • Memory updated with transport_urgency.
  • Memory updated with travel_date.
  • Memory updated with trip_kind.
  • Snapshot version incremented to 2.

Expectation And Heuristic Results

Expectations
PASS: workflow_name matched expected value 'transport'
Routing And Interpretation
{
  "confidence": 0.89,
  "reason_codes": [
    "active_workflow_snapshot",
    "follow_up",
    "active_workflow_snapshot",
    "follow_up_slot_fill"
  ],
  "route_type": "transport",
  "workflow_name": "transport"
}
{
  "confidence": 0.89,
  "entities": {
    "date_phrase": "tomorrow",
    "time_text": "morning"
  },
  "is_vague": false,
  "primary_domain": "transport",
  "reason": "slot-like follow-up matches active workflow",
  "secondary_domains": [],
  "should_continue_active_workflow": true,
  "should_preempt_active_workflow": false,
  "urgency_signal": "none"
}
Workflow Progress And Intents
{
  "missing_fields": [
    "pet_count"
  ],
  "next_question": "Got it. I can help with transport. How many cats is this for?",
  "notes": [],
  "stage": "route_defined",
  "state_payload": {
    "drop_area": "Baner",
    "handling_requirements": [],
    "last_question_key": "pet_count",
    "pet_count": null,
    "pickup_area": "Aundh",
    "raw_date_text": "tomorrow",
    "raw_time_text": "morning",
    "request_kind": "booking",
    "return_trip_required": null,
    "stage": "route_defined",
    "time_window": "morning",
    "travel_date": "2026-03-17",
    "trip_kind": "unknown",
    "urgency_class": "soon"
  },
  "status": "collecting",
  "summary": "Aundh -> Baner | 2026-03-17 | morning",
  "superseded_by": null,
  "workflow_name": "transport"
}
[]
Conversation Before And After
{
  "active_state_machine": null,
  "active_workflow": {
    "last_question_key": "time_window",
    "missing_fields": [
      "time_window"
    ],
    "next_question": null,
    "stage": "route_defined",
    "started_at": "2026-03-16T22:18:07.657112+00:00",
    "state_payload": {
      "drop_area": "Baner",
      "pickup_area": "Aundh",
      "stage": "route_defined"
    },
    "status": "collecting",
    "summary": null,
    "superseded_by": null,
    "updated_at": "2026-03-16T22:18:07.657116+00:00",
    "version": 1,
    "workflow_name": "transport"
  },
  "current_state": null,
  "entities": {},
  "messages": [],
  "phone": "919900000403",
  "service_actions": [],
  "started_at": "2026-03-16T22:18:07.657139+00:00",
  "triage_state": null,
  "updated_at": "2026-03-16T22:18:07.657140+00:00"
}
{
  "active_state_machine": null,
  "active_workflow": {
    "last_question_key": "pet_count",
    "missing_fields": [
      "pet_count"
    ],
    "next_question": "Got it. I can help with transport. How many cats is this for?",
    "stage": "route_defined",
    "started_at": "2026-03-16T22:18:07.657112+00:00",
    "state_payload": {
      "drop_area": "Baner",
      "handling_requirements": [],
      "last_question_key": "pet_count",
      "pet_count": null,
      "pickup_area": "Aundh",
      "raw_date_text": "tomorrow",
      "raw_time_text": "morning",
      "request_kind": "booking",
      "return_trip_required": null,
      "stage": "route_defined",
      "time_window": "morning",
      "travel_date": "2026-03-17",
      "trip_kind": "unknown",
      "urgency_class": "soon"
    },
    "status": "collecting",
    "summary": "Aundh -> Baner | 2026-03-17 | morning",
    "superseded_by": null,
    "updated_at": "2026-03-16T22:18:07.665144+00:00",
    "version": 2,
    "workflow_name": "transport"
  },
  "current_state": "ROUTE_DEFINED",
  "entities": {
    "area": "Aundh",
    "date_phrase": "tomorrow",
    "drop_area": "Baner",
    "last_non_medical_domain": "transport",
    "pickup_area": "Aundh",
    "time_text": "morning",
    "time_window": "morning",
    "transport_urgency": "soon",
    "travel_date": "2026-03-17",
    "trip_kind": "unknown"
  },
  "messages": [
    {
      "role": "user",
      "source": null,
      "text": "Tomorrow morning",
      "timestamp": "2026-03-16T22:18:07.665177+00:00"
    },
    {
      "role": "assistant",
      "source": "B",
      "text": "Got it. I can help with transport. How many cats is this for?",
      "timestamp": "2026-03-16T22:18:07.665179+00:00"
    }
  ],
  "phone": "919900000403",
  "service_actions": [],
  "started_at": "2026-03-16T22:18:07.665173+00:00",
  "triage_state": null,
  "updated_at": "2026-03-16T22:18:07.665203+00:00"
}
Memory And Trace
{
  "active_state_machine": null,
  "backend": "inmemory",
  "conversation_key_used": "919900000403",
  "conversation_keys": [
    "919900000403",
    "9900000403"
  ],
  "current_state": null,
  "loaded": true,
  "ping_ok": null,
  "redis_enabled": false,
  "thread_message_count": 0,
  "ttl_seconds_remaining": null
}
{
  "active_state_machine": null,
  "backend": "inmemory",
  "conversation_key_used": "919900000403",
  "conversation_keys": [
    "919900000403",
    "9900000403"
  ],
  "current_state": "ROUTE_DEFINED",
  "loaded": true,
  "ping_ok": null,
  "redis_enabled": false,
  "thread_message_count": 2,
  "ttl_seconds_remaining": null
}
[
  {
    "component": "brain",
    "payload": {
      "channel": "scenario_harness",
      "conversation_key": "919900000403",
      "message_text": "Tomorrow morning",
      "normalized_phone": "919900000403",
      "phone": "919900000403"
    },
    "stage": "input",
    "summary": "Received normalized message envelope",
    "timestamp": "2026-03-16T22:18:07.664623+00:00"
  },
  {
    "component": "memory_store",
    "payload": {
      "active_state_machine": null,
      "backend": "inmemory",
      "current_state": null,
      "loaded": true,
      "message_count": 0,
      "storage_key": "919900000403"
    },
    "stage": "memory",
    "summary": "Loaded conversation memory",
    "timestamp": "2026-03-16T22:18:07.664628+00:00"
  },
  {
    "component": "brain",
    "payload": {
      "has_prior_triage_state": false,
      "prior_state_error": null
    },
    "stage": "state",
    "summary": "Parsed prior working state",
    "timestamp": "2026-03-16T22:18:07.664629+00:00"
  },
  {
    "component": "brain",
    "payload": {
      "compact_payload_keys": [
        "incoming_message"
      ],
      "has_conversation": true,
      "has_customer": false,
      "has_icp": false,
      "has_profile": false,
      "recent_import_count": 0,
      "storage_key": "919900000403"
    },
    "stage": "context",
    "summary": "Assembled SessionContext for the turn",
    "timestamp": "2026-03-16T22:18:07.664633+00:00"
  },
  {
    "component": "contact_resolver",
    "payload": {
      "confidence": 0.0,
      "customer_id": null,
      "display_name": null,
      "matched_phone": null,
      "status": "UNKNOWN"
    },
    "stage": "decision",
    "summary": "Resolved sender contact status",
    "timestamp": "2026-03-16T22:18:07.664638+00:00"
  },
  {
    "component": "turn_interpretation",
    "payload": {
      "confidence": 0.89,
      "contact_status": "UNKNOWN",
      "entities": {
        "date_phrase": "tomorrow",
        "time_text": "morning"
      },
      "is_vague": false,
      "primary_domain": "transport",
      "reason": "slot-like follow-up matches active workflow",
      "secondary_domains": [],
      "should_continue_active_workflow": true,
      "should_preempt_active_workflow": false,
      "urgency_signal": "none"
    },
    "stage": "decision",
    "summary": "Resolved turn interpretation deterministically",
    "timestamp": "2026-03-16T22:18:07.664786+00:00"
  },
  {
    "component": "profile_context",
    "payload": {
      "phone": "919900000403"
    },
    "stage": "context",
    "summary": "No customer matched provided phone",
    "timestamp": "2026-03-16T22:18:07.664793+00:00"
  },
  {
    "component": "entry_policy",
    "payload": {
      "allow_identity_question": false,
      "bypass_onboarding": true,
      "defer_existing_workflow": false,
      "preempt_active_workflow": false,
      "reason": "existing active workflow should continue unless urgency preempts it",
      "run_welcome_orientation": false,
      "selected_posture": "continue_active"
    },
    "stage": "decision",
    "summary": "Determined entry posture for this turn",
    "timestamp": "2026-03-16T22:18:07.664794+00:00"
  },
  {
    "component": "intent_parser",
    "payload": {
      "continue_active_workflow": true,
      "primary_intent": "transport_request",
      "reason": "continue_active_workflow_snapshot_from_follow_up",
      "resolved_state_machine": "transport",
      "workflow_source": "active_workflow"
    },
    "stage": "decision",
    "summary": "Resolved primary intent and state machine",
    "timestamp": "2026-03-16T22:18:07.664846+00:00"
  },
  {
    "component": "context_builder",
    "payload": {
      "active_workflow": "transport",
      "background_fact_count": 0,
      "current_step": "route_defined",
      "foreground_fact_count": 4,
      "prompt_family": "general",
      "purpose": "workflow_response"
    },
    "stage": "context",
    "summary": "Built workflow-response context slice for prompt assembly",
    "timestamp": "2026-03-16T22:18:07.664879+00:00"
  },
  {
    "component": "workflow",
    "payload": {
      "action_intents": [],
      "missing_fields": [
        "pet_count"
      ],
      "next_question": "Got it. I can help with transport. How many cats is this for?",
      "stage": "route_defined",
      "status": "collecting",
      "summary": "Aundh -> Baner | 2026-03-17 | morning",
      "workflow_name": "transport"
    },
    "stage": "decision",
    "summary": "Executed deterministic workflow handler",
    "timestamp": "2026-03-16T22:18:07.665162+00:00"
  },
  {
    "component": "memory_store",
    "payload": {
      "active_state_machine": null,
      "current_state": "ROUTE_DEFINED",
      "message_count_after": 2,
      "storage_key": "919900000403"
    },
    "stage": "mutation",
    "summary": "Persisted updated conversation memory",
    "timestamp": "2026-03-16T22:18:07.665489+00:00"
  }
]