| 874 | } |
| 875 | |
| 876 | async fn resolve_requested_session( |
| 877 | continue_last: bool, |
| 878 | session: Option<String>, |
| 879 | fork: bool, |
| 880 | ) -> anyhow::Result<Option<String>> { |
| 881 | let selected = if let Some(session_id) = session { |
| 882 | Some(session_id) |
| 883 | } else if continue_last { |
| 884 | let db = Database::new().await?; |
| 885 | let session_repo = SessionRepository::new(db.pool().clone()); |
| 886 | session_repo |
| 887 | .list(None, 100) |
| 888 | .await? |
| 889 | .into_iter() |
| 890 | .find(|s| s.parent_id.is_none()) |
| 891 | .map(|s| s.id) |
| 892 | } else { |
| 893 | None |
| 894 | }; |
| 895 | |
| 896 | if fork && selected.is_some() { |
| 897 | eprintln!( |
| 898 | "Note: --fork for TUI session attach is not fully wired yet; using base session." |
| 899 | ); |
| 900 | } |
| 901 | |
| 902 | Ok(selected) |
| 903 | } |
| 904 | |
| 905 | async fn wait_for_server_ready( |
| 906 | base_url: &str, |