122 lines
4.9 KiB
Markdown
122 lines
4.9 KiB
Markdown
|
|
# Changelog
|
||
|
|
|
||
|
|
All notable changes to the Unified Farm Launcher project will be documented in this file.
|
||
|
|
|
||
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||
|
|
|
||
|
|
## [Unreleased]
|
||
|
|
|
||
|
|
### Added
|
||
|
|
- README documentation
|
||
|
|
- CHANGELOG file
|
||
|
|
|
||
|
|
## [0.0.1] - 2025-11-21
|
||
|
|
|
||
|
|
### Added
|
||
|
|
- **Avalonia Desktop Application**: Complete migration from PowerShell scripts to a cross-platform desktop application
|
||
|
|
- **Worker Management UI**: Graphical interface for managing multiple remote workers
|
||
|
|
- **Multi-Worker Type Support**: Unified interface supporting both SheepIt and Flamenco worker types
|
||
|
|
- **Worker Configuration Management**: Add, edit, and delete worker configurations through the UI
|
||
|
|
- **Worker Filtering**: Filter workers by type (All, SheepIt, Flamenco) using tab controls
|
||
|
|
- **Remote Worker Controller**: PowerShell-based controller script deployed to remote machines for process management
|
||
|
|
- **Worker Lifecycle Management**: Start, stop, and monitor worker processes remotely
|
||
|
|
- **Log Attachment Service**: Real-time log viewing by attaching to remote worker processes
|
||
|
|
- **SSH Service**: Secure remote communication with worker machines
|
||
|
|
- **Configuration Persistence**: JSON-based configuration stored in `%LocalAppData%\UnifiedFarmLauncher\workers.json`
|
||
|
|
- **Worker Status Tracking**: Metadata tracking for worker state, PIDs, restart counts, and exit codes
|
||
|
|
- **Automatic Restart Logic**: Configurable restart attempts with delay for failed workers
|
||
|
|
- **Command Queue System**: File-based command queue for remote worker control
|
||
|
|
- **Embedded PowerShell Scripts**: Controller and attach helper scripts embedded as resources
|
||
|
|
|
||
|
|
### Changed
|
||
|
|
- **Architecture**: Migrated from standalone PowerShell scripts to structured C# application with MVVM pattern
|
||
|
|
- **Payload Handling**: Switched from command-line argument passing to file-based payload storage to avoid Windows command-line length limits
|
||
|
|
- **Worker Process Management**: Implemented controller-based architecture for better process lifecycle management
|
||
|
|
- **Logging System**: Enhanced logging with timestamped, prefixed log entries (CTRL, OUT, ERR)
|
||
|
|
- **SheepIt Integration**: Updated to use JAR file downloads with fallback URLs instead of executable-based approach
|
||
|
|
|
||
|
|
### Fixed
|
||
|
|
- **Command-Line Length Limits**: Resolved issues with large payloads exceeding Windows command-line argument limits by using file-based payload storage
|
||
|
|
- **Worker Process Startup**: Fixed issues with worker processes not starting properly on remote machines
|
||
|
|
- **SSH Connection Failures**: Improved SSH connection handling and error reporting
|
||
|
|
- **Log Output Capture**: Fixed missing worker output in logs by properly redirecting stdout/stderr
|
||
|
|
- **Controller Deployment**: Ensured controller script is properly deployed and executed on remote machines
|
||
|
|
- **Process Monitoring**: Improved worker process status tracking and metadata updates
|
||
|
|
|
||
|
|
### Technical Details
|
||
|
|
- **Framework**: .NET 8.0 with Avalonia UI 11.0.0
|
||
|
|
- **Architecture**: MVVM pattern with ReactiveUI
|
||
|
|
- **Remote Execution**: PowerShell scripts executed via SSH
|
||
|
|
- **Data Storage**: JSON configuration with file-based state management on remote machines
|
||
|
|
- **Logging**: File-based logging with real-time streaming support
|
||
|
|
|
||
|
|
## [Pre-1.0.0] - Historical Development
|
||
|
|
|
||
|
|
### 2025-11-21
|
||
|
|
- Fixed SheepIt worker incompatibility issues
|
||
|
|
- Resolved command-line argument size limitations
|
||
|
|
- Improved payload resolution and file-based storage
|
||
|
|
|
||
|
|
### 2025-11-21
|
||
|
|
- Fixed SSH connection issues and worker failures
|
||
|
|
- Improved error handling for remote command execution
|
||
|
|
|
||
|
|
### 2025-11-06
|
||
|
|
- Updated path structure for renders
|
||
|
|
|
||
|
|
### 2025-11-03
|
||
|
|
- Created unified SheepIt launcher script
|
||
|
|
- Added support for SheepIt worker type alongside Flamenco
|
||
|
|
|
||
|
|
### 2025-08-13
|
||
|
|
- Removed sequence numbers from job name format
|
||
|
|
|
||
|
|
### 2025-07-15
|
||
|
|
- Configured launch standard worker for Flamenco 3.7
|
||
|
|
- Updated worker paths to use `F:\software\Flamenco 3.7`
|
||
|
|
|
||
|
|
### 2025-06-03
|
||
|
|
- Changed retry function to infinite retries
|
||
|
|
|
||
|
|
### 2025-05-23
|
||
|
|
- Replaced RemoteCmd with RemoteSimplified
|
||
|
|
|
||
|
|
### 2025-05-14
|
||
|
|
- Added CMD worker error handling and retry logic
|
||
|
|
|
||
|
|
### 2025-05-13
|
||
|
|
- Implemented password prompt bypassing in scripts
|
||
|
|
|
||
|
|
### 2025-05-12
|
||
|
|
- Technical scripting and troubleshooting improvements
|
||
|
|
|
||
|
|
### 2025-05-07
|
||
|
|
- Script modifications for masterbox system
|
||
|
|
|
||
|
|
### 2025-05-06
|
||
|
|
- Switched to OptiX GPU rendering
|
||
|
|
- Identified and fixed various mistakes
|
||
|
|
|
||
|
|
### 2025-05-05
|
||
|
|
- Flamenco job status troubleshooting
|
||
|
|
|
||
|
|
### 2025-04-25
|
||
|
|
- i9-13ks setup troubleshooting
|
||
|
|
|
||
|
|
### 2025-04-23
|
||
|
|
- Network drive mapping and file copying script improvements
|
||
|
|
|
||
|
|
### 2025-04-04
|
||
|
|
- Created worker2 scripts for Flamenco
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Notes
|
||
|
|
|
||
|
|
- This project evolved from PowerShell-based scripts to a full desktop application
|
||
|
|
- Early development focused on Flamenco worker management
|
||
|
|
- SheepIt support was added later as a second worker type
|
||
|
|
- The migration to Avalonia UI provided a unified interface for managing both worker types
|
||
|
|
|