MCPcopy Index your code
hub / github.com/ChrisFeldmeier/OpenCodeRust / sync_session_from_server

Method sync_session_from_server

crates/opencode-tui/src/app/app.rs:3032–3061  ·  view source on GitHub ↗
(&mut self, session_id: &str)

Source from the content-addressed store, hash-verified

3030 }
3031
3032 fn sync_session_from_server(&mut self, session_id: &str) -> anyhow::Result<()> {
3033 let Some(client) = self.context.get_api_client() else {
3034 return Ok(());
3035 };
3036
3037 let session = client.get_session(session_id)?;
3038 let messages = client.get_messages(session_id)?;
3039 let revert = session.revert.as_ref().map(map_api_revert);
3040
3041 let mut session_ctx = self.context.session.write();
3042 session_ctx.upsert_session(map_api_session(&session));
3043 session_ctx.set_messages(
3044 session_id,
3045 messages
3046 .iter()
3047 .map(map_api_message)
3048 .collect::<Vec<Message>>(),
3049 );
3050 if let Some(revert_info) = revert {
3051 session_ctx
3052 .revert
3053 .insert(session_id.to_string(), revert_info);
3054 } else {
3055 session_ctx.revert.remove(session_id);
3056 }
3057 drop(session_ctx);
3058
3059 self.last_session_sync = Instant::now();
3060 Ok(())
3061 }
3062
3063 fn set_session_status(&mut self, session_id: &str, status: SessionStatus) {
3064 let mut session_ctx = self.context.session.write();

Callers 6

newMethod · 0.80
handle_eventMethod · 0.80
handle_dialog_keyMethod · 0.80
handle_undoMethod · 0.80
submit_shell_commandMethod · 0.80

Calls 7

map_api_sessionFunction · 0.85
get_api_clientMethod · 0.80
get_messagesMethod · 0.80
upsert_sessionMethod · 0.80
set_messagesMethod · 0.80
get_sessionMethod · 0.45
removeMethod · 0.45

Tested by

no test coverage detected