Implement the Stage 1 Target Generation wizard step. The user configures colour patch parameters and the Rust backend spawns targen via ProcessManager to generate a .ti1 target definition file.
Toolchain Context
Backend: Rust (Tauri 2) — spawns targen as a sidecar binary resolved via commands::resolve_binary()
Frontend: Vanilla JS in Tauri webview, communicates via window.__TAURI__.core.invoke()
IPC: Process events streamed via process:stdout / process:stderr / process:exit Tauri event channels defined in src-tauri/src/events.rs
Implementation Plan
Backend (Rust)
New Tauri commandcommands::run_targen(app, state, config) in src-tauri/src/commands.rs:
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Description
Implement the Stage 1 Target Generation wizard step. The user configures colour patch parameters and the Rust backend spawns
targenviaProcessManagerto generate a.ti1target definition file.Toolchain Context
targenas a sidecar binary resolved viacommands::resolve_binary()window.__TAURI__.core.invoke()process:stdout/process:stderr/process:exitTauri event channels defined insrc-tauri/src/events.rsImplementation Plan
Backend (Rust)
commands::run_targen(app, state, config)insrc-tauri/src/commands.rs:TargenConfigstruct (serde-deserialisable):{ colour_space: "rgb"|"cmyk", patch_count: u32, white_patches: Option<u32>, black_patches: Option<u32>, basename: String }resolve_binary(app, "targen")["-v", "-d", <2|4>, "-f", <count>, "-e", <white>, "-B", <black>, <basename>]state.spawn(app, "targen", binary, args).ti1file exists at expected path. Emitprocess:completeevent with file metadata or error.cwdparameter toProcessManager::spawn()so targen writes output to a user-selected project directory.Frontend (JavaScript)
src/index.html#stage-1):-d 2/-d 4-e) and black patch count (-B) inputsinvoke('run_targen', { config })process:stdoutevents; display raw targen output in a collapsible log panel. Show spinner during execution.process:exitwith code 0, auto-advance stepper to Stage 2. On error, display stderr output with retry option.New/Modified Files
[MODIFY]src-tauri/src/commands.rs— addrun_targencommand andTargenConfigstruct[MODIFY]src-tauri/src/process_manager.rs— addcwdsupport tospawn()[MODIFY]src/index.html— expand Stage 1 form controls[NEW]src/js/targen.js— Stage 1 frontend logic (invoke, event listeners, validation)[MODIFY]src/styles/main.css— form styling for new controlsAcceptance Criteria
.ti1fileReferences
targen: gronod/argyllcmssrc-tauri/src/process_manager.rs