f7de2ca416
_build_repos emptied each lane's sessions array for the overview (hydrate=False) payload BEFORE _sort_lanes ran. _lane_sort_key derives a lane's activity from max(_session_time(s) for s in group["sessions"]), so with the rows already gone every non-trunk lane scored activity=0.0 and the sort key (is_trunk, is_kanban, -activity, label) collapsed to alphabetical-by-label. The documented intent — branches and linked worktrees sort by most-recent activity, then label — was silently defeated on the projects.tree RPC that feeds the desktop sidebar overview, while the drill-in path (hydrate=True) kept the rows and sorted correctly. Any repo with two or more non-trunk lanes showed a different order in the overview than when opened. Move the session-clearing to after _sort_lanes/_disambiguate_labels so the sort reads real recency. Lane counts are still captured before clearing, so sessionCount and the slim overview payload are unchanged — only the order is fixed, and the overview now matches the drill-in.