Skip to content

Conversation

@Hirogen
Copy link
Collaborator

@Hirogen Hirogen commented Nov 11, 2025

Plugin repository optimizations

@Hirogen Hirogen requested a review from Copilot November 11, 2025 21:08
Copilot finished reviewing on behalf of Hirogen November 11, 2025 21:09
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request implements a comprehensive plugin repository optimization system for LogExpert. The changes introduce plugin manifest support, security validation, permission management, and extensive UI localization to support internationalization.

Key Changes:

  • Added plugin manifest system with JSON-based metadata for plugins (version requirements, permissions, dependencies)
  • Implemented security validation framework for plugins including whitelisting, permission checking, and timeout protection
  • Introduced extensive resource localization across UI components to support multiple languages
  • Enhanced error handling with specific exception filters throughout the codebase

Reviewed Changes

Copilot reviewed 61 out of 73 changed files in this pull request and generated 53 comments.

Show a summary per file
File Description
src/docs/examples/plugin-manifest-example.json Example plugin manifest showing structure for CSV columnizer
src/SftpFileSystemx64/SftpFileSystem.manifest.json Manifest for SFTP file system plugin with network permissions
src/SftpFileSystemx86/SftpFileSystemx86.csproj Links to shared manifest file for x86 build
src/PluginRegistry/PluginValidator.cs New plugin validation system with security checks and manifest loading
src/PluginRegistry/PluginPermissions.cs Permission management system for plugins with filesystem, network, and config access controls
src/PluginRegistry/PluginManifest.cs Plugin manifest parsing and version compatibility checking
src/PluginRegistry/PluginRegistry.cs Enhanced plugin loading with security validation, timeout protection, and statistics tracking
src/Program.cs Added culture settings, improved exception handling, and platform attributes
src/LogExpert/Config/ConfigManager.cs Settings file constant, default language support, and improved error handling
src/LogExpert/Classes/LogExpertProxy.cs Code formatting improvements and platform attributes
src/LogExpert/Classes/LogExpertApplicationContext.cs Platform attribute additions
src/LogExpert.sln README.md added to solution items
src/LogExpert.UI/LogExpert.UI.csproj Removed SubType attribute from EminusConfigDlg
src/LogExpert.UI/Extensions/Utils.cs Removed extra blank line
src/LogExpert.UI/Extensions/ResourceHelper.cs New helper for resource-based UI text mapping
src/LogExpert.UI/Extensions/NativeMethods.cs Improved icon extraction with proper disposal
src/LogExpert.UI/Extensions/LockFinder.cs Localized error messages and simplified logic
src/LogExpert.UI/Extensions/FormExtensions.cs New recursive control enumeration helper
src/LogExpert.UI/Extensions/BookmarkExporter.cs Improved CSV export with better null handling
src/LogExpert.UI/Entities/PaintHelper.cs Localized column header and improved border sizing
src/LogExpert.UI/Dialogs/SettingsDialog.resx Removed duplicate metadata entries
src/LogExpert.UI/Dialogs/SettingsDialog.cs Added language selection, resource loading, and extensive localization
src/LogExpert.UI/Dialogs/SettingsDialog.Designer.cs Added language combo box and renamed controls for consistency
src/LogExpert.UI/Dialogs/LogTabWindow/*.cs Extensive localization, resource loading, and control renaming
src/LogExpert.UI/Dialogs/HighlightDialog.cs Localized messages and improved error handling
src/LogExpert.UI/Dialogs/Eminus/*.cs Localized UI, improved resource disposal, and constant extraction
src/LogExpert.UI/Dialogs/ChooseIconDlg.cs Added resource localization
src/LogExpert.UI/Dialogs/BookmarkWindow.cs Localized UI text and corrected control naming
Files not reviewed (8)
  • src/LogExpert.Resources/Resources.de.Designer.cs: Language not supported
  • src/LogExpert.UI/Controls/DateTimeDragControl.Designer.cs: Language not supported
  • src/LogExpert.UI/Controls/LogWindow/LogWindow.designer.cs: Language not supported
  • src/LogExpert.UI/Dialogs/BookmarkCommentDlg.Designer.cs: Language not supported
  • src/LogExpert.UI/Dialogs/BookmarkWindow.Designer.cs: Language not supported
  • src/LogExpert.UI/Dialogs/ChooseIconDlg.Designer.cs: Language not supported
  • src/LogExpert.UI/Dialogs/Eminus/EminusConfigDlg.Designer.cs: Language not supported
  • src/LogExpert.UI/Dialogs/LogTabWindow/LogTabWindow.designer.cs: Language not supported
Comments suppressed due to low confidence (2)

src/LogExpert.UI/Dialogs/LogTabWindow/LogTabWindow.cs:1832

Hirogen and others added 3 commits November 13, 2025 20:34
# Conflicts:
#	src/LogExpert.UI/Dialogs/LogTabWindow/LogTabWindow.designer.cs
#	src/LogExpert/Config/ConfigManager.cs
@Hirogen Hirogen requested a review from Copilot November 14, 2025 12:53
Copilot finished reviewing on behalf of Hirogen November 14, 2025 12:56
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 22 out of 25 changed files in this pull request and generated 23 comments.

Files not reviewed (2)
  • src/LogExpert.UI/Controls/LogWindow/LogWindow.designer.cs: Language not supported
  • src/LogExpert.UI/Dialogs/LogTabWindow/LogTabWindow.designer.cs: Language not supported

@Hirogen Hirogen requested a review from Copilot November 14, 2025 21:23
Copilot finished reviewing on behalf of Hirogen November 14, 2025 21:25
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 24 out of 28 changed files in this pull request and generated 3 comments.

Files not reviewed (3)
  • src/LogExpert.Resources/Resources.Designer.cs: Language not supported
  • src/LogExpert.UI/Controls/LogWindow/LogWindow.designer.cs: Language not supported
  • src/LogExpert.UI/Dialogs/LogTabWindow/LogTabWindow.designer.cs: Language not supported

@Hirogen Hirogen requested a review from Copilot November 20, 2025 13:30
Copilot finished reviewing on behalf of Hirogen November 20, 2025 13:31
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 117 out of 122 changed files in this pull request and generated 48 comments.

Files not reviewed (5)
  • src/LogExpert.Resources/Resources.Designer.cs: Language not supported
  • src/LogExpert.UI/Controls/LogWindow/LogWindow.designer.cs: Language not supported
  • src/LogExpert.UI/Dialogs/LogTabWindow/LogTabWindow.designer.cs: Language not supported
  • src/LogExpert.UI/Dialogs/PluginHashDialog.Designer.cs: Language not supported
  • src/LogExpert.UI/Dialogs/PluginTrustDialog.Designer.cs: Language not supported
Comments suppressed due to low confidence (1)

src/PluginRegistry.Tests/PluginValidatorTests.cs:1

  • The JSON property name 'logExpertVersion' doesn't match the actual property name 'logExpert' defined in PluginRequirements (line 546 of PluginManifest.cs shows [property: JsonProperty('logExpert')]). This test manifest will fail to deserialize correctly.

Comment on lines +154 to +157
catch
{
return false;
}
Comment on lines +127 to +130
catch (Exception ex)
{
_logger.Error(ex, "Error handling event '{Event}' in plugin '{Plugin}'", eventType.Name, subscription.PluginName);
}
@Hirogen Hirogen merged commit 73c1ff6 into Development Nov 20, 2025
1 check passed
@Hirogen Hirogen deleted the plugin-repository-optimizations branch November 20, 2025 20:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

NullReferenceException when loading a new log file without persistence data Default Columnizer is sometimes not loaded correctly

2 participants