Git operations backed by [git2], with session-scoped write safety.
Every public method returns a typed [output] struct wrapped in
[anyhow::Result]. The lds MCP layer serialises these structs with
serde_json::to_string_pretty so callers receive a stable JSON shape and
can access fields directly instead of parsing free-form text.
Read operations (status, log, diff, worktree_list, remote inspection) are
always available. Write operations (commit, merge, worktree add/remove,
branch delete, reset) require the target path / branch to have been
created — or formally adopted via [GitModule::session_release] — by the
current session.