From 9a928d41e155c4b6a50ed39079c73355997a7334 Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Sun, 18 Aug 2024 21:40:43 +0200 Subject: [PATCH] Added a reset button to all assistants to clear the current context --- .../Components/AssistantBase.razor | 17 ++-- .../Components/AssistantBase.razor.cs | 22 +++++ .../Pages/Agenda/AssistantAgenda.razor.cs | 83 ++++++++++++++----- .../Pages/Coding/AssistantCoding.razor.cs | 30 +++++-- .../AssistantGrammarSpelling.razor.cs | 24 +++++- .../IconFinder/AssistantIconFinder.razor.cs | 20 ++++- .../AssistantRewriteImprove.razor.cs | 25 +++++- .../AssistantTextSummarizer.razor.cs | 37 +++++++-- .../Translation/AssistantTranslation.razor.cs | 35 ++++++-- .../Tools/JsRuntimeExtensions.cs | 5 ++ app/MindWork AI Studio/wwwroot/app.js | 5 ++ .../wwwroot/changelog/v0.8.10.md | 1 + 12 files changed, 243 insertions(+), 61 deletions(-) diff --git a/app/MindWork AI Studio/Components/AssistantBase.razor b/app/MindWork AI Studio/Components/AssistantBase.razor index f598cc79..a0a5b26a 100644 --- a/app/MindWork AI Studio/Components/AssistantBase.razor +++ b/app/MindWork AI Studio/Components/AssistantBase.razor @@ -2,22 +2,22 @@ @using AIStudio.Components.Pages @using AIStudio.Tools - @this.Title + @(this.Title) - + - @this.Description + @(this.Description) @if (this.Body is not null) { - @this.Body + @(this.Body) } - + @if (this.ShowDedicatedProgress && this.isProcessing) { @@ -26,7 +26,7 @@
@if (this.ShowResult && this.resultingContentBlock is not null) { - + }
@@ -58,7 +58,7 @@ @foreach (var assistant in Enum.GetValues().OrderBy(n => n.Name().Length)) { - if(assistant is Pages.SendTo.NONE || sendToButton.Self == assistant) + if(assistant is SendTo.NONE || sendToButton.Self == assistant) continue; @@ -69,6 +69,9 @@ break; } } + + Reset + }
diff --git a/app/MindWork AI Studio/Components/AssistantBase.razor.cs b/app/MindWork AI Studio/Components/AssistantBase.razor.cs index fd0dc013..a4441f99 100644 --- a/app/MindWork AI Studio/Components/AssistantBase.razor.cs +++ b/app/MindWork AI Studio/Components/AssistantBase.razor.cs @@ -38,6 +38,10 @@ public abstract partial class AssistantBase : ComponentBase protected abstract string Description { get; } protected abstract string SystemPrompt { get; } + + protected abstract void ResetFrom(); + + protected abstract bool MightPreselectValues(); private protected virtual RenderFragment? Body => null; @@ -207,4 +211,22 @@ public abstract partial class AssistantBase : ComponentBase this.NavigationManager.NavigateTo(path); return Task.CompletedTask; } + + private async Task InnerResetForm() + { + this.resultingContentBlock = null; + this.providerSettings = default; + + await this.JsRuntime.ClearDiv(ASSISTANT_RESULT_DIV_ID); + await this.JsRuntime.ClearDiv(AFTER_RESULT_DIV_ID); + + this.ResetFrom(); + + this.inputIsValid = false; + this.inputIssues = []; + + this.form?.ResetValidation(); + this.StateHasChanged(); + this.form?.ResetValidation(); + } } \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Pages/Agenda/AssistantAgenda.razor.cs b/app/MindWork AI Studio/Components/Pages/Agenda/AssistantAgenda.razor.cs index 0300b2a5..8fc405a3 100644 --- a/app/MindWork AI Studio/Components/Pages/Agenda/AssistantAgenda.razor.cs +++ b/app/MindWork AI Studio/Components/Pages/Agenda/AssistantAgenda.razor.cs @@ -106,7 +106,66 @@ public partial class AssistantAgenda : AssistantBaseCore { SystemPrompt = SystemPrompts.DEFAULT, }; + + protected override void ResetFrom() + { + this.inputContent = string.Empty; + this.contentLines.Clear(); + this.selectedFoci = []; + this.justBriefly = []; + this.inputWhoIsPresenting = string.Empty; + if (!this.MightPreselectValues()) + { + this.inputTopic = string.Empty; + this.inputName = string.Empty; + this.inputDuration = string.Empty; + this.inputStartTime = string.Empty; + this.inputObjective = string.Empty; + this.inputModerator = string.Empty; + this.selectedTargetLanguage = CommonLanguages.AS_IS; + this.customTargetLanguage = string.Empty; + this.introduceParticipants = false; + this.isMeetingVirtual = true; + this.inputLocation = string.Empty; + this.goingToDinner = false; + this.doingSocialActivity = false; + this.needToArriveAndDepart = false; + this.durationLunchBreak = 0; + this.durationBreaks = 0; + this.activeParticipation = false; + this.numberParticipants = NumberParticipants.NOT_SPECIFIED; + } + } + protected override bool MightPreselectValues() + { + if (this.SettingsManager.ConfigurationData.Agenda.PreselectOptions) + { + this.inputTopic = this.SettingsManager.ConfigurationData.Agenda.PreselectTopic; + this.inputName = this.SettingsManager.ConfigurationData.Agenda.PreselectName; + this.inputDuration = this.SettingsManager.ConfigurationData.Agenda.PreselectDuration; + this.inputStartTime = this.SettingsManager.ConfigurationData.Agenda.PreselectStartTime; + this.inputObjective = this.SettingsManager.ConfigurationData.Agenda.PreselectObjective; + this.inputModerator = this.SettingsManager.ConfigurationData.Agenda.PreselectModerator; + this.selectedTargetLanguage = this.SettingsManager.ConfigurationData.Agenda.PreselectedTargetLanguage; + this.customTargetLanguage = this.SettingsManager.ConfigurationData.Agenda.PreselectedOtherLanguage; + this.introduceParticipants = this.SettingsManager.ConfigurationData.Agenda.PreselectIntroduceParticipants; + this.isMeetingVirtual = this.SettingsManager.ConfigurationData.Agenda.PreselectIsMeetingVirtual; + this.inputLocation = this.SettingsManager.ConfigurationData.Agenda.PreselectLocation; + this.goingToDinner = this.SettingsManager.ConfigurationData.Agenda.PreselectJointDinner; + this.doingSocialActivity = this.SettingsManager.ConfigurationData.Agenda.PreselectSocialActivity; + this.needToArriveAndDepart = this.SettingsManager.ConfigurationData.Agenda.PreselectArriveAndDepart; + this.durationLunchBreak = this.SettingsManager.ConfigurationData.Agenda.PreselectLunchTime; + this.durationBreaks = this.SettingsManager.ConfigurationData.Agenda.PreselectBreakTime; + this.activeParticipation = this.SettingsManager.ConfigurationData.Agenda.PreselectActiveParticipation; + this.numberParticipants = this.SettingsManager.ConfigurationData.Agenda.PreselectNumberParticipants; + this.providerSettings = this.SettingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == this.SettingsManager.ConfigurationData.Agenda.PreselectedProvider); + return true; + } + + return false; + } + private string inputTopic = string.Empty; private string inputName = string.Empty; private string inputContent = string.Empty; @@ -136,29 +195,7 @@ public partial class AssistantAgenda : AssistantBaseCore protected override async Task OnInitializedAsync() { - if (this.SettingsManager.ConfigurationData.Agenda.PreselectOptions) - { - this.inputTopic = this.SettingsManager.ConfigurationData.Agenda.PreselectTopic; - this.inputName = this.SettingsManager.ConfigurationData.Agenda.PreselectName; - this.inputDuration = this.SettingsManager.ConfigurationData.Agenda.PreselectDuration; - this.inputStartTime = this.SettingsManager.ConfigurationData.Agenda.PreselectStartTime; - this.inputObjective = this.SettingsManager.ConfigurationData.Agenda.PreselectObjective; - this.inputModerator = this.SettingsManager.ConfigurationData.Agenda.PreselectModerator; - this.selectedTargetLanguage = this.SettingsManager.ConfigurationData.Agenda.PreselectedTargetLanguage; - this.customTargetLanguage = this.SettingsManager.ConfigurationData.Agenda.PreselectedOtherLanguage; - this.introduceParticipants = this.SettingsManager.ConfigurationData.Agenda.PreselectIntroduceParticipants; - this.isMeetingVirtual = this.SettingsManager.ConfigurationData.Agenda.PreselectIsMeetingVirtual; - this.inputLocation = this.SettingsManager.ConfigurationData.Agenda.PreselectLocation; - this.goingToDinner = this.SettingsManager.ConfigurationData.Agenda.PreselectJointDinner; - this.doingSocialActivity = this.SettingsManager.ConfigurationData.Agenda.PreselectSocialActivity; - this.needToArriveAndDepart = this.SettingsManager.ConfigurationData.Agenda.PreselectArriveAndDepart; - this.durationLunchBreak = this.SettingsManager.ConfigurationData.Agenda.PreselectLunchTime; - this.durationBreaks = this.SettingsManager.ConfigurationData.Agenda.PreselectBreakTime; - this.activeParticipation = this.SettingsManager.ConfigurationData.Agenda.PreselectActiveParticipation; - this.numberParticipants = this.SettingsManager.ConfigurationData.Agenda.PreselectNumberParticipants; - this.providerSettings = this.SettingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == this.SettingsManager.ConfigurationData.Agenda.PreselectedProvider); - } - + this.MightPreselectValues(); var deferredContent = MessageBus.INSTANCE.CheckDeferredMessages(Event.SEND_TO_AGENDA_ASSISTANT).FirstOrDefault(); if (deferredContent is not null) this.inputContent = deferredContent; diff --git a/app/MindWork AI Studio/Components/Pages/Coding/AssistantCoding.razor.cs b/app/MindWork AI Studio/Components/Pages/Coding/AssistantCoding.razor.cs index 2f4e7206..8b577fee 100644 --- a/app/MindWork AI Studio/Components/Pages/Coding/AssistantCoding.razor.cs +++ b/app/MindWork AI Studio/Components/Pages/Coding/AssistantCoding.razor.cs @@ -34,6 +34,29 @@ public partial class AssistantCoding : AssistantBaseCore }, ]; + protected override void ResetFrom() + { + this.codingContexts.Clear(); + this.compilerMessages = string.Empty; + this.questions = string.Empty; + if (!this.MightPreselectValues()) + { + this.provideCompilerMessages = false; + } + } + + protected override bool MightPreselectValues() + { + if (this.SettingsManager.ConfigurationData.Coding.PreselectOptions) + { + this.provideCompilerMessages = this.SettingsManager.ConfigurationData.Coding.PreselectCompilerMessages; + this.providerSettings = this.SettingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == this.SettingsManager.ConfigurationData.Coding.PreselectedProvider); + return true; + } + + return false; + } + private readonly List codingContexts = new(); private bool provideCompilerMessages; private string compilerMessages = string.Empty; @@ -43,12 +66,7 @@ public partial class AssistantCoding : AssistantBaseCore protected override async Task OnInitializedAsync() { - if (this.SettingsManager.ConfigurationData.Coding.PreselectOptions) - { - this.provideCompilerMessages = this.SettingsManager.ConfigurationData.Coding.PreselectCompilerMessages; - this.providerSettings = this.SettingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == this.SettingsManager.ConfigurationData.Coding.PreselectedProvider); - } - + this.MightPreselectValues(); var deferredContent = MessageBus.INSTANCE.CheckDeferredMessages(Event.SEND_TO_CODING_ASSISTANT).FirstOrDefault(); if (deferredContent is not null) this.questions = deferredContent; diff --git a/app/MindWork AI Studio/Components/Pages/GrammarSpelling/AssistantGrammarSpelling.razor.cs b/app/MindWork AI Studio/Components/Pages/GrammarSpelling/AssistantGrammarSpelling.razor.cs index 5f7bea4c..eef9cd51 100644 --- a/app/MindWork AI Studio/Components/Pages/GrammarSpelling/AssistantGrammarSpelling.razor.cs +++ b/app/MindWork AI Studio/Components/Pages/GrammarSpelling/AssistantGrammarSpelling.razor.cs @@ -41,18 +41,36 @@ public partial class AssistantGrammarSpelling : AssistantBaseCore { SystemPrompt = SystemPrompts.DEFAULT, }; + + protected override void ResetFrom() + { + this.inputText = string.Empty; + this.correctedText = string.Empty; + if (!this.MightPreselectValues()) + { + this.selectedTargetLanguage = CommonLanguages.AS_IS; + this.customTargetLanguage = string.Empty; + } + } - #region Overrides of ComponentBase - - protected override async Task OnInitializedAsync() + protected override bool MightPreselectValues() { if (this.SettingsManager.ConfigurationData.GrammarSpelling.PreselectOptions) { this.selectedTargetLanguage = this.SettingsManager.ConfigurationData.GrammarSpelling.PreselectedTargetLanguage; this.customTargetLanguage = this.SettingsManager.ConfigurationData.GrammarSpelling.PreselectedOtherLanguage; this.providerSettings = this.SettingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == this.SettingsManager.ConfigurationData.GrammarSpelling.PreselectedProvider); + return true; } + return false; + } + + #region Overrides of ComponentBase + + protected override async Task OnInitializedAsync() + { + this.MightPreselectValues(); var deferredContent = MessageBus.INSTANCE.CheckDeferredMessages(Event.SEND_TO_GRAMMAR_SPELLING_ASSISTANT).FirstOrDefault(); if (deferredContent is not null) this.inputText = deferredContent; diff --git a/app/MindWork AI Studio/Components/Pages/IconFinder/AssistantIconFinder.razor.cs b/app/MindWork AI Studio/Components/Pages/IconFinder/AssistantIconFinder.razor.cs index 55de7fde..2b987241 100644 --- a/app/MindWork AI Studio/Components/Pages/IconFinder/AssistantIconFinder.razor.cs +++ b/app/MindWork AI Studio/Components/Pages/IconFinder/AssistantIconFinder.razor.cs @@ -36,16 +36,32 @@ public partial class AssistantIconFinder : AssistantBaseCore }, ]; - #region Overrides of ComponentBase + protected override void ResetFrom() + { + this.inputContext = string.Empty; + if (!this.MightPreselectValues()) + { + this.selectedIconSource = IconSources.GENERIC; + } + } - protected override async Task OnInitializedAsync() + protected override bool MightPreselectValues() { if (this.SettingsManager.ConfigurationData.IconFinder.PreselectOptions) { this.selectedIconSource = this.SettingsManager.ConfigurationData.IconFinder.PreselectedSource; this.providerSettings = this.SettingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == this.SettingsManager.ConfigurationData.IconFinder.PreselectedProvider); + return true; } + + return false; + } + + #region Overrides of ComponentBase + protected override async Task OnInitializedAsync() + { + this.MightPreselectValues(); var deferredContent = MessageBus.INSTANCE.CheckDeferredMessages(Event.SEND_TO_ICON_FINDER_ASSISTANT).FirstOrDefault(); if (deferredContent is not null) this.inputContext = deferredContent; diff --git a/app/MindWork AI Studio/Components/Pages/RewriteImprove/AssistantRewriteImprove.razor.cs b/app/MindWork AI Studio/Components/Pages/RewriteImprove/AssistantRewriteImprove.razor.cs index 0699c4c6..ce60f257 100644 --- a/app/MindWork AI Studio/Components/Pages/RewriteImprove/AssistantRewriteImprove.razor.cs +++ b/app/MindWork AI Studio/Components/Pages/RewriteImprove/AssistantRewriteImprove.razor.cs @@ -43,9 +43,19 @@ public partial class AssistantRewriteImprove : AssistantBaseCore SystemPrompt = SystemPrompts.DEFAULT, }; - #region Overrides of ComponentBase - - protected override async Task OnInitializedAsync() + protected override void ResetFrom() + { + this.inputText = string.Empty; + this.rewrittenText = string.Empty; + if (!this.MightPreselectValues()) + { + this.selectedTargetLanguage = CommonLanguages.AS_IS; + this.customTargetLanguage = string.Empty; + this.selectedWritingStyle = WritingStyles.NOT_SPECIFIED; + } + } + + protected override bool MightPreselectValues() { if (this.SettingsManager.ConfigurationData.RewriteImprove.PreselectOptions) { @@ -53,8 +63,17 @@ public partial class AssistantRewriteImprove : AssistantBaseCore this.customTargetLanguage = this.SettingsManager.ConfigurationData.RewriteImprove.PreselectedOtherLanguage; this.providerSettings = this.SettingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == this.SettingsManager.ConfigurationData.RewriteImprove.PreselectedProvider); this.selectedWritingStyle = this.SettingsManager.ConfigurationData.RewriteImprove.PreselectedWritingStyle; + return true; } + return false; + } + + #region Overrides of ComponentBase + + protected override async Task OnInitializedAsync() + { + this.MightPreselectValues(); var deferredContent = MessageBus.INSTANCE.CheckDeferredMessages(Event.SEND_TO_REWRITE_ASSISTANT).FirstOrDefault(); if (deferredContent is not null) this.inputText = deferredContent; diff --git a/app/MindWork AI Studio/Components/Pages/TextSummarizer/AssistantTextSummarizer.razor.cs b/app/MindWork AI Studio/Components/Pages/TextSummarizer/AssistantTextSummarizer.razor.cs index b3aff4c3..41936acf 100644 --- a/app/MindWork AI Studio/Components/Pages/TextSummarizer/AssistantTextSummarizer.razor.cs +++ b/app/MindWork AI Studio/Components/Pages/TextSummarizer/AssistantTextSummarizer.razor.cs @@ -37,6 +37,33 @@ public partial class AssistantTextSummarizer : AssistantBaseCore SystemPrompt = SystemPrompts.DEFAULT, }; + protected override void ResetFrom() + { + this.inputText = string.Empty; + if(!this.MightPreselectValues()) + { + this.selectedTargetLanguage = CommonLanguages.AS_IS; + this.customTargetLanguage = string.Empty; + this.selectedComplexity = Complexity.NO_CHANGE; + this.expertInField = string.Empty; + } + } + + protected override bool MightPreselectValues() + { + if (this.SettingsManager.ConfigurationData.TextSummarizer.PreselectOptions) + { + this.selectedTargetLanguage = this.SettingsManager.ConfigurationData.TextSummarizer.PreselectedTargetLanguage; + this.customTargetLanguage = this.SettingsManager.ConfigurationData.TextSummarizer.PreselectedOtherLanguage; + this.selectedComplexity = this.SettingsManager.ConfigurationData.TextSummarizer.PreselectedComplexity; + this.expertInField = this.SettingsManager.ConfigurationData.TextSummarizer.PreselectedExpertInField; + this.providerSettings = this.SettingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == this.SettingsManager.ConfigurationData.TextSummarizer.PreselectedProvider); + return true; + } + + return false; + } + private string inputText = string.Empty; private bool isAgentRunning; private CommonLanguages selectedTargetLanguage; @@ -48,15 +75,7 @@ public partial class AssistantTextSummarizer : AssistantBaseCore protected override async Task OnInitializedAsync() { - if(this.SettingsManager.ConfigurationData.TextSummarizer.PreselectOptions) - { - this.selectedTargetLanguage = this.SettingsManager.ConfigurationData.TextSummarizer.PreselectedTargetLanguage; - this.customTargetLanguage = this.SettingsManager.ConfigurationData.TextSummarizer.PreselectedOtherLanguage; - this.selectedComplexity = this.SettingsManager.ConfigurationData.TextSummarizer.PreselectedComplexity; - this.expertInField = this.SettingsManager.ConfigurationData.TextSummarizer.PreselectedExpertInField; - this.providerSettings = this.SettingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == this.SettingsManager.ConfigurationData.TextSummarizer.PreselectedProvider); - } - + this.MightPreselectValues(); var deferredContent = MessageBus.INSTANCE.CheckDeferredMessages(Event.SEND_TO_TEXT_SUMMARIZER_ASSISTANT).FirstOrDefault(); if (deferredContent is not null) this.inputText = deferredContent; diff --git a/app/MindWork AI Studio/Components/Pages/Translation/AssistantTranslation.razor.cs b/app/MindWork AI Studio/Components/Pages/Translation/AssistantTranslation.razor.cs index 78fddfc8..e718e88f 100644 --- a/app/MindWork AI Studio/Components/Pages/Translation/AssistantTranslation.razor.cs +++ b/app/MindWork AI Studio/Components/Pages/Translation/AssistantTranslation.razor.cs @@ -33,6 +33,32 @@ public partial class AssistantTranslation : AssistantBaseCore SystemPrompt = SystemPrompts.DEFAULT, }; + protected override void ResetFrom() + { + this.inputText = string.Empty; + this.inputTextLastTranslation = string.Empty; + if (!this.MightPreselectValues()) + { + this.liveTranslation = false; + this.selectedTargetLanguage = CommonLanguages.AS_IS; + this.customTargetLanguage = string.Empty; + } + } + + protected override bool MightPreselectValues() + { + if (this.SettingsManager.ConfigurationData.Translation.PreselectOptions) + { + this.liveTranslation = this.SettingsManager.ConfigurationData.Translation.PreselectLiveTranslation; + this.selectedTargetLanguage = this.SettingsManager.ConfigurationData.Translation.PreselectedTargetLanguage; + this.customTargetLanguage = this.SettingsManager.ConfigurationData.Translation.PreselectOtherLanguage; + this.providerSettings = this.SettingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == this.SettingsManager.ConfigurationData.Translation.PreselectedProvider); + return true; + } + + return false; + } + private bool liveTranslation; private bool isAgentRunning; private string inputText = string.Empty; @@ -44,14 +70,7 @@ public partial class AssistantTranslation : AssistantBaseCore protected override async Task OnInitializedAsync() { - if (this.SettingsManager.ConfigurationData.Translation.PreselectOptions) - { - this.liveTranslation = this.SettingsManager.ConfigurationData.Translation.PreselectLiveTranslation; - this.selectedTargetLanguage = this.SettingsManager.ConfigurationData.Translation.PreselectedTargetLanguage; - this.customTargetLanguage = this.SettingsManager.ConfigurationData.Translation.PreselectOtherLanguage; - this.providerSettings = this.SettingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == this.SettingsManager.ConfigurationData.Translation.PreselectedProvider); - } - + this.MightPreselectValues(); var deferredContent = MessageBus.INSTANCE.CheckDeferredMessages(Event.SEND_TO_TRANSLATION_ASSISTANT).FirstOrDefault(); if (deferredContent is not null) this.inputText = deferredContent; diff --git a/app/MindWork AI Studio/Tools/JsRuntimeExtensions.cs b/app/MindWork AI Studio/Tools/JsRuntimeExtensions.cs index d8132346..7264fc0e 100644 --- a/app/MindWork AI Studio/Tools/JsRuntimeExtensions.cs +++ b/app/MindWork AI Studio/Tools/JsRuntimeExtensions.cs @@ -8,4 +8,9 @@ public static class JsRuntimeExtensions { await jsRuntime.InvokeVoidAsync("generateDiff", text1, text2, AssistantBase.ASSISTANT_RESULT_DIV_ID, AssistantBase.AFTER_RESULT_DIV_ID); } + + public static async Task ClearDiv(this IJSRuntime jsRuntime, string divId) + { + await jsRuntime.InvokeVoidAsync("clearDiv", divId); + } } \ No newline at end of file diff --git a/app/MindWork AI Studio/wwwroot/app.js b/app/MindWork AI Studio/wwwroot/app.js index 6629610d..61a52418 100644 --- a/app/MindWork AI Studio/wwwroot/app.js +++ b/app/MindWork AI Studio/wwwroot/app.js @@ -16,4 +16,9 @@ window.generateDiff = function (text1, text2, divDiff, divLegend) { `; +} + +window.clearDiv = function (divName) { + let targetDiv = document.getElementById(divName); + targetDiv.innerHTML = ''; } \ No newline at end of file diff --git a/app/MindWork AI Studio/wwwroot/changelog/v0.8.10.md b/app/MindWork AI Studio/wwwroot/changelog/v0.8.10.md index c064a4c3..e3223547 100644 --- a/app/MindWork AI Studio/wwwroot/changelog/v0.8.10.md +++ b/app/MindWork AI Studio/wwwroot/changelog/v0.8.10.md @@ -1,3 +1,4 @@ # v0.8.10, build 172 - Added the possibility to send any assistant context to a new chat session for further questions +- Added a reset button to all assistants to clear the current context - Improved the coding assistant's language handling when creating the corresponding prompt \ No newline at end of file