feat: Implement lesson generation feature and update status display

- Added functionality to generate lessons based on code reviews, including prompts and instructions for the reviewer.
- Updated the `.gitignore` to exclude lesson documentation files.
- Removed the `/lesson` command from the help menu and command parsing.
- Enhanced the status bar to display a message when a lesson is being generated.
- Introduced a new `lesson_running` state to track lesson generation progress.
- Updated various components to handle the new lesson generation workflow, including subagent events and token usage tracking.
This commit is contained in:
asepharyana
2026-07-15 03:11:55 +07:00
parent f87ab133f1
commit 1c08b8e4e9
18 changed files with 468 additions and 256 deletions
+20 -2
View File
@@ -93,12 +93,24 @@ pub fn draw_status_bar(frame: &mut Frame, area: Rect, state: &crate::app::state:
Style::default().fg(Theme::TEXT_MUTED),
));
// Render the bar using two columns
let center_line = if state.misc.lesson_running {
Line::from(vec![
Span::styled(
" 📘 Generating Lesson... ",
Style::default().fg(Theme::MODE_YOLO).add_modifier(Modifier::BOLD),
)
])
} else {
Line::from("")
};
// Render the bar using three columns
let chunks = Layout::default()
.direction(Direction::Horizontal)
.constraints([
Constraint::Length(25),
Constraint::Min(10),
Constraint::Length(60),
])
.split(area);
@@ -113,9 +125,15 @@ pub fn draw_status_bar(frame: &mut Frame, area: Rect, state: &crate::app::state:
let left_para = ratatui::widgets::Paragraph::new(left_line).block(block.clone());
frame.render_widget(left_para, chunks[0]);
// Center part
let center_para = ratatui::widgets::Paragraph::new(center_line)
.block(block.clone())
.alignment(ratatui::layout::Alignment::Center);
frame.render_widget(center_para, chunks[1]);
// Right part
let right_para = ratatui::widgets::Paragraph::new(right_line)
.block(block)
.alignment(ratatui::layout::Alignment::Right);
frame.render_widget(right_para, chunks[1]);
frame.render_widget(right_para, chunks[2]);
}