Context
Issue #76 (Phase 6.3 Sandbox File Synchronization) implemented snapshot-sync filtering for the E2B provider: .ralphignore support, --sync-include/--sync-exclude, large-file policy, progress summaries, selective artifact retrieval, and deletion-sync safety (see docs/SANDBOX_SYNC.md). Two of its original acceptance criteria were deliberately descoped (owner-approved during implementation):
Descoped items
1. Git-based sync strategy
Use git push/pull as the sync mechanism between host and sandbox.
Why deferred: it directly conflicts with the reviewed #75 safety model — .git is excluded from sync in both directions so sandbox-side git state can never clobber the host repository — and requires git credentials inside the sandbox (a new secret-handling surface). Adopting it means revisiting that design first.
2. Real-time sync for E2B
Continuous bidirectional file watching (inotify/fswatch + sandbox daemon).
Why deferred: the per-iteration download already lands changes at every loop boundary, which is the natural sync point for an autonomous loop; a watcher adds conflict-resolution complexity for little gain. Docker already has real-time sync by architecture (rw bind mount).
References
Context
Issue #76 (Phase 6.3 Sandbox File Synchronization) implemented snapshot-sync filtering for the E2B provider:
.ralphignoresupport,--sync-include/--sync-exclude, large-file policy, progress summaries, selective artifact retrieval, and deletion-sync safety (see docs/SANDBOX_SYNC.md). Two of its original acceptance criteria were deliberately descoped (owner-approved during implementation):Descoped items
1. Git-based sync strategy
Use git push/pull as the sync mechanism between host and sandbox.
Why deferred: it directly conflicts with the reviewed #75 safety model —
.gitis excluded from sync in both directions so sandbox-side git state can never clobber the host repository — and requires git credentials inside the sandbox (a new secret-handling surface). Adopting it means revisiting that design first.2. Real-time sync for E2B
Continuous bidirectional file watching (inotify/fswatch + sandbox daemon).
Why deferred: the per-iteration download already lands changes at every loop boundary, which is the natural sync point for an autonomous loop; a watcher adds conflict-resolution complexity for little gain. Docker already has real-time sync by architecture (rw bind mount).
References