Feature: ResourceHandler protocol coverage (resource/handlers/protocol.py)
  Exercise uncovered lines in src/cleveragents/resource/handlers/protocol.py:
    - Line 76:  Content.text raises ValueError for binary (encoding=None)
    - Line 236: ResourceHandler.resolve default stub
    - Line 254: ResourceHandler.read default stub
    - Line 271: ResourceHandler.write default stub
    - Line 288: ResourceHandler.delete default stub
    - Line 299: ResourceHandler.list_children default stub
    - Line 311: ResourceHandler.diff default stub
    - Line 315: ResourceHandler.discover_children default stub
    - Line 327: ResourceHandler.create_sandbox default stub
    - Line 338: ResourceHandler.create_checkpoint default stub
    - Line 349: ResourceHandler.rollback_to default stub
    - Line 360: ResourceHandler.project_access default stub

  # -----------------------------------------------------------------
  # Content.text property – binary content raises ValueError (line 76)
  # -----------------------------------------------------------------

  Scenario: Content.text raises ValueError when encoding is None
    Given phcov a Content instance with binary data and encoding None
    When phcov the text property is accessed
    Then phcov a ValueError should be stored with message "Cannot decode binary content as text"

  # -----------------------------------------------------------------
  # ResourceHandler Protocol default method stubs (lines 236–360)
  # -----------------------------------------------------------------

  Scenario: ResourceHandler.resolve default stub returns None
    Given phcov a bare ResourceHandler protocol subclass instance
    And phcov a dummy Resource and SandboxManager
    When phcov the resolve method is called
    Then phcov the result should be None

  Scenario: ResourceHandler.read default stub returns None
    Given phcov a bare ResourceHandler protocol subclass instance
    And phcov a dummy Resource and SandboxManager
    When phcov the read method is called
    Then phcov the result should be None

  Scenario: ResourceHandler.write default stub returns None
    Given phcov a bare ResourceHandler protocol subclass instance
    And phcov a dummy Resource and SandboxManager
    When phcov the write method is called
    Then phcov the result should be None

  Scenario: ResourceHandler.delete default stub returns None
    Given phcov a bare ResourceHandler protocol subclass instance
    And phcov a dummy Resource and SandboxManager
    When phcov the delete method is called
    Then phcov the result should be None

  Scenario: ResourceHandler.list_children default stub returns None
    Given phcov a bare ResourceHandler protocol subclass instance
    And phcov a dummy Resource and SandboxManager
    When phcov the list_children method is called
    Then phcov the result should be None

  Scenario: ResourceHandler.diff default stub returns None
    Given phcov a bare ResourceHandler protocol subclass instance
    And phcov a dummy Resource and SandboxManager
    When phcov the diff method is called
    Then phcov the result should be None

  Scenario: ResourceHandler.discover_children default stub returns None
    Given phcov a bare ResourceHandler protocol subclass instance
    And phcov a dummy Resource and SandboxManager
    When phcov the discover_children method is called
    Then phcov the result should be None

  Scenario: ResourceHandler.create_sandbox default stub returns None
    Given phcov a bare ResourceHandler protocol subclass instance
    And phcov a dummy Resource and SandboxManager
    When phcov the create_sandbox method is called
    Then phcov the result should be None

  Scenario: ResourceHandler.create_checkpoint default stub returns None
    Given phcov a bare ResourceHandler protocol subclass instance
    And phcov a dummy Resource and SandboxManager
    When phcov the create_checkpoint method is called
    Then phcov the result should be None

  Scenario: ResourceHandler.rollback_to default stub returns None
    Given phcov a bare ResourceHandler protocol subclass instance
    And phcov a dummy Resource and SandboxManager
    When phcov the rollback_to method is called
    Then phcov the result should be None

  Scenario: ResourceHandler.project_access default stub returns None
    Given phcov a bare ResourceHandler protocol subclass instance
    And phcov a dummy Resource and SandboxManager
    When phcov the project_access method is called
    Then phcov the result should be None
