Code-review fixes for 036387610 / d02cd38d7:
1. `deriveScopedPnpmTestCommand` now passes each `--filter` argument through
`quoteArg`. Package names come from workspace `package.json` files which
are not strictly trusted input — a metacharacter in a name would have
leaked into the shell command.
2. `getBranchChangedFiles` now quotes both git refs in the `<base>...<head>`
range. Branch names can legally contain `/` and other characters; this
is defense-in-depth consistent with the rest of merger.ts.
3. Out-of-scope detection is now package-aware via a new
`packageNamesForFiles` helper. A failure in `__tests__/foo.test.ts` is
correctly treated as in-scope when the branch touched `src/foo.ts` in
the same package, whereas the previous filename-prefix heuristic missed
that case entirely. The dead `bf.startsWith(ff/)` clause is removed.
Falls back to the directory-prefix heuristic when pnpm-workspace.yaml
is unavailable.
195 tests pass across merger-verification.test.ts and the reused
merge-reuse-task-worktree.test.ts.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>