Conversation
Includes design, proposal, requirements, and implementation tasks for automatic daily update checks, user notification, and update commands
- Deleted WingetOperationOptions and WingetOperationResult models as they are no longer needed. - Removed WingetService which handled backup and restore operations for Winget packages. - Deleted FileService which provided file operations including combining files. - Updated DatabaseService to remove backup and restore methods, focusing on database listing and connection testing. - Introduced DatabaseConnectionOptions model to encapsulate database connection parameters. - Updated tests to remove dependencies on removed services.
… policies, and related models
…ds; clean up configuration services
…ogger and OperationResult classes; clean up SqlQueryAnalyzer and related tests
- Added .openspec.yaml and design.md for migration details - Created proposal.md outlining the rationale and changes - Defined new specs for command structure, DI bridge, exception handling, and core services - Implemented tasks for core service preparation, CLI infrastructure setup, and command migration - Removed static façade classes and ensured all commands utilize constructor injection - Centralized exception handling with specific exit codes - Organized command files to reflect the command hierarchy
…ection - Updated DatabaseCommandTests to verify service resolution from DI. - Refactored FileCommandTests to enhance file handling and encoding checks. - Removed OpenCodeCommandTests due to redundancy. - Simplified PgPassCommandTests to focus on utility functions. - Enhanced QueryCommandTests for better command structure validation. - Removed WingetCommandTests as they were no longer necessary. - Updated task list in migration documentation to reflect completed tasks.
… injection for commands
- Removed redundant `System.IO` namespace references in multiple files. - Updated file access methods to use the `File` and `Directory` classes directly. - Ensured consistent usage of file reading and writing methods across the codebase. - Improved code readability by reducing verbosity in file operations.
- Implemented centralized exception handling in CommandApp using SetExceptionHandler. - Mapped specific exceptions to exit codes for better error handling. - Added visual exception formatting using Spectre.Console. - Introduced IDockerService and IPostgresBinaryLocator interfaces for Docker and PostgreSQL binary management. - Created IPostgresPasswordHandler for secure password input handling. - Established update check mechanism for automatic version notifications via NuGet API. - Enhanced user configuration structure to include update check state. - Added commands for manual update checks and executions.
… SqlQueryAnalyzerTests, and UserConfigServiceTests to improve clarity and consistency. Update comments and assertions to reflect English language standards and enhance readability.
…operties from database commands and user configuration service
…reamline health check dependencies
…service collection
…ommand, DatabaseRestoreCommand, and OperationProgress models to simplify configuration
…ng from ProcessExecutor to simplify process execution
…serDefaults to simplify configuration
…to simplify configuration
…s and introducing specific database exceptions
…dingHelper for encoding detection
…er for encoding detection
…rLab CLI - Updated architecture overview to reflect changes in command parsing and dependency injection using Spectre.Console.Cli and Microsoft.Extensions.DependencyInjection. - Enhanced command structure in documentation, detailing new command organization and responsibilities. - Revised feature specifications to include new functionalities for database utilities, file management, and integration with Claude Code and OpenCode. - Improved clarity on command usage, error handling, and business rules across various functionalities. - Added new sections for managing database server configurations and enhanced security practices for credential handling.
- Implemented WindowsFeaturesExportSettings for export command settings. - Created WindowsFeaturesImportCommand to import and enable Windows features from a JSON file. - Added WindowsFeaturesImportSettings for import command settings. - Developed WindowsFeaturesListCommand to list available Windows features. - Introduced WindowsFeaturesListSettings to filter enabled features. - Updated Program.cs to register new Windows features commands. - Refactored process execution interfaces and models for better structure. - Removed obsolete WingetBackupCommand and adjusted related commands. - Added test support classes for improved unit testing.
…nt behavior across platforms
… and cleanup logic
…ataProtection compatibility
…CredentialServiceTests
…improved compatibility on Linux
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR delivers a comprehensive refactoring of the FurLab CLI architecture, migrating from a monolithic command structure to a modular, well-organized codebase.
Major Changes
1. CLI Framework Migration
2. Command Structure
3. Code Cleanup
Files Changed
187 files, ~3,800 insertions, ~10,500 deletions
Test Coverage
All 140+ tests passing