- spawn git/gh via IHostProcessService instead of node:child_process
- probe path existence via IHostFileSystem instead of node:fs/promises
- normalize git porcelain paths without node:path
- resolve IGitService through the container in gitService.test.ts
- Move git status/diff and `gh pr` lookup out of `session/agentFs` into a new
App-scope `IGitService` (`app/git`), which spawns git via `node:child_process`
and owns the pull-request cache.
- `ISessionFsService.gitStatus/diff` now only confine paths and delegate to
`IGitService`; the wire surface and the `FS_GIT_UNAVAILABLE` error code are
unchanged.
- Move pure git-output parsers to `app/git/gitParsers`, add real-git
`GitService` tests, and rewrite the `fsService` git tests as delegation tests.