Resolve selective restores against a disposable index before any checkpoint mutation, preserving unrelated-file recovery and refusing uncaptured gitlinks. Keep NUL-delimited filenames lossless, including surrogateescaped POSIX bytes. Add real-Git regression coverage and document the capture limitation. Fixes #127073 Salvages #127077 Co-authored-by: Yuan Li <dskwelmcy@163.com>