Smart local checkout push: force only when checkout is a subset
Local checkout push: try normal push first. If rejected, check if the
checkout's tip tree appears in the split chain (tree containment).
If yes, the split is a strict superset — safe to auto-force. If no,
the checkout has content not in the monorepo — refuse and suggest
pulling into the monorepo first.
This handles: split algorithm changes, filter-repo rewrites, and
concurrent monorepo instances without silently overwriting work.