The worktree service now records each checkout it creates as a `plugin:worktree/created` record, folds them in its own `worktree` projection with fork-aware ownership, and reclaims a clean, unreferenced checkout when the Session that created it is archived. The Forge panel reads the service's record and forwards its cleanup state; it no longer writes a `created` record, owns a retention projection, or gates every Session's directory access. Admission registers the attempt inside the Workspace write queue and returns; inspection runs afterwards, reading cold Sessions through the projection cache when mounted and from their log otherwise, with subagent children of an archived ancestor counted as archived. Only a path being removed holds `working-directory/access`, whose request now carries the access's `signal`, and listeners withdraw before the drain. Ignored files no longer retain a checkout, matching Git's non-force removal; processes and terminals are not consulted. The Forge bundle mounts one `worktree` service: the `forge-worktree` row and the `optional-forge-panel` group that isolated a second service are gone, and `forge-panel` is a top-level row. `canRemove`, `remove`, the `forgeWorktreeRetention` projection, and `ForgeWorktreeCleanup` are removed; `WorktreeService.cleanupOf`, `WorktreeCleanup`, and the `worktree/cleanup` Host event replace them. The upgrade guide moves to the current version directory and covers the id removals.
14 lines
474 B
YAML
14 lines
474 B
YAML
- insert:
|
|
- id: worktree
|
|
name: '@deepseek-ai/dsh-experimental-worktree'
|
|
- id: tool-worktree
|
|
name: '@deepseek-ai/dsh-experimental-tool-worktree'
|
|
- id: forge
|
|
name: '@deepseek-ai/dsh-experimental-forge'
|
|
- id: forge-github
|
|
name: '@deepseek-ai/dsh-experimental-forge-github'
|
|
- id: forge-session
|
|
name: '@deepseek-ai/dsh-experimental-forge-session'
|
|
- id: forge-panel
|
|
name: '@deepseek-ai/dsh-experimental-client-ui-forge'
|