codetether-agent 4.5.7

A2A-native AI coding agent for the CodeTether ecosystem
Documentation
use crate::session::list_all_sessions_for_directory;
use crate::tui::app::state::App;
use crate::tui::models::ViewMode;

pub async fn refresh_sessions(app: &mut App, cwd: &std::path::Path) {
    tracing::info!(cwd = %cwd.display(), "refresh_sessions: starting");
    match list_all_sessions_for_directory(cwd).await {
        Ok(sessions) => {
            tracing::info!(count = sessions.len(), "refresh_sessions: loaded sessions");
            app.state.sessions = sessions;
            if app.state.selected_session >= app.state.filtered_sessions().len() {
                app.state.selected_session = app.state.filtered_sessions().len().saturating_sub(1);
            }
            if app.state.sessions.is_empty() {
                app.state.status = "No sessions found for this workspace".to_string();
            }
        }
        Err(err) => {
            tracing::error!(error = %err, "refresh_sessions: failed");
            app.state.status = format!("Failed to list sessions: {err}");
            app.state.sessions.clear();
            app.state.selected_session = 0;
        }
    }
}

pub fn return_to_chat(app: &mut App) {
    app.state.set_view_mode(ViewMode::Chat);
    app.state.status = "Back to chat".to_string();
}