Feature: Session CLI Coverage Boost Additional scenarios that exercise previously uncovered code paths in the session.py CLI commands module. Background: Given the session CLI coverage boost module is set up # --------------------------------------------------------------- # create command # --------------------------------------------------------------- Scenario: create command succeeds with rich format Given session coverage boost a mock service that creates a session When session coverage boost I invoke the create command with rich format Then session coverage boost the exit code is 0 And session coverage boost the output contains "Session created" Scenario: create command succeeds with JSON format Given session coverage boost a mock service that creates a session When session coverage boost I invoke the create command with json format Then session coverage boost the exit code is 0 Scenario: create command catches DatabaseError Given session coverage boost a mock service that raises DatabaseError on create When session coverage boost I invoke the create command with rich format Then session coverage boost the exit code is 1 And session coverage boost the output contains "Database unavailable" # --------------------------------------------------------------- # list command # --------------------------------------------------------------- Scenario: list command succeeds with sessions in rich format Given session coverage boost a mock service that lists sessions When session coverage boost I invoke the list command with rich format Then session coverage boost the exit code is 0 And session coverage boost the output contains "Sessions" Scenario: list command succeeds with sessions in JSON format Given session coverage boost a mock service that lists sessions When session coverage boost I invoke the list command with json format Then session coverage boost the exit code is 0 Scenario: list command with no sessions in rich format Given session coverage boost a mock service that lists empty sessions When session coverage boost I invoke the list command with rich format Then session coverage boost the exit code is 0 And session coverage boost the output contains "No sessions found" Scenario: list command with no sessions in JSON format Given session coverage boost a mock service that lists empty sessions When session coverage boost I invoke the list command with json format Then session coverage boost the exit code is 0 Scenario: list command catches DatabaseError Given session coverage boost a mock service that raises DatabaseError on list When session coverage boost I invoke the list command with rich format Then session coverage boost the exit code is 1 And session coverage boost the output contains "Database unavailable" # --------------------------------------------------------------- # show command # --------------------------------------------------------------- Scenario: show command with cost budget having a max cost Given session coverage boost a mock service returning a session with cost budget max 10 When session coverage boost I invoke the show command Then session coverage boost the exit code is 0 And session coverage boost the output contains "Cost Budget" Scenario: show command with cost budget unlimited Given session coverage boost a mock service returning a session with unlimited cost budget When session coverage boost I invoke the show command Then session coverage boost the exit code is 0 And session coverage boost the output contains "unlimited" Scenario: show command with messages and linked plans in rich format Given session coverage boost a mock service returning a session with messages and plans When session coverage boost I invoke the show command Then session coverage boost the exit code is 0 And session coverage boost the output contains "Recent Messages" And session coverage boost the output contains "Linked Plans" Scenario: show command with JSON format Given session coverage boost a mock service returning a session with messages and plans When session coverage boost I invoke the show command with json format Then session coverage boost the exit code is 0 Scenario: show command catches SessionNotFoundError Given session coverage boost a mock service that raises SessionNotFoundError on get When session coverage boost I invoke the show command Then session coverage boost the exit code is 1 And session coverage boost the output contains "Session not found" Scenario: show command catches DatabaseError Given session coverage boost a mock service that raises DatabaseError on get When session coverage boost I invoke the show command Then session coverage boost the exit code is 1 And session coverage boost the output contains "Database unavailable" # --------------------------------------------------------------- # delete command # --------------------------------------------------------------- Scenario: delete command succeeds with --yes flag Given session coverage boost a mock service for delete When session coverage boost I invoke the delete command with yes Then session coverage boost the exit code is 0 And session coverage boost the output contains "deleted" Scenario: delete command aborted by user Given session coverage boost a mock service for delete When session coverage boost I invoke the delete command without yes answering no Then session coverage boost the output contains "Aborted" Scenario: delete command catches SessionNotFoundError Given session coverage boost a mock service that raises SessionNotFoundError on get When session coverage boost I invoke the delete command with yes Then session coverage boost the exit code is 1 And session coverage boost the output contains "Session not found" Scenario: delete command catches DatabaseError Given session coverage boost a mock service that raises DatabaseError on delete When session coverage boost I invoke the delete command with yes Then session coverage boost the exit code is 1 And session coverage boost the output contains "Database unavailable" # --------------------------------------------------------------- # export command # --------------------------------------------------------------- Scenario: export command to stdout Given session coverage boost a mock service for export When session coverage boost I invoke the export command to stdout Then session coverage boost the exit code is 0 # @tdd_issue @tdd_issue_4268 @tdd_expected_fail @skip @skip Scenario: export command to file Given session coverage boost a mock service for export And session coverage boost a temporary directory for export When session coverage boost I invoke the export command to a file Then session coverage boost the exit code is 0 And session coverage boost the output contains "exported" Scenario: export command to existing file without force Given session coverage boost a mock service for export And session coverage boost a temporary directory with existing file When session coverage boost I invoke the export command to existing file without force Then session coverage boost the exit code is 1 And session coverage boost the output contains "File already exists" Scenario: export command catches SessionNotFoundError Given session coverage boost a mock service that raises SessionNotFoundError on export When session coverage boost I invoke the export command to stdout Then session coverage boost the exit code is 1 And session coverage boost the output contains "Session not found" Scenario: export command catches SessionExportError Given session coverage boost a mock service that raises SessionExportError on export When session coverage boost I invoke the export command to stdout Then session coverage boost the exit code is 1 And session coverage boost the output contains "Export error" Scenario: export command catches DatabaseError Given session coverage boost a mock service that raises DatabaseError on export When session coverage boost I invoke the export command to stdout Then session coverage boost the exit code is 1 And session coverage boost the output contains "Database unavailable" Scenario: export command DatabaseError handler emits debug log Given session coverage boost a mock service that raises DatabaseError on export When session coverage boost I invoke the export command to stdout with log capture Then session coverage boost the debug log "session export failed" was emitted # --------------------------------------------------------------- # import command # --------------------------------------------------------------- Scenario: import command succeeds Given session coverage boost a mock service for import And session coverage boost a temporary import file with valid JSON When session coverage boost I invoke the import command Then session coverage boost the exit code is 0 And session coverage boost the output contains "Session Import" And session coverage boost the output contains "Import completed" Scenario: import command with missing file When session coverage boost I invoke the import command with missing file Then session coverage boost the exit code is 1 And session coverage boost the output contains "File not found" Scenario: import command with invalid JSON file Given session coverage boost a temporary import file with invalid JSON When session coverage boost I invoke the import command with invalid json Then session coverage boost the exit code is 1 And session coverage boost the output contains "Invalid JSON" Scenario: import command catches SessionImportError Given session coverage boost a mock service that raises SessionImportError on import And session coverage boost a temporary import file with valid JSON When session coverage boost I invoke the import command expecting import error Then session coverage boost the exit code is 1 And session coverage boost the output contains "Import error" Scenario: import command catches DatabaseError Given session coverage boost a mock service that raises DatabaseError on import And session coverage boost a temporary import file with valid JSON When session coverage boost I invoke the import command expecting database error Then session coverage boost the exit code is 1 And session coverage boost the output contains "Database unavailable" Scenario: import command DatabaseError handler emits debug log Given session coverage boost a mock service that raises DatabaseError on import And session coverage boost a temporary import file with valid JSON When session coverage boost I invoke the import command expecting database error with log capture Then session coverage boost the debug log "session import failed" was emitted # --------------------------------------------------------------- # tell command # --------------------------------------------------------------- Scenario: tell command succeeds without streaming Given session coverage boost a mock service for tell When session coverage boost I invoke the tell command without stream Then session coverage boost the exit code is 0 And session coverage boost the output contains "Acknowledged" Scenario: tell command succeeds with streaming Given session coverage boost a mock service for tell When session coverage boost I invoke the tell command with stream Then session coverage boost the exit code is 0 And session coverage boost the output contains "Acknowledged" Scenario: tell command with actor override Given session coverage boost a mock service for tell When session coverage boost I invoke the tell command with actor override Then session coverage boost the exit code is 0 And session coverage boost the output contains "openai/gpt-4" Scenario: tell command catches SessionNotFoundError Given session coverage boost a mock service that raises SessionNotFoundError on append When session coverage boost I invoke the tell command without stream Then session coverage boost the exit code is 1 And session coverage boost the output contains "Session not found" Scenario: tell command catches DatabaseError Given session coverage boost a mock service that raises DatabaseError on append When session coverage boost I invoke the tell command without stream Then session coverage boost the exit code is 1 And session coverage boost the output contains "Database unavailable" Scenario: tell command DatabaseError handler emits debug log Given session coverage boost a mock service that raises DatabaseError on append When session coverage boost I invoke the tell command without stream with log capture Then session coverage boost the debug log "session tell failed" was emitted # --------------------------------------------------------------- # show command with long message content truncation # --------------------------------------------------------------- Scenario: show command truncates long message content Given session coverage boost a mock service returning a session with a long message When session coverage boost I invoke the show command Then session coverage boost the exit code is 0 And session coverage boost the output contains truncated message indicator