Feature: Checkpoint Service Coverage Boost
  Additional scenarios that exercise previously uncovered code paths
  in checkpoint_service.py, specifically targeting exception handlers
  in _run_git and the defensive plan-not-found guard in _resolve_sandbox_path.

  Background:
    Given the checkpoint service module is imported for coverage boost

  Scenario: Git CalledProcessError is translated to BusinessRuleViolation
    Given a checkpoint service with in-memory storage for coverage boost
    And subprocess.run is mocked to raise CalledProcessError
    When I invoke _run_git with args "status"
    Then a BusinessRuleViolation should be raised mentioning "Git operation failed"
    And the error message should contain the git command "status"
    And the error message should include the stderr output

  Scenario: Git TimeoutExpired is translated to BusinessRuleViolation
    Given a checkpoint service with in-memory storage for coverage boost
    And subprocess.run is mocked to raise TimeoutExpired
    When I invoke _run_git with args "log"
    Then a BusinessRuleViolation should be raised mentioning "Git operation timed out"
    And the timeout error message should contain the git command "log"

  Scenario: CalledProcessError during rollback git-diff propagates as BusinessRuleViolation
    Given a checkpoint service with in-memory storage for coverage boost
    And a sandbox directory exists at a temporary path
    And a checkpoint was created for the rollback test plan
    And subprocess.run is mocked to raise CalledProcessError for git diff
    When I attempt to rollback to the checkpoint
    Then a BusinessRuleViolation should be raised mentioning "Git operation failed"

  Scenario: TimeoutExpired during rollback git-reset propagates as BusinessRuleViolation
    Given a checkpoint service with in-memory storage for coverage boost
    And a sandbox directory exists at a temporary path
    And a checkpoint was created for the rollback test plan
    And subprocess.run is mocked to raise TimeoutExpired for git reset
    When I attempt to rollback to the checkpoint
    Then a BusinessRuleViolation should be raised mentioning "Git operation timed out"

  Scenario: Resolve sandbox path raises ResourceNotFoundError when lifecycle service returns None plan
    Given a checkpoint service with a lifecycle service that returns None for any plan
    When I attempt to resolve the sandbox path for plan "01JTEST0000000000000000001"
    Then a ResourceNotFoundError should be raised for resource type "plan"
    And the ResourceNotFoundError should reference plan id "01JTEST0000000000000000001"
