Convert Snapshot from a promise-based namespace with Instance ALS reads
to an Effect service on the Instances LayerMap.
- SnapshotService with ChildProcessSpawner for git subprocess execution
and Effect FileSystem for file operations (replaces Process.run and
raw fs calls)
- Nothrow git helper that always returns { code, text, stderr }, with
spawn failure details preserved in stderr
- Hourly cleanup via Effect.forkScoped + Schedule.spaced (replaces
Scheduler.register)
- Promise facade preserved for all existing callers
- Parallelized before/after git show in diffFull
- Add worktree to InstanceContext.Shape (needed for --work-tree flag)
- Add Instance.current getter for single ALS read
- Extract repeated git config flags into GIT_CORE/GIT_CFG/GIT_CFG_QUOTE
constants
- Platform layers (NodeChildProcessSpawner, NodeFileSystem, NodePath)
provided directly on the service layer