Skip to content

v0.13.2

@ynishi ynishi tagged this 24 Jul 14:49
Patch release. Two independent bug sources that survived the 0.13.1
`git_cmd` async migration are fixed here.

Fixed

  * `git_cmd` / libgit2 — hang-proof timeout + spawn_blocking migration.
    Two axes:
    - Axis 1: subprocess timeout + process group. `kill_on_drop` alone
      SIGKILLs the direct git child but not its grandchildren (pre-commit
      hooks, gpg, pinentry, husky). A new `spawn_output` helper sets
      `Command::process_group(0)` on Unix, captures the child pid, and on
      timeout calls `libc::killpg(pid, SIGKILL)` so the whole group dies
      together. `TIMEOUT_LOCAL` raised from 10s to 30s as a single-shot
      ceiling. All five shell-out sites routed through the helper. New
      dep: `libc = "0.2"` under `[target.'cfg(unix)'.dependencies]`.
    - Axis 2: libgit2 to `spawn_blocking` (Isle pattern). `Repository::open`
      and everything reachable from `git2::Repository` is synchronous
      blocking C. `GitModule::status` / `log` / `diff` (and inline libgit2
      fragments in `branch_status` / `worktree_state`) now run inside
      `tokio::task::spawn_blocking` so a slow-disk libgit2 sweep never
      occupies a tokio async worker thread and cascade-blocks other MCP
      tool calls.

Changed

  * `.worktrees` default subdir literal — single source of truth via
    `lds_core::DEFAULT_WORKTREES_SUBDIR`. Const promoted to module scope
    in `lds-session`, re-exported from `lds-core`. Duplicate literal sites
    in doc comments / unit test / MCP tool description switched to
    intra-doc links (or reworded, for the proc-macro attribute case).
  * `SessionConfig::worktrees_dir` field doc reworded to drop an
    agent-profiles-internal pipeline gate name from the public docs.rs
    surface.

Verification

  * `cargo test --workspace` — 219 pass, 0 fail.
  * `cargo clippy --workspace --all-targets` — 0 warnings.
  * Integration suite includes all 12 commit-path variants.
  * Timeout literal message contract test exercises the new
    `spawn_output` helper (process_group + killpg on Unix).

See CHANGELOG.md [0.13.2] for the full narrative.
Assets 2
Loading