Step 230: Enhance session recorder

This commit is contained in:
Bill
2026-02-10 08:33:19 -07:00
parent 718c99fef9
commit 835b90bbac
9 changed files with 273 additions and 7 deletions

View File

@@ -359,6 +359,18 @@ static void renderSettingsPanel(EditorState& state) {
state.settings.setBlockVulnerableImports(blockVulnImports);
settingsChanged = true;
}
bool autoRecordSessions = state.settings.getAutoRecordSessions();
if (ImGui::Checkbox("Auto-record Sessions", &autoRecordSessions)) {
state.settings.setAutoRecordSessions(autoRecordSessions);
if (autoRecordSessions && !state.agent.workflowRecorder.isRecording()) {
state.startSessionRecording("auto-session", true);
} else if (!autoRecordSessions &&
state.agent.workflowRecorder.isRecording() &&
state.agent.workflowRecorder.isAutoRecording()) {
state.stopSessionRecording();
}
settingsChanged = true;
}
ImGui::Separator();
ImGui::TextUnformatted("Large File Thresholds (MB)");

View File

@@ -143,6 +143,23 @@ static void renderStatusBar(EditorState& state) {
state.notifications.showHistory = !state.notifications.showHistory;
}
// Recording indicator
ImGui::SameLine(0, 10);
bool recording = state.agent.workflowRecorder.isRecording();
if (recording) {
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(0.75f, 0.15f, 0.15f, 1.0f));
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(0.85f, 0.20f, 0.20f, 1.0f));
}
if (ImGui::Button("REC")) {
state.toggleSessionRecording();
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip(recording ? "Session recording active" : "Start session recording");
}
if (recording) {
ImGui::PopStyleColor(2);
}
// Right cluster: Ln/Col, selection, zoom, git
int selStart = -1;
int selEnd = -1;