-
Notifications
You must be signed in to change notification settings - Fork 4
Description
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
- Run any Conductor workflow with the Copilot provider and
--webflag - Open the web dashboard
- 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.