646 lines
19 KiB
Markdown
646 lines
19 KiB
Markdown
|
|
<!-- Generated by SpecStory, Markdown v2.1.0 -->
|
||
|
|
|
||
|
|
<!-- cursor Session 2a506942-5bcd-4a99-9e1e-a3cf55d5af92 (2025-12-17 22:32Z) -->
|
||
|
|
|
||
|
|
# Readme for sheepit worker incompatibility fix (2025-12-17 22:32Z)
|
||
|
|
|
||
|
|
_**User (2025-12-17 22:32Z)**_
|
||
|
|
|
||
|
|
context:@.specstory/history/2025-11-21_16-43Z-fixing-sheepit-worker-incompatibility.md
|
||
|
|
|
||
|
|
add a readme.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
_**Agent (model default, mode Agent)**_
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
|
||
|
|
Reviewing the context file and codebase to draft the README.
|
||
|
|
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
<tool-use data-tool-type="read" data-tool-name="read_file">
|
||
|
|
<details><summary>Tool use: **read_file** • Read file: .specstory/history/2025-11-21_16-43Z-fixing-sheepit-worker-incompatibility.md</summary>
|
||
|
|
|
||
|
|
</details>
|
||
|
|
</tool-use>
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
<tool-use data-tool-type="read" data-tool-name="read_file">
|
||
|
|
<details><summary>Tool use: **read_file** • Read file: UnifiedFarmLauncher.csproj</summary>
|
||
|
|
|
||
|
|
</details>
|
||
|
|
</tool-use>
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
<tool-use data-tool-type="read" data-tool-name="read_file">
|
||
|
|
<details><summary>Tool use: **read_file** • Read file: Program.cs</summary>
|
||
|
|
|
||
|
|
</details>
|
||
|
|
</tool-use>
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
<tool-use data-tool-type="read" data-tool-name="read_file">
|
||
|
|
<details><summary>Tool use: **read_file** • Read file: ViewModels/MainWindowViewModel.cs</summary>
|
||
|
|
|
||
|
|
</details>
|
||
|
|
</tool-use>
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
|
||
|
|
Reading a portion of the context file and reviewing additional files:
|
||
|
|
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
<tool-use data-tool-type="read" data-tool-name="read_file">
|
||
|
|
<details><summary>Tool use: **read_file** • Read file: .specstory/history/2025-11-21_16-43Z-fixing-sheepit-worker-incompatibility.md</summary>
|
||
|
|
|
||
|
|
</details>
|
||
|
|
</tool-use>
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
<tool-use data-tool-type="read" data-tool-name="read_file">
|
||
|
|
<details><summary>Tool use: **read_file** • Read file: Models/ConfigRoot.cs</summary>
|
||
|
|
|
||
|
|
</details>
|
||
|
|
</tool-use>
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
<tool-use data-tool-type="read" data-tool-name="read_file">
|
||
|
|
<details><summary>Tool use: **read_file** • Read file: Services/WorkerControllerService.cs</summary>
|
||
|
|
|
||
|
|
</details>
|
||
|
|
</tool-use>
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
<tool-use data-tool-type="read" data-tool-name="read_file">
|
||
|
|
<details><summary>Tool use: **read_file** • Read file: Views/MainWindow.axaml</summary>
|
||
|
|
|
||
|
|
</details>
|
||
|
|
</tool-use>
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
|
||
|
|
Checking a few more files to understand the project structure:
|
||
|
|
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
<tool-use data-tool-type="read" data-tool-name="read_file">
|
||
|
|
<details><summary>Tool use: **read_file** • Read file: Models/WorkerConfig.cs</summary>
|
||
|
|
|
||
|
|
</details>
|
||
|
|
</tool-use>
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
<tool-use data-tool-type="read" data-tool-name="read_file">
|
||
|
|
<details><summary>Tool use: **read_file** • Read file: Services/ConfigService.cs</summary>
|
||
|
|
|
||
|
|
</details>
|
||
|
|
</tool-use>
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
<tool-use data-tool-type="search" data-tool-name="codebase_search">
|
||
|
|
<details>
|
||
|
|
<summary>Tool use: **codebase_search** • Searched codebase "What is the purpose of this application and what does it do?" • **8** results</summary>
|
||
|
|
|
||
|
|
| File | Lines |
|
||
|
|
|------|-------|
|
||
|
|
| `App.axaml.cs` | L30 |
|
||
|
|
| `Views/MainWindow.axaml` | L32 |
|
||
|
|
| `Program.cs` | L19 |
|
||
|
|
| `Services/ConfigService.cs` | L62 |
|
||
|
|
| `app.manifest` | L12 |
|
||
|
|
| `ViewModels/MainWindowViewModel.cs` | L60 |
|
||
|
|
| `UnifiedFarmLauncher.csproj` | L30 |
|
||
|
|
| `Views/MainWindow.axaml.cs` | L46 |
|
||
|
|
|
||
|
|
</details>
|
||
|
|
</tool-use>
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
|
||
|
|
Creating the README:
|
||
|
|
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
<tool-use data-tool-type="write" data-tool-name="write">
|
||
|
|
|
||
|
|
<details><summary>Tool use: **write** • Edit file: README.md</summary>
|
||
|
|
|
||
|
|
**Chunk 1**
|
||
|
|
Lines added: 162, lines removed: 1
|
||
|
|
|
||
|
|
```diff
|
||
|
|
@@ -1,1 +1,162 @@
|
||
|
|
-
|
||
|
|
+ # Unified Farm Launcher
|
||
|
|
+
|
||
|
|
+ A desktop application for managing remote render farm workers across multiple systems. Supports both **SheepIt** and **Flamenco** worker types with a unified interface for starting, stopping, and monitoring workers via SSH.
|
||
|
|
+
|
||
|
|
+ ## Features
|
||
|
|
+
|
||
|
|
+ - **Multi-Worker Support**: Manage multiple remote workers from a single interface
|
||
|
|
+ - **Worker Types**:
|
||
|
|
+ - **SheepIt**: Distributed rendering for Blender projects
|
||
|
|
+ - **Flamenco**: Blender Foundation's render farm manager
|
||
|
|
+ - **Remote Management**: Control workers on remote machines via SSH
|
||
|
|
+ - **Worker Lifecycle**: Start, stop, and attach to worker processes
|
||
|
|
+ - **Filtering**: Filter workers by type (All, SheepIt, Flamenco)
|
||
|
|
+ - **Configuration Management**: Add, edit, and delete worker configurations
|
||
|
|
+ - **Real-time Logging**: Attach to worker logs for real-time monitoring
|
||
|
|
+
|
||
|
|
+ ## Requirements
|
||
|
|
+
|
||
|
|
+ - **.NET 8.0** or later
|
||
|
|
+ - **Windows** (PowerShell required on remote machines)
|
||
|
|
+ - **SSH access** to remote worker machines
|
||
|
|
+ - **Java** (Temurin 21 recommended) on remote machines for SheepIt workers
|
||
|
|
+ - **Flamenco worker executable** on remote machines for Flamenco workers
|
||
|
|
+
|
||
|
|
+ ## Building
|
||
|
|
+
|
||
|
|
+ ```bash
|
||
|
|
+ dotnet build
|
||
|
|
+ ```
|
||
|
|
+
|
||
|
|
+ ## Running
|
||
|
|
+
|
||
|
|
+ ```bash
|
||
|
|
+ dotnet run
|
||
|
|
+ ```
|
||
|
|
+
|
||
|
|
+ Or build and run the executable from the output directory.
|
||
|
|
+
|
||
|
|
+ ## Configuration
|
||
|
|
+
|
||
|
|
+ Configuration is stored in `%LocalAppData%\UnifiedFarmLauncher\workers.json`. The application will create this file automatically on first run.
|
||
|
|
+
|
||
|
|
+ ### Configuration Structure
|
||
|
|
+
|
||
|
|
+ ```json
|
||
|
|
+ {
|
||
|
|
+ "workers": [
|
||
|
|
+ {
|
||
|
|
+ "id": 1,
|
||
|
|
+ "name": "worker-name",
|
||
|
|
+ "enabled": true,
|
||
|
|
+ "ssh": {
|
||
|
|
+ "host": "192.168.1.100",
|
||
|
|
+ "port": 22,
|
||
|
|
+ "username": "user",
|
||
|
|
+ "password": "password"
|
||
|
|
+ },
|
||
|
|
+ "workerTypes": {
|
||
|
|
+ "sheepIt": {
|
||
|
|
+ "username": "sheepit-username",
|
||
|
|
+ "renderKey": "render-key",
|
||
|
|
+ "gpu": "CPU"
|
||
|
|
+ },
|
||
|
|
+ "flamenco": {
|
||
|
|
+ "workerPath": "C:\\path\\to\\flamenco-worker",
|
||
|
|
+ "networkDrives": ["Z:", "Y:"],
|
||
|
|
+ "networkPaths": ["\\\\server\\share"]
|
||
|
|
+ }
|
||
|
|
+ }
|
||
|
|
+ }
|
||
|
|
+ ],
|
||
|
|
+ "globalSettings": {
|
||
|
|
+ "sheepItJarUrls": [
|
||
|
|
+ "https://sheepit-renderfarm.com/media/applet/client-latest.php"
|
||
|
|
+ ]
|
||
|
|
+ }
|
||
|
|
+ }
|
||
|
|
+ ```
|
||
|
|
+
|
||
|
|
+ ## Usage
|
||
|
|
+
|
||
|
|
+ ### Adding a Worker
|
||
|
|
+
|
||
|
|
+ 1. Click **Add Worker** button
|
||
|
|
+ 2. Fill in the worker details:
|
||
|
|
+ - **Name**: Unique identifier for the worker
|
||
|
|
+ - **SSH Configuration**: Host, port, username, and password
|
||
|
|
+ - **Worker Type Configuration**: Configure either SheepIt or Flamenco (or both)
|
||
|
|
+ 3. Click **Save**
|
||
|
|
+
|
||
|
|
+ ### Starting a Worker
|
||
|
|
+
|
||
|
|
+ 1. Select a worker from the list
|
||
|
|
+ 2. Click **Start** button
|
||
|
|
+ 3. The application will:
|
||
|
|
+ - Deploy the controller script to the remote machine
|
||
|
|
+ - Start the worker process
|
||
|
|
+ - Monitor the worker status
|
||
|
|
+
|
||
|
|
+ ### Stopping a Worker
|
||
|
|
+
|
||
|
|
+ 1. Select a running worker
|
||
|
|
+ 2. Click **Stop** button
|
||
|
|
+ 3. The worker process will be gracefully terminated
|
||
|
|
+
|
||
|
|
+ ### Attaching to Worker Logs
|
||
|
|
+
|
||
|
|
+ 1. Select a worker
|
||
|
|
+ 2. Click **Attach** button
|
||
|
|
+ 3. A terminal session will open showing real-time worker logs
|
||
|
|
+ 4. Type `detach` to exit the session
|
||
|
|
+
|
||
|
|
+ ### Filtering Workers
|
||
|
|
+
|
||
|
|
+ Use the tabs at the top to filter workers:
|
||
|
|
+ - **All Workers**: Shows all configured workers
|
||
|
|
+ - **SheepIt**: Shows only SheepIt workers
|
||
|
|
+ - **Flamenco**: Shows only Flamenco workers
|
||
|
|
+
|
||
|
|
+ ## Architecture
|
||
|
|
+
|
||
|
|
+ ### Project Structure
|
||
|
|
+
|
||
|
|
+ ```
|
||
|
|
+ UFL/
|
||
|
|
+ ├── Models/ # Data models (ConfigRoot, WorkerConfig, etc.)
|
||
|
|
+ ├── Services/ # Business logic services
|
||
|
|
+ │ ├── ConfigService.cs # Configuration management
|
||
|
|
+ │ ├── SshService.cs # SSH communication
|
||
|
|
+ │ ├── WorkerControllerService.cs # Worker lifecycle management
|
||
|
|
+ │ └── AttachService.cs # Log attachment service
|
||
|
|
+ ├── ViewModels/ # MVVM view models
|
||
|
|
+ ├── Views/ # Avalonia UI views
|
||
|
|
+ └── Scripts/ # PowerShell scripts (embedded resources)
|
||
|
|
+ ├── remote_worker_controller.ps1
|
||
|
|
+ └── remote_worker_attach.ps1
|
||
|
|
+ ```
|
||
|
|
+
|
||
|
|
+ ### Remote Worker Architecture
|
||
|
|
+
|
||
|
|
+ Workers run on remote machines under a controller process:
|
||
|
|
+
|
||
|
|
+ 1. **Controller Script**: Deployed to `%LocalAppData%\UnifiedWorkers\controller.ps1`
|
||
|
|
+ 2. **Worker Data**: Stored in `%LocalAppData%\UnifiedWorkers\{workerType}\{workerName}\`
|
||
|
|
+ - `logs\worker.log`: Worker output logs
|
||
|
|
+ - `state\worker-info.json`: Worker metadata and status
|
||
|
|
+ - `state\commands.txt`: Command queue for worker control
|
||
|
|
+ - `state\payload.ps1`: Worker execution script
|
||
|
|
+
|
||
|
|
+ 3. **Worker Process**: The controller manages the worker process lifecycle, handles restarts, and monitors status.
|
||
|
|
+
|
||
|
|
+ ## Technologies
|
||
|
|
+
|
||
|
|
+ - **Avalonia UI**: Cross-platform .NET UI framework
|
||
|
|
+ - **ReactiveUI**: MVVM framework
|
||
|
|
+ - **System.Text.Json**: JSON serialization
|
||
|
|
+ - **PowerShell**: Remote script execution
|
||
|
|
+
|
||
|
|
+ ## License
|
||
|
|
+
|
||
|
|
+ [Specify your license here]
|
||
|
|
+
|
||
|
|
```
|
||
|
|
|
||
|
|
</details>
|
||
|
|
|
||
|
|
</tool-use>
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
|
||
|
|
Created a README for the Unified Farm Launcher. It includes:
|
||
|
|
|
||
|
|
- **Overview**: Description of the application and its purpose
|
||
|
|
- **Features**: List of capabilities
|
||
|
|
- **Requirements**: Prerequisites for running the application
|
||
|
|
- **Building & Running**: Instructions for building and running
|
||
|
|
- **Configuration**: Structure and location of the config file
|
||
|
|
- **Usage**: Step-by-step instructions for common tasks
|
||
|
|
- **Architecture**: Project structure and remote worker architecture
|
||
|
|
- **Technologies**: Technologies used
|
||
|
|
|
||
|
|
The README provides an overview of the application and how to use it. If you want any sections expanded or additional details, say what to add.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
_**User (2025-12-17 22:32Z)**_
|
||
|
|
|
||
|
|
add a changelog.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
_**Agent (model default, mode Agent)**_
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
|
||
|
|
Reviewing the history file to identify changes for the changelog.
|
||
|
|
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
<tool-use data-tool-type="read" data-tool-name="read_file">
|
||
|
|
<details><summary>Tool use: **read_file** • Read file: .specstory/history/2025-11-21_16-43Z-fixing-sheepit-worker-incompatibility.md</summary>
|
||
|
|
|
||
|
|
</details>
|
||
|
|
</tool-use>
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
<tool-use data-tool-type="generic" data-tool-name="glob_file_search">
|
||
|
|
<details>
|
||
|
|
<summary>Tool use: **glob_file_search** • Searched codebase "*.md" • **20** results in **1** directory</summary>
|
||
|
|
|
||
|
|
Directory: **c:\Users\Nathan\Desktop\UFL\.specstory** (20 files)
|
||
|
|
|
||
|
|
| File |
|
||
|
|
|------|
|
||
|
|
| `history\2025-11-21_16-43Z-fixing-sheepit-worker-incompatibility.md` |
|
||
|
|
| `history\2025-11-21_01-14Z-workers-failing-and-ssh-connection-issues.md` |
|
||
|
|
| `history\2025-11-19_17-03Z-why-is-git-frozen.md` |
|
||
|
|
| `history\2025-11-06_17-28Z-update-path-structure-for-renders.md` |
|
||
|
|
| `history\2025-11-03_19-27Z-create-sister-script-for-sheepit.md` |
|
||
|
|
| `history\2025-08-13_18-59Z-remove-seq-from-jobname-format.md` |
|
||
|
|
| `.what-is-this.md` |
|
||
|
|
| `history\2025-07-15_18-30Z-configure-launch-standard-worker-for-flamenco-3-7.md` |
|
||
|
|
| `history\2025-06-03_00-04Z-change-retry-function-to-infinite-retries.md` |
|
||
|
|
| `history\2025-05-23_23-12Z-replace-remotecmd-with-remotesimplified.md` |
|
||
|
|
| `history\2025-05-14_15-49Z-cmd-worker-error-handling-and-retry-logic.md` |
|
||
|
|
| `history\2025-05-13_23-13Z-bypassing-password-prompts-in-script.md` |
|
||
|
|
| `history\2025-05-12_16-04Z-technical-scripting-and-troubleshooting-discussion.md` |
|
||
|
|
| `history\2025-05-07_22-05Z-script-modification-for-masterbox.md` |
|
||
|
|
| `history\2025-05-06_21-34Z-identifying-mistakes-and-seeking-guidance.md` |
|
||
|
|
| `history\2025-05-06_20-07Z-switching-to-optix-gpu-rendering.md` |
|
||
|
|
| `history\2025-05-05_16-17Z-flamenco-job-status-troubleshooting.md` |
|
||
|
|
| `history\2025-04-25_19-30Z-i9-13ks-setup-troubleshooting.md` |
|
||
|
|
| `history\2025-04-23_20-48Z-network-drive-mapping-and-file-copying-script.md` |
|
||
|
|
| `history\2025-04-04_17-25Z-creating-worker2-scripts-for-flamenco.md` |
|
||
|
|
|
||
|
|
</details>
|
||
|
|
</tool-use>
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
<tool-use data-tool-type="search" data-tool-name="codebase_search">
|
||
|
|
<details>
|
||
|
|
<summary>Tool use: **codebase_search** • Searched codebase "What are the main features and changes that have been implemented in this project?" • **8** results</summary>
|
||
|
|
|
||
|
|
| File | Lines |
|
||
|
|
|------|-------|
|
||
|
|
| `Views/MainWindow.axaml.cs` | L46 |
|
||
|
|
| `Views/MainWindow.axaml` | L32 |
|
||
|
|
| `ViewModels/MainWindowViewModel.cs` | L60 |
|
||
|
|
| `UnifiedFarmLauncher.csproj` | L30 |
|
||
|
|
| `ViewModels/ViewModelBase.cs` | L26 |
|
||
|
|
| `Services/ConfigService.cs` | L62 |
|
||
|
|
| `App.axaml.cs` | L30 |
|
||
|
|
| `Services/ConfigService.cs` | L59-121 |
|
||
|
|
|
||
|
|
</details>
|
||
|
|
</tool-use>
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
|
||
|
|
Reviewing a few more history files to understand the project's evolution:
|
||
|
|
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
<tool-use data-tool-type="read" data-tool-name="read_file">
|
||
|
|
<details><summary>Tool use: **read_file** • Read file: .specstory/history/2025-11-21_01-14Z-workers-failing-and-ssh-connection-issues.md</summary>
|
||
|
|
|
||
|
|
</details>
|
||
|
|
</tool-use>
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
<tool-use data-tool-type="read" data-tool-name="read_file">
|
||
|
|
<details><summary>Tool use: **read_file** • Read file: .specstory/history/2025-11-03_19-27Z-create-sister-script-for-sheepit.md</summary>
|
||
|
|
|
||
|
|
</details>
|
||
|
|
</tool-use>
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
<tool-use data-tool-type="read" data-tool-name="read_file">
|
||
|
|
<details><summary>Tool use: **read_file** • Read file: .specstory/history/2025-07-15_18-30Z-configure-launch-standard-worker-for-flamenco-3-7.md</summary>
|
||
|
|
|
||
|
|
</details>
|
||
|
|
</tool-use>
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
<tool-use data-tool-type="read" data-tool-name="read_file">
|
||
|
|
<details><summary>Tool use: **read_file** • Read file: .specstory/.what-is-this.md</summary>
|
||
|
|
|
||
|
|
</details>
|
||
|
|
</tool-use>
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
|
||
|
|
Creating the changelog based on the project history and codebase:
|
||
|
|
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
<tool-use data-tool-type="write" data-tool-name="write">
|
||
|
|
|
||
|
|
<details><summary>Tool use: **write** • Edit file: CHANGELOG.md</summary>
|
||
|
|
|
||
|
|
**Chunk 1**
|
||
|
|
Lines added: 121, lines removed: 1
|
||
|
|
|
||
|
|
```diff
|
||
|
|
@@ -1,1 +1,121 @@
|
||
|
|
-
|
||
|
|
+ # 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
|
||
|
|
+
|
||
|
|
+ ## [1.0.0] - 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
|
||
|
|
+
|
||
|
|
```
|
||
|
|
|
||
|
|
</details>
|
||
|
|
|
||
|
|
</tool-use>
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
|
||
|
|
Created a CHANGELOG.md that includes:
|
||
|
|
|
||
|
|
- **Current Version (1.0.0)**: Major features and changes from the migration to the Avalonia desktop application
|
||
|
|
- **Historical Development Timeline**: Chronological entries based on the project history files
|
||
|
|
- **Technical Details**: Framework versions, architecture patterns, and implementation details
|
||
|
|
- **Project Evolution Notes**: Summary of the transition from PowerShell scripts to a desktop application
|
||
|
|
|
||
|
|
The changelog follows the [Keep a Changelog](https://keepachangelog.com/) format with sections for Added, Changed, and Fixed. It documents the project's evolution from early Flamenco worker scripts through the addition of SheepIt support to the current unified desktop application.
|
||
|
|
|
||
|
|
The changelog is ready to use and can be updated as new features and fixes are added.
|
||
|
|
|
||
|
|
---
|
||
|
|
|