cloudaxe-opencode/packages/opencode/src/project
Kit Langton 58ad84d53e refactor(snapshot): effectify SnapshotService as scoped service
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
2026-03-16 21:44:17 -04:00
..
bootstrap.ts refactor(format): effectify FormatService as scoped service (#17675) 2026-03-16 15:58:36 -04:00
instance.ts refactor(snapshot): effectify SnapshotService as scoped service 2026-03-16 21:44:17 -04:00
project.sql.ts feat(id): brand ProjectID through Drizzle and Zod schemas (#16948) 2026-03-11 16:44:26 -04:00
project.ts fix(opencode): lost sessions across worktrees and orphan branches (#16389) 2026-03-13 15:51:55 -04:00
schema.ts feat(id): brand PermissionID, PtyID, QuestionID, and ToolID (#17042) 2026-03-12 01:49:57 +00:00
state.ts chore: cleanup 2026-01-28 07:28:03 -06:00
vcs.ts fix+refactor(vcs): fix HEAD filter bug and effectify VcsService (#17829) 2026-03-16 13:59:11 -04:00