{"version":"2.1.301","anchor":"new-telemetry-fields","canonical_anchor":"new-telemetry-fields","heading":"Plugin sync rounds report an outcome, and the turn-start check can run without blocking","tier":"internal","area":"Telemetry","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/new-telemetry-fields","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301","markdown":"### Plugin sync rounds report an outcome, and the turn-start check can run without blocking\n\nPlugin sync now records how each round ended and its round number, and the check at the start of a turn can run without the turn waiting on it\n\n**What**\n\nClaude Code periodically syncs your plugins (add-ons that extend it). This release adds more record-keeping around that sync, along with a few other new fields.\n\n- Each plugin sync round now keeps an outcome, such as `ok`, `gate_closed`, `list_failed` or `unexpected_error`, and reports it when the round ends.\n\n- Startup reporting now includes the sync round number, `plugins_sync_round`.\n\n- The check at the start of each turn (each time Claude starts responding) was split into `isDueAt` and `atTurnStart`, and `atTurnStart` can now be told not to wait. When it finishes it records whether anything changed, whether the turn waited for it, and how long it took (`is_changed`, `is_waited_for`, `duration_ms`).\n\n- Separately, reporting about the end of a previous session (used when resuming) gains `tail_age_min` and `tail_shutdown_stamped`.\n\nBefore this release, `atTurnStart` worked out when the next sync was due inline and recorded nothing when it finished.\n\n**Why**\n\nMost of this is internal measurement and does not change what you see. The practical difference is that the plugin sync check at the start of a turn can now run without holding up the turn.\n\n- Area: Telemetry\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 2\/5\n- Scope: individual\n- Heads-up: no"}