feat: Stage 1 - Target Generation Pipeline (targen) #11

Merged
gronod merged 4 commits from feature/stage-1-targen into main 2026-08-22 18:27:06 +01:00
Owner

Summary

Implements the complete Stage 1 target generation pipeline, integrating the ArgyllCMS targen binary as a Tauri sidecar process.

Changes

Backend (Rust)

  • ProcessManager (process_manager.rs): Async subprocess manager using Arc<Mutex<Child>> for shared ownership. Polls try_wait() to emit process:exit events.
  • Commands (commands.rs): TargenConfig struct, build_targen_args() builder, and run_targen Tauri command with proper empty-cwd handling.
  • Events (events.rs): Typed event emitters for process:stdout, process:stderr, process:exit, and process:error.
  • Tauri Config: Dialog plugin registered, dialog:default capability added, resources path corrected to argyll/**/* inside src-tauri.

Frontend (JS/HTML/CSS)

  • Wizard UI (index.html): 5-stage stepper sidebar with Stage 1 form (colour space, patch count, white/black patches, browse/filename).
  • targen.js: Save dialog via window.__TAURI__.dialog, manual filename input support, process event listeners, log panel, and auto-advance to Stage 2.
  • main.css: Full application styling with sidebar, form controls, log panel, and stage transitions.

ArgyllCMS Binaries

  • Real compiled ArgyllCMS v3.5.0 binaries placed in src-tauri/argyll/linux-x86_64/.

Tests

  • Unit tests for build_targen_args() covering RGB and CMYK configurations.

Verification

  • cargo test passes all unit tests.
  • Manual testing confirms .ti1 file generation with real targen binary.
  • Browse dialog, manual filename entry, and process logging all functional.
## Summary Implements the complete Stage 1 target generation pipeline, integrating the ArgyllCMS `targen` binary as a Tauri sidecar process. ## Changes ### Backend (Rust) - **ProcessManager** (`process_manager.rs`): Async subprocess manager using `Arc<Mutex<Child>>` for shared ownership. Polls `try_wait()` to emit `process:exit` events. - **Commands** (`commands.rs`): `TargenConfig` struct, `build_targen_args()` builder, and `run_targen` Tauri command with proper empty-cwd handling. - **Events** (`events.rs`): Typed event emitters for `process:stdout`, `process:stderr`, `process:exit`, and `process:error`. - **Tauri Config**: Dialog plugin registered, `dialog:default` capability added, resources path corrected to `argyll/**/*` inside `src-tauri`. ### Frontend (JS/HTML/CSS) - **Wizard UI** (`index.html`): 5-stage stepper sidebar with Stage 1 form (colour space, patch count, white/black patches, browse/filename). - **targen.js**: Save dialog via `window.__TAURI__.dialog`, manual filename input support, process event listeners, log panel, and auto-advance to Stage 2. - **main.css**: Full application styling with sidebar, form controls, log panel, and stage transitions. ### ArgyllCMS Binaries - Real compiled ArgyllCMS v3.5.0 binaries placed in `src-tauri/argyll/linux-x86_64/`. ### Tests - Unit tests for `build_targen_args()` covering RGB and CMYK configurations. ## Verification - `cargo test` passes all unit tests. - Manual testing confirms `.ti1` file generation with real `targen` binary. - Browse dialog, manual filename entry, and process logging all functional.
gronod added 4 commits 2026-08-22 17:21:51 +01:00
gronod merged commit c7f12d4227 into main 2026-08-22 18:27:06 +01:00
Sign in to join this conversation.