Session lifecycle primitives shared across all lds modules.
Every module (git, recipe, sandbox) receives an Arc<Session> that
anchors operations to a single project root. Shared concerns — timeout,
output truncation, global recipe dirs — live here so modules don't
duplicate configuration.
This crate was split out of lds-core to give downstream consumers
(current: lds workspace modules; future: session-mcp / KV primitives)
a self-contained session contract independent of the broader core
utilities (binary probing, output truncation, config files).