cli: resolve the recap repo scope and display name in one pass
main·
Commit

Review finding on the cell path: newRecapClient resolved the origin remote (plus the control-plane mirror lookup) via currentRepoID, then runRecap resolved the same remote again via currentRepoSlug for the scope-line display name — two git resolutions per recap.
currentRepoID becomes currentRepoRef and returns (repoID, repoSlug) from the single resolution it already does; newRecapClient threads both through, and the data-API path returns its slug as both scope and name. runRecap no longer re-resolves. An un-mirrored repo yields empty scope AND name, preserving the unscoped-recap-isn't-mislabelled rule.
Co-Authored-By: Claude Fable 5 noreply@anthropic.com Entire-Checkpoint: 6dd06fa6260a
Checkpoints
Checkpoint 1