Pass the GitHub service into pullCurrentBranch, pushCurrentBranch, createPullRequest, branch setup, and worktree archival, and invalidate the cached PR status / repo view whenever a mutation succeeds. Have mergeToBase return the worktree cwd it actually touched so the session can invalidate the base checkout when the merge lands there.