From fb8e37aaf3802a4f3d489cb9f7b8d3e5b79f7049 Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Sun, 6 Sep 2026 13:26:56 +0200 Subject: [PATCH] Clean up compiler and inspection warnings --- app/MindWork AI Studio.sln.DotSettings | 4 ++++ .../Dialogs/DataSourceERI_V1Dialog.razor.cs | 2 -- .../Dialogs/DataSourceLocalDirectoryDialog.razor.cs | 2 +- .../Dialogs/DataSourceLocalDirectoryInfoDialog.razor | 1 - .../Dialogs/DataSourceLocalFileDialog.razor.cs | 2 +- .../Dialogs/DataSourceLocalFileInfoDialog.razor | 1 - .../Dialogs/EmbeddingProviderDialog.razor | 1 - app/MindWork AI Studio/Dialogs/ProviderDialog.razor | 1 - app/MindWork AI Studio/Layout/MainLayout.razor.cs | 3 +-- app/MindWork AI Studio/Plugins/configuration/plugin.lua | 2 +- .../Tools/Databases/DatabaseClientProvider.cs | 2 +- .../Migrations/IndexStoreDbContextModelSnapshot.cs | 3 +++ .../Tools/Services/DataSourceEmbeddingService.Files.cs | 8 +++----- .../Tools/Services/DataSourceEmbeddingService.Watchers.cs | 1 - .../Tools/Services/DataSourceEmbeddingService.cs | 1 - .../Tools/Services/DataSourceLocalRetrievalService.cs | 4 ++-- .../Tools/Services/RustService.Retrieval.cs | 3 +-- .../Tools/Services/RustService.Tokenizer.cs | 2 +- 18 files changed, 19 insertions(+), 24 deletions(-) diff --git a/app/MindWork AI Studio.sln.DotSettings b/app/MindWork AI Studio.sln.DotSettings index 2502e2f8..cbf8ab55 100644 --- a/app/MindWork AI Studio.sln.DotSettings +++ b/app/MindWork AI Studio.sln.DotSettings @@ -1,4 +1,8 @@  + + DO_NOT_SHOW AI EDI ERI diff --git a/app/MindWork AI Studio/Dialogs/DataSourceERI_V1Dialog.razor.cs b/app/MindWork AI Studio/Dialogs/DataSourceERI_V1Dialog.razor.cs index 843968d5..8bec772a 100644 --- a/app/MindWork AI Studio/Dialogs/DataSourceERI_V1Dialog.razor.cs +++ b/app/MindWork AI Studio/Dialogs/DataSourceERI_V1Dialog.razor.cs @@ -1,7 +1,5 @@ using AIStudio.Assistants.ERI; using AIStudio.Components; -using AIStudio.Provider; -using AIStudio.Settings; using AIStudio.Settings.DataModel; using AIStudio.Tools.ERIClient; using AIStudio.Tools.ERIClient.DataModel; diff --git a/app/MindWork AI Studio/Dialogs/DataSourceLocalDirectoryDialog.razor.cs b/app/MindWork AI Studio/Dialogs/DataSourceLocalDirectoryDialog.razor.cs index 7b27d034..996bf28c 100644 --- a/app/MindWork AI Studio/Dialogs/DataSourceLocalDirectoryDialog.razor.cs +++ b/app/MindWork AI Studio/Dialogs/DataSourceLocalDirectoryDialog.razor.cs @@ -137,7 +137,7 @@ public partial class DataSourceLocalDirectoryDialog : MSGComponentBase ? T("No embedding selected") : string.IsNullOrWhiteSpace(this.SelectedEmbedding.TokenizerPath) ? T("Default tokenizer") - : System.IO.Path.GetFileName(this.SelectedEmbedding.TokenizerPath); + : Path.GetFileName(this.SelectedEmbedding.TokenizerPath); private int ProviderMaxChunkTokenLength => this.SelectedEmbedding?.EffectiveTokenLimit ?? EmbeddingProvider.DEFAULT_TOKEN_LIMIT; diff --git a/app/MindWork AI Studio/Dialogs/DataSourceLocalDirectoryInfoDialog.razor b/app/MindWork AI Studio/Dialogs/DataSourceLocalDirectoryInfoDialog.razor index 8d82297d..0f7abb3b 100644 --- a/app/MindWork AI Studio/Dialogs/DataSourceLocalDirectoryInfoDialog.razor +++ b/app/MindWork AI Studio/Dialogs/DataSourceLocalDirectoryInfoDialog.razor @@ -1,4 +1,3 @@ -@using AIStudio.Settings.DataModel @using AIStudio.Provider @inherits MSGComponentBase diff --git a/app/MindWork AI Studio/Dialogs/DataSourceLocalFileDialog.razor.cs b/app/MindWork AI Studio/Dialogs/DataSourceLocalFileDialog.razor.cs index 9b40dd9e..698652dc 100644 --- a/app/MindWork AI Studio/Dialogs/DataSourceLocalFileDialog.razor.cs +++ b/app/MindWork AI Studio/Dialogs/DataSourceLocalFileDialog.razor.cs @@ -137,7 +137,7 @@ public partial class DataSourceLocalFileDialog : MSGComponentBase ? T("No embedding selected") : string.IsNullOrWhiteSpace(this.SelectedEmbedding.TokenizerPath) ? T("Default tokenizer") - : System.IO.Path.GetFileName(this.SelectedEmbedding.TokenizerPath); + : Path.GetFileName(this.SelectedEmbedding.TokenizerPath); private int ProviderMaxChunkTokenLength => this.SelectedEmbedding?.EffectiveTokenLimit ?? EmbeddingProvider.DEFAULT_TOKEN_LIMIT; diff --git a/app/MindWork AI Studio/Dialogs/DataSourceLocalFileInfoDialog.razor b/app/MindWork AI Studio/Dialogs/DataSourceLocalFileInfoDialog.razor index e2d54b03..ab98023b 100644 --- a/app/MindWork AI Studio/Dialogs/DataSourceLocalFileInfoDialog.razor +++ b/app/MindWork AI Studio/Dialogs/DataSourceLocalFileInfoDialog.razor @@ -1,4 +1,3 @@ -@using AIStudio.Settings.DataModel @using AIStudio.Provider @inherits MSGComponentBase diff --git a/app/MindWork AI Studio/Dialogs/EmbeddingProviderDialog.razor b/app/MindWork AI Studio/Dialogs/EmbeddingProviderDialog.razor index d4438507..1299c381 100644 --- a/app/MindWork AI Studio/Dialogs/EmbeddingProviderDialog.razor +++ b/app/MindWork AI Studio/Dialogs/EmbeddingProviderDialog.razor @@ -1,7 +1,6 @@ @using AIStudio.Provider @using AIStudio.Provider.HuggingFace @using AIStudio.Provider.SelfHosted -@using AIStudio.Tools.Rust @inherits MSGComponentBase diff --git a/app/MindWork AI Studio/Dialogs/ProviderDialog.razor b/app/MindWork AI Studio/Dialogs/ProviderDialog.razor index 53377bd1..80c9d6a8 100644 --- a/app/MindWork AI Studio/Dialogs/ProviderDialog.razor +++ b/app/MindWork AI Studio/Dialogs/ProviderDialog.razor @@ -1,7 +1,6 @@ @using AIStudio.Provider @using AIStudio.Provider.HuggingFace @using AIStudio.Provider.SelfHosted -@using AIStudio.Tools.Rust @inherits MSGComponentBase diff --git a/app/MindWork AI Studio/Layout/MainLayout.razor.cs b/app/MindWork AI Studio/Layout/MainLayout.razor.cs index 1c09f3fd..a8cc0af6 100644 --- a/app/MindWork AI Studio/Layout/MainLayout.razor.cs +++ b/app/MindWork AI Studio/Layout/MainLayout.razor.cs @@ -1,4 +1,3 @@ -using System.Runtime.CompilerServices; using AIStudio.Dialogs; using AIStudio.Settings; using AIStudio.Settings.DataModel; @@ -84,7 +83,7 @@ public partial class MainLayout : LayoutComponentBase, IMessageBusReceiver, ILan private DataSourceEmbeddingOverview embeddingOverview = new(false, DataSourceEmbeddingState.COMPLETED, 0, 0, 0); private IReadOnlyCollection navItems = []; private NavBarItem embeddingItem = new (string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false); - private bool showEmbeddingStatusIcon = false; + private bool showEmbeddingStatusIcon; #region Overrides of ComponentBase diff --git a/app/MindWork AI Studio/Plugins/configuration/plugin.lua b/app/MindWork AI Studio/Plugins/configuration/plugin.lua index 75b894e3..f42575f7 100644 --- a/app/MindWork AI Studio/Plugins/configuration/plugin.lua +++ b/app/MindWork AI Studio/Plugins/configuration/plugin.lua @@ -213,7 +213,7 @@ CONFIG["EMBEDDING_PROVIDERS"] = {} -- -- -- Optional: Encrypted API key (see LLM_PROVIDERS example for details) -- -- ["APIKey"] = "ENC:v1:", - +-- -- -- Optional: tokenizer path for this provider relative to the plugin directory. -- -- ["TokenizerPath"] = "", -- diff --git a/app/MindWork AI Studio/Tools/Databases/DatabaseClientProvider.cs b/app/MindWork AI Studio/Tools/Databases/DatabaseClientProvider.cs index 7ca28ff5..dadd160f 100644 --- a/app/MindWork AI Studio/Tools/Databases/DatabaseClientProvider.cs +++ b/app/MindWork AI Studio/Tools/Databases/DatabaseClientProvider.cs @@ -4,7 +4,7 @@ using AIStudio.Tools.Services; namespace AIStudio.Tools.Databases; -public sealed partial class DatabaseClientProvider(RustService rustService, ILoggerFactory loggerFactory) : IDisposable +public sealed class DatabaseClientProvider(RustService rustService, ILoggerFactory loggerFactory) : IDisposable { private readonly Dictionary clients = new(); private readonly Dictionary locks = new(); diff --git a/app/MindWork AI Studio/Tools/Databases/IndexStore/Migrations/IndexStoreDbContextModelSnapshot.cs b/app/MindWork AI Studio/Tools/Databases/IndexStore/Migrations/IndexStoreDbContextModelSnapshot.cs index f0faf9ad..c02521e7 100644 --- a/app/MindWork AI Studio/Tools/Databases/IndexStore/Migrations/IndexStoreDbContextModelSnapshot.cs +++ b/app/MindWork AI Studio/Tools/Databases/IndexStore/Migrations/IndexStoreDbContextModelSnapshot.cs @@ -5,6 +5,9 @@ using Microsoft.EntityFrameworkCore.Infrastructure; namespace AIStudio.Tools.Databases.IndexStore.Migrations; +// EF Core writes this file and declares the type as partial. Dropping the keyword would only +// last until the next migration is added, so the inspection is silenced instead. +// ReSharper disable once PartialTypeWithSinglePart [DbContext(typeof(IndexStoreDbContext))] partial class IndexStoreDbContextModelSnapshot : ModelSnapshot { diff --git a/app/MindWork AI Studio/Tools/Services/DataSourceEmbeddingService.Files.cs b/app/MindWork AI Studio/Tools/Services/DataSourceEmbeddingService.Files.cs index 9b9acf8d..b472b14b 100644 --- a/app/MindWork AI Studio/Tools/Services/DataSourceEmbeddingService.Files.cs +++ b/app/MindWork AI Studio/Tools/Services/DataSourceEmbeddingService.Files.cs @@ -6,7 +6,6 @@ using AIStudio.Provider; using AIStudio.Settings; using AIStudio.Settings.DataModel; using AIStudio.Tools.Databases.IndexStore; -using AIStudio.Tools.PluginSystem; using AIStudio.Tools.Rust; namespace AIStudio.Tools.Services; @@ -242,7 +241,7 @@ public sealed partial class DataSourceEmbeddingService minimumCandidateUnitCount = searchedMaximumCandidateUnitCount + 1; maximumCandidateUnitCount = (int)Math.Min( availableUnitCount, - Math.Max((long)minimumCandidateUnitCount, (long)searchedMaximumCandidateUnitCount * 2)); + Math.Max(minimumCandidateUnitCount, (long)searchedMaximumCandidateUnitCount * 2)); } return largestValidUnitCount; @@ -282,7 +281,7 @@ public sealed partial class DataSourceEmbeddingService foreach (var unit in units) { consumedLength += unit.Length; - var tokenCountAtBoundary = (int)Math.Min(sourceTokenCount.Value, (long)sourceTokenCount.Value * consumedLength / totalLength); + var tokenCountAtBoundary = (int)Math.Min(sourceTokenCount.Value, sourceTokenCount.Value * consumedLength / totalLength); result.Add(Math.Max(0, tokenCountAtBoundary - allocatedTokenCount)); allocatedTokenCount = tokenCountAtBoundary; } @@ -455,7 +454,6 @@ public sealed partial class DataSourceEmbeddingService } var chunk = AddOverlapPrefix(text[startIndex..bestEndIndex].Trim(), overlapPrefix); - overlapPrefix = string.Empty; if (!string.IsNullOrWhiteSpace(chunk)) yield return chunk; @@ -960,7 +958,7 @@ public sealed partial class DataSourceEmbeddingService { DataSourceLocalFile localFile => indexedFiles.Count > 0 ? fileHashes[indexedFiles[0].FullName] - : BuildMetadataHash("file", localFile.FilePath, Path.GetFileName(localFile.FilePath) ?? string.Empty, "missing", "0"), + : BuildMetadataHash("file", localFile.FilePath, Path.GetFileName(localFile.FilePath), "missing", "0"), DataSourceLocalDirectory localDirectory => this.BuildDirectoryMetadataHash(localDirectory, indexedFiles, fileHashes), diff --git a/app/MindWork AI Studio/Tools/Services/DataSourceEmbeddingService.Watchers.cs b/app/MindWork AI Studio/Tools/Services/DataSourceEmbeddingService.Watchers.cs index 216d8d2c..c179b8df 100644 --- a/app/MindWork AI Studio/Tools/Services/DataSourceEmbeddingService.Watchers.cs +++ b/app/MindWork AI Studio/Tools/Services/DataSourceEmbeddingService.Watchers.cs @@ -1,5 +1,4 @@ using System.Collections.Concurrent; -using System.Threading; using AIStudio.Settings; using AIStudio.Settings.DataModel; diff --git a/app/MindWork AI Studio/Tools/Services/DataSourceEmbeddingService.cs b/app/MindWork AI Studio/Tools/Services/DataSourceEmbeddingService.cs index 1c054e7e..e5f92458 100644 --- a/app/MindWork AI Studio/Tools/Services/DataSourceEmbeddingService.cs +++ b/app/MindWork AI Studio/Tools/Services/DataSourceEmbeddingService.cs @@ -1,6 +1,5 @@ using System.Collections.Concurrent; using System.Diagnostics.CodeAnalysis; -using System.Threading; using System.Threading.Channels; using AIStudio.Provider; diff --git a/app/MindWork AI Studio/Tools/Services/DataSourceLocalRetrievalService.cs b/app/MindWork AI Studio/Tools/Services/DataSourceLocalRetrievalService.cs index d16bd129..643ec8af 100644 --- a/app/MindWork AI Studio/Tools/Services/DataSourceLocalRetrievalService.cs +++ b/app/MindWork AI Studio/Tools/Services/DataSourceLocalRetrievalService.cs @@ -43,10 +43,10 @@ public sealed class DataSourceLocalRetrievalService( int ConfidenceLevelRank); public Task> RetrieveDataAsync(DataSourceLocalFile dataSource, IContent lastUserPrompt, ChatThread thread, CancellationToken token = default) => - this.RetrieveDataAsync((IInternalDataSource)dataSource, lastUserPrompt, token); + this.RetrieveDataAsync(dataSource, lastUserPrompt, token); public Task> RetrieveDataAsync(DataSourceLocalDirectory dataSource, IContent lastUserPrompt, ChatThread thread, CancellationToken token = default) => - this.RetrieveDataAsync((IInternalDataSource)dataSource, lastUserPrompt, token); + this.RetrieveDataAsync(dataSource, lastUserPrompt, token); private async Task> RetrieveDataAsync(IInternalDataSource dataSource, IContent lastUserPrompt, CancellationToken token) { diff --git a/app/MindWork AI Studio/Tools/Services/RustService.Retrieval.cs b/app/MindWork AI Studio/Tools/Services/RustService.Retrieval.cs index 54507187..63dea478 100644 --- a/app/MindWork AI Studio/Tools/Services/RustService.Retrieval.cs +++ b/app/MindWork AI Studio/Tools/Services/RustService.Retrieval.cs @@ -3,7 +3,6 @@ using System.Text.Json; using System.Runtime.CompilerServices; using AIStudio.Settings; -using AIStudio.Tools.Rust; using AIStudio.Tools.Security; namespace AIStudio.Tools.Services; @@ -303,7 +302,7 @@ public sealed partial class RustService yield break; } - string? finalContentChunk = null; + string? finalContentChunk; try { await using var stream = await response.Content.ReadAsStreamAsync(token); diff --git a/app/MindWork AI Studio/Tools/Services/RustService.Tokenizer.cs b/app/MindWork AI Studio/Tools/Services/RustService.Tokenizer.cs index 7c62cd0f..17cd1a8c 100644 --- a/app/MindWork AI Studio/Tools/Services/RustService.Tokenizer.cs +++ b/app/MindWork AI Studio/Tools/Services/RustService.Tokenizer.cs @@ -72,7 +72,7 @@ public sealed partial class RustService private async Task GetTokenCount(string providerName, string tokenizerPath, string text, CancellationToken cancellationToken) { var result = await this.http.PostAsJsonAsync("/tokenizer/count", new { - text = text, + text, tokenizer_path = tokenizerPath, }, this.jsonRustSerializerOptions, cancellationToken);