MCPcopy Create free account
hub / github.com/ChrisFeldmeier/OpenCodeRust / handle_open_timeline

Method handle_open_timeline

crates/opencode-tui/src/app/app.rs:2072–2109  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

2070 }
2071
2072 fn handle_open_timeline(&mut self) {
2073 let Some(session_id) = self.current_session_id() else {
2074 self.alert_dialog
2075 .set_message("No active session for timeline.");
2076 self.alert_dialog.open();
2077 return;
2078 };
2079 let session_ctx = self.context.session.read();
2080 let entries = session_ctx
2081 .messages
2082 .get(&session_id)
2083 .map(|msgs| {
2084 msgs.iter()
2085 .map(|m| {
2086 let role = match m.role {
2087 MessageRole::User => "user",
2088 MessageRole::Assistant => "assistant",
2089 MessageRole::System => "system",
2090 };
2091 let preview = m
2092 .content
2093 .chars()
2094 .take(60)
2095 .collect::<String>()
2096 .replace('\n', " ");
2097 TimelineEntry {
2098 message_id: m.id.clone(),
2099 role: role.to_string(),
2100 preview,
2101 timestamp: m.created_at.format("%H:%M:%S").to_string(),
2102 }
2103 })
2104 .collect::<Vec<_>>()
2105 })
2106 .unwrap_or_default();
2107 drop(session_ctx);
2108 self.timeline_dialog.open(entries);
2109 }
2110
2111 fn handle_fork_session(&mut self) {
2112 let Some(session_id) = self.current_session_id() else {

Callers 1

Calls 7

current_session_idMethod · 0.80
set_messageMethod · 0.80
readMethod · 0.80
replaceMethod · 0.80
openMethod · 0.45
getMethod · 0.45
cloneMethod · 0.45

Tested by

no test coverage detected