Feature: Error Handling and Edge Cases As a developer I want robust error handling So that the tracker works reliably Scenario: Mark dataset with error status Given an authenticated sheets tracker And a sheet with the following datasets | Dataset Name | Status | Error | | wordnet | NOT STARTED | | When I mark "wordnet" with error "Download failed" Then the update should succeed And the status of "wordnet" should be "NOT STARTED" And the error for "wordnet" should contain "Download failed" Scenario: Get status with empty sheet Given an authenticated sheets tracker And a sheet with only headers When I get the status of "wordnet" Then the status should be None And the row should be None Scenario: Get status with case insensitive matching Given an authenticated sheets tracker And a sheet with the following datasets | Dataset Name | Status | Error | | WordNet | NOT STARTED | | When I get the status of "wordnet" Then the status should be "NOT STARTED" Scenario: Update status with case insensitive matching Given an authenticated sheets tracker And a sheet with the following datasets | Dataset Name | Status | Error | | WordNet | NOT STARTED | | When I mark "wordnet" as completed Then the update should succeed And the status of "WordNet" should be "DONE" Scenario: Handle row with missing columns Given an authenticated sheets tracker And a sheet with incomplete rows When I get the status of "wordnet" Then the operation should handle missing columns gracefully Scenario: Get status when dataset_name_col is None Given an authenticated sheets tracker with no dataset name column When I get the status of "wordnet" Then the status should be None And the row should be None