Read recap's team side from the repo's processing cell

Commit

peyton-alt2w ago

entire recap sent /me/recap only to the caller's home cell. A repo's team rollups live only on its processing cell, and entire-api does not merge across cells, so a caller homed elsewhere got a team column of zeros that looked real (checked live: the eu cell answers entireio/cli with team 0/0/0 while the us cell has 198 sessions from 12 contributors).

When the repo's processing placement is on another cell, recap now asks both cells for the same window in parallel and takes the team fields from the repo's cell and the personal fields from home (recap.MergeTeam). If the repo's cell fails, times out (5s) or the caller is not a member there, the team side is dropped rather than shown as zeros. Same-cell repos and an ENTIRE_API_BASE_URL override keep the single home call. Both cells share one CellClientFactory.

Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com Entire-Checkpoint: 01M5JYPB159GR4ZQX58TJC063Y