Make /resume session prompt more compact

Output is now a single line:
  Session number to resume (Enter to cancel): 1 ... resuming scout_88871653e8e5f4f7 [done]

- Session ID displayed in cyan
- [done] displayed in bold green
- [error: ...] displayed in bold red on failure
- Added print_inline() to SimpleOutput for inline prompts
This commit is contained in:
Dhanji R. Prasanna
2026-01-18 18:09:51 +05:30
parent 02655110d6
commit 07bff7691a
2 changed files with 21 additions and 11 deletions

View File

@@ -554,30 +554,34 @@ async fn handle_command<W: UiWriter>(
current_marker current_marker
)); ));
} }
output.print("");
output.print("Enter session number to resume (or press Enter to cancel):");
output.print_inline("\nSession number to resume (Enter to cancel): ");
// Read user selection // Read user selection
if let Ok(selection) = rl.readline("> ") { if let Ok(selection) = rl.readline("") {
let selection = selection.trim(); let selection = selection.trim();
if selection.is_empty() { if selection.is_empty() {
output.print("Resume cancelled."); output.print("Cancelled.");
} else if let Ok(num) = selection.parse::<usize>() { } else if let Ok(num) = selection.parse::<usize>() {
if num >= 1 && num <= sessions.len() { if num >= 1 && num <= sessions.len() {
let selected = &sessions[num - 1]; let selected = &sessions[num - 1];
output.print(&format!(
"🔄 Switching to session: {}",
selected.session_id
));
match agent.switch_to_session(selected) { match agent.switch_to_session(selected) {
Ok(true) => { Ok(true) => {
output.print("✅ Full context restored from session.") output.print_inline(&format!(
"... resuming \x1b[36m{}\x1b[0m \x1b[1;32m[done]\x1b[0m\n",
selected.session_id
));
} }
Ok(false) => { Ok(false) => {
output.print("✅ Session restored from summary.") output.print_inline(&format!(
"... resuming \x1b[36m{}\x1b[0m (summary) \x1b[1;32m[done]\x1b[0m\n",
selected.session_id
));
} }
Err(e) => { Err(e) => {
output.print(&format!("❌ Error restoring session: {}", e)) output.print_inline(&format!(
"... resuming \x1b[36m{}\x1b[0m \x1b[1;31m[error: {}]\x1b[0m\n",
selected.session_id, e
));
} }
} }
} else { } else {

View File

@@ -13,6 +13,12 @@ impl SimpleOutput {
println!("{}", message); println!("{}", message);
} }
pub fn print_inline(&self, message: &str) {
use std::io::{Write, stdout};
print!("{}", message);
let _ = stdout().flush();
}
pub fn print_smart(&self, message: &str) { pub fn print_smart(&self, message: &str) {
println!("{}", message); println!("{}", message);
} }