cli: dedup mirror-active filter and cell-fallback logging
Commit

Cleanups from a simplify pass over the activity/recap routing:
- Extract isActiveMirror(coreapi.Mirror) — the archived + failed/suspended placement filter that firstActiveRepoID and distinctActiveClusterHosts each spelled out — so "can this placement serve the repo" has one home; a new non-serving status now only needs updating there.
- Extract logCellClientFallback for the two cell→data-API call sites, replacing the duplicated inverse-condition debug log. It also drops the noise for the expected not-logged-in case (not just no-cell-yet), and removes the awkward if/else-with-empty-branch in newRecapClient.
No behaviour change.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com Entire-Checkpoint: 8d8cf40beade
Checkpoints
Checkpoint 1