We should tighten up a few things around "pull-only" commit flow, so we don't grant more priveledges than necessary:
Problems:
- The sandbox is given read access to the original host worktree through the
/run/git-origin-ro mount. For fetching committed host changes, it does not need read access to untracked files, ignored files, editor state, local secrets, or other non-Git worktree contents.
- Several host-side commands run Git in sandbox-controlled repositories.
sand git status, sand git log, and sand git diff --include-uncommitted execute host Git against the sandbox worktree, which means sandbox-controlled Git config, attributes, filters, pagers, fsmonitor settings, and related Git behavior may be evaluated by a trusted host process.
- Sand fetches sandbox objects into the original host repository before the user explicitly adopts sandbox work. This does not update the host worktree, but it does import sandbox-controlled objects and refs into the user's trusted original
.git directory.
TODOs:
We should tighten up a few things around "pull-only" commit flow, so we don't grant more priveledges than necessary:
Problems:
/run/git-origin-romount. For fetching committed host changes, it does not need read access to untracked files, ignored files, editor state, local secrets, or other non-Git worktree contents.sand git status,sand git log, andsand git diff --include-uncommittedexecute host Git against the sandbox worktree, which means sandbox-controlled Git config, attributes, filters, pagers, fsmonitor settings, and related Git behavior may be evaluated by a trusted host process..gitdirectory.TODOs:
.git-only snapshot under Sand's app data directory.