MCPcopy Create free account
hub / github.com/GCWing/BitFun / create_new_session

Method create_new_session

src/apps/cli/src/modes/chat.rs:2842–2877  ·  view source on GitHub ↗

Create a new session: reset state and start fresh

(
        &mut self,
        session_id: &mut String,
        chat_state: &mut ChatState,
        chat_view: &mut ChatView,
        rt_handle: &tokio::runtime::Handle,
    )

Source from the content-addressed store, hash-verified

2840
2841 /// Create a new session: reset state and start fresh
2842 fn create_new_session(
2843 &mut self,
2844 session_id: &mut String,
2845 chat_state: &mut ChatState,
2846 chat_view: &mut ChatView,
2847 rt_handle: &tokio::runtime::Handle,
2848 ) -> Result<()> {
2849 let agent = self.agent.clone();
2850 let agent_type = self.agent_type.clone();
2851 let workspace = self.workspace.clone();
2852
2853 let new_session_id = tokio::task::block_in_place(|| {
2854 rt_handle.block_on(agent.create_new_session(&agent_type))
2855 })?;
2856
2857 let new_state = ChatState::new(
2858 new_session_id.clone(),
2859 "CLI Session".to_string(),
2860 agent_type,
2861 workspace,
2862 );
2863
2864 *session_id = new_session_id;
2865 *chat_state = new_state;
2866 self.workspace = chat_state.workspace.clone();
2867
2868 // Reload model name
2869 self.load_current_model_name(chat_state, rt_handle);
2870
2871 // Reset view state
2872 chat_view.clear_screen();
2873 chat_view.scroll_to_bottom();
2874 chat_view.set_status(Some("New session created".to_string()));
2875
2876 Ok(())
2877 }
2878
2879 /// Show skill list/configuration menu.
2880 fn show_skill_selector(

Callers 1

apply_exit_reasonMethod · 0.45

Calls 5

clear_screenMethod · 0.80
scroll_to_bottomMethod · 0.80
cloneMethod · 0.45
set_statusMethod · 0.45

Tested by

no test coverage detected