(&self, session_id: &str, status: &SessionStatus)
| 3105 | } |
| 3106 | |
| 3107 | fn infer_spinner_task_kind(&self, session_id: &str, status: &SessionStatus) -> TaskKind { |
| 3108 | if matches!(status, SessionStatus::Retrying { .. }) { |
| 3109 | return TaskKind::LlmResponse; |
| 3110 | } |
| 3111 | |
| 3112 | let session_ctx = self.context.session.read(); |
| 3113 | let Some(messages) = session_ctx.messages.get(session_id) else { |
| 3114 | return TaskKind::LlmRequest; |
| 3115 | }; |
| 3116 | let Some(last_message) = messages.last() else { |
| 3117 | return TaskKind::LlmRequest; |
| 3118 | }; |
| 3119 | |
| 3120 | match last_message.role { |
| 3121 | MessageRole::User => TaskKind::LlmRequest, |
| 3122 | MessageRole::Assistant => infer_task_kind_from_message(last_message), |
| 3123 | MessageRole::System => TaskKind::LlmResponse, |
| 3124 | } |
| 3125 | } |
| 3126 | |
| 3127 | fn matches_keybind(&self, keybind_name: &str, key: KeyEvent) -> bool { |
| 3128 | self.context |
no test coverage detected