93d5398311
The Changes panel now renders a sticky "frontend / N files" header above the diffs from each repository so the user can visually distinguish where each change lives. Single-repo tasks render unchanged (no header shown when there's only one unnamed group). - ReviewDiffList groups its file list by repository_name (preserving the caller's order within each group), then renders one RepoGroupHeader per group followed by the existing FileDiffSection list. Header gating rule: show when len(groups) > 1 OR the single group has a non-empty repository name. - Group key uses "repo:path" so a file with the same path in two repos no longer collides on React's reconciliation. - groupFilesByRepository + RepoGroupHeader live in a sibling review-diff-list-groups.tsx file to keep review-diff-list.tsx under the 600-line lint cap. - Tests cover: no header for plain (no repo_name) files, one header per repo for 2+ groups, header shown even for a single named repo, file paths land under the right group's section. Verified: vitest 627/627, eslint clean, tsc clean. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>