codewhale-tui 0.8.63

Terminal UI for open-source and open-weight coding models
@long-running
# [LONG RUNNING] Opt-in acceptance workflows. Run with:
# cargo test -p codewhale-tui --bin codewhale-tui --features long-running-tests commands::groups::session::acceptance -- --test-threads=1
Feature: Session command workflows

  Scenario: Save, export, and load preserve the active session
    Given a CodeWhale session workspace with one user message
    When the user saves the active session
    And the user exports the active transcript
    And the user clears the active conversation
    And the user loads the saved session
    Then the saved session file should contain the saved message
    And the active session id should match the saved session file
    And the exported markdown should contain the active transcript
    And the active session should contain the saved message
    And the restored token count should match the saved session
    And CodeWhale should report that the session was loaded

  Scenario: Fork keeps the original session resumable
    Given a CodeWhale persisted session workspace with one user message
    When the user forks the active session
    Then the forked session should reference the original session
    And the original session should still be loadable
    And the active session should be the forked session

  Scenario: New session cannot be forked before messages exist
    Given a CodeWhale session workspace with one user message
    When the user starts a new session
    And the user tries to fork the active session
    Then CodeWhale should reject the fork because there are no messages
    And the active session should be empty

  Scenario: Cleared session cannot be forked before messages exist
    Given a CodeWhale session workspace with one user message
    When the user clears the active conversation
    And the user tries to fork the active session
    Then CodeWhale should reject the fork because there are no messages
    And the active session should be empty

  Scenario: Fork followed by new keeps both saved sessions
    Given a CodeWhale persisted session workspace with one user message
    When the user forks the active session
    And the user starts a new session
    Then the original and forked sessions should remain loadable
    And the active session should be a new empty session

  Scenario: Fork followed by clear keeps both saved sessions
    Given a CodeWhale persisted session workspace with one user message
    When the user forks the active session
    And the user clears the active conversation
    Then the original and forked sessions should remain loadable
    And the active session should be cleared without an active session id

  Scenario: Rename updates the active saved session title
    Given a CodeWhale persisted session workspace with one user message
    When the user renames the active session to "Renamed whale path"
    Then the active saved session title should be "Renamed whale path"
    And the active session should be the original session

  Scenario: Sessions list opens the saved session picker
    Given a CodeWhale persisted session workspace with one user message
    When the user lists saved sessions
    Then the session picker should be open
    And the original session should still be loadable

  Scenario: Sessions prune removes only stale sessions
    Given a CodeWhale session workspace with stale and fresh saved sessions
    When the user prunes sessions older than 7 days
    Then CodeWhale should report that one session was pruned
    And the fresh session should still be loadable
    And the stale session should no longer be loadable

  Scenario: Context management commands emit actions without clearing the active session
    Given a CodeWhale session workspace with one user message
    When the user compacts context
    Then CodeWhale should trigger context compaction
    And the active session should contain the saved message
    When the user purges context
    Then CodeWhale should trigger context purge
    And the active session should contain the saved message
    When the user prepares a session relay focused on "handoff details"
    Then CodeWhale should send a session relay instruction focused on "handoff details"
    And the active session should contain the saved message

  Scenario: Singular session command is not registered
    Given a CodeWhale session workspace with one user message
    When the user runs the singular session command
    Then CodeWhale should reject the unknown session command
    And the active session should contain the saved message