Skip to content

Copilot provider: Web dashboard shows "Turn ?" instead of turn number (wrong attribute name) #62

@franklixuefei

Description

@franklixuefei

Bug Description

The web dashboard shows "Turn ?" for every turn when using the Copilot provider. The Claude provider correctly shows the turn number (e.g., "Turn 7").

Root Cause

The Copilot SDK's assistant.turn_start event exposes the turn number as turn_id (a string), but the Conductor copilot provider reads turn (which doesn't exist on the event data object), causing it to always be None.

The React frontend then renders Turn ? via the nullish coalescing fallback: Turn ${i.turn ?? "?"}.

Affected Code

File: conductor/providers/copilot.py

Location 1 — _log_event_verbose (line ~1122):

# Current (broken):
turn = getattr(event.data, "turn", None)

# Fix:
turn = getattr(event.data, "turn_id", None)

Location 2 — _forward_event (line ~1179):

# Current (broken):
turn = getattr(event.data, "turn", None)
callback("agent_turn_start", {"turn": turn})

# Fix:
turn = getattr(event.data, "turn_id", None)
callback("agent_turn_start", {"turn": turn})

Evidence

The Copilot SDK (github_copilot_sdk 0.2.0) defines the field as turn_id: str | None in copilot/generated/session_events.py (line 2203):

turn_id: str | None = None
"""Identifier for this turn within the agentic loop, typically a stringified turn number"""

For comparison, the Claude provider (claude.py, line 971) works correctly because it maintains its own iteration counter instead of relying on the SDK event:

event_callback("agent_turn_start", {"turn": iteration})

Reproduction

  1. Run any Conductor workflow with the Copilot provider and --web flag
  2. Open the web dashboard
  3. Observe that all turns display as "Turn ?" instead of "Turn 1", "Turn 2", etc.

Environment

  • Conductor CLI: 0.1.5
  • GitHub Copilot SDK: 0.2.0
  • OS: Windows (also likely affects Linux/macOS)

Suggested Fix

Two-line change — replace "turn" with "turn_id" in both getattr calls in copilot.py.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions