ryu-workspace 0.1.12

Git-native workspace primitive for Ryu: the git/worktree engine that shells `git`/`gh` for a caller-supplied cwd. Owns per-run worktrees (create → isolated `ryu/run-<id>` branch → `Drop`-on-completion cleanup), the aggregate run diff (committed + staged/untracked, numstat + name-status), whole-tree apply (commit → merge-into-base OR commit → push → `gh pr create`), and the read-only git status/branches/checkout/create-branch/commit-push helpers. An extracted Core capability crate; in-process by default and consumed as a NON-optional path dependency (the ACP chat loop opens a worktree per isolated run). ZERO dependency on apps/core: the only kernel coupling is the Windows console-suppression `NoWindow` util, vendored verbatim (a `Command`-builder extension trait with no shared crate home — the same UTIL-duplication call `ryu-webhook-ingress` made). The chat-cwd threading (ChatStreamRequest → conversations.rs) stays kernel; only the git engine moves here.
Documentation

ryu-workspace

Git-native workspace primitive for Ryu: the git / worktree engine that shells git / gh for a caller-supplied cwd.

Role in the decomposition

An extracted Core capability crate — in-process by default and consumed as a non-optional path dependency: the ACP chat loop opens a worktree per isolated run. It carries zero dependency on apps/core. The only kernel coupling is the Windows console-suppression NoWindow util, vendored verbatim (win_process.rs — a Command-builder extension trait with no shared crate home). The chat-cwd threading (ChatStreamRequest → conversations.rs) stays kernel; only the git engine moves here.

Key API

worktree.rs:

  • create_worktree / create_worktree_inWorktreeGuard — per-run worktree on an isolated ryu/run-<id> branch, cleaned up on Drop.
  • worktree_diff(path, base_ref) -> WorktreeDiff — aggregate run diff (committed + staged/untracked, numstat + name-status); FileSummary / FileChangeKind.
  • apply_worktree(..., ApplyMode) — whole-tree apply: commit → merge-into-base, or commit → push → gh pr create; ApplySuccess / ConflictError.
  • is_git_repo / find_git_root.

git.rs (read-only + simple mutations):

  • query_git_state(cwd) -> GitState, list_branches -> GitBranches, checkout_branch, create_branch, run_git_action -> CommitPushOutcome.

Swap seam

None — this is the git engine itself (shells git/gh); it is a swappable default only at the Core layer that chooses to open a per-run worktree.

Consumed as

Compiled-into-Core crate (default path dependency); no optional features.