explain: fix branch-list truncation detection and note wording
main·
Commit

Addresses PR #1560 review:
- detect truncation at its source: getBranchCheckpoints now returns whether it hit its scan budget, instead of guessing from the returned slice length (which over-triggered and, worse, dropped checkpoints — the live and imported budgets are independent, so the list can hold up to 2*limit entries with nothing actually dropped)
- prose branch list renders everything returned (restoring pre-PR behavior) and only notes truncation when the budget was genuinely hit
- truncation note names the full 'entire checkpoint explain --json --limit <N>' command, valid whether reached via explain, checkpoint explain, or checkpoint list (which has no --json flag of its own)
- note wording is budget-based, not display-count based, so a --session filter no longer skews it; no exact count is claimed
- JSON list path uses the same source-of-truth truncation signal
Entire-Checkpoint: 9e819d18460e
Checkpoints
Checkpoint 1