Post-profile chain: applycal + iccgamut #24
Notifications
Due Date
No due date set.
Depends on
#52 Milestone 5 Bugfixes
gronod/iccery-v2-mac
Reference: gronod/iccery-v2-mac#24
Reference in New Issue
Block a user
Summary
Captured applycal then streaming iccgamut
-d 10.Spec refs
docs/04-argyll-binaries.md §7/§10, 17-stage5-verification.md. #112 #224.
Scope
In: applycal tmp+rename, iccgamut
.gam.Out: viewer (28), Stage 0 compute (29).
Implementation notes
If Apply Calibration on and
.calset:runCapturedapplycal -v -a {cal} {icc}via{input}.applycal.tmp+ rename. Delete tmp on failure; return last stderr.applycal -umeans unapply — never send from UI.Then
iccgamut -v -d 10 {resolvedProfile}cwd = profile parent, idiccgamut_{stem}→{stem}.gam.-d 10is density, not a directory, not 50.Rewrite invariants
#112 density 10. applycal
-unever from UI. atomic in-place replace.Test
-v -d 10; failure deletes tmp.Acceptance criteria
.gamproduced next to profile.FIXED-BY-POLICY
Happy path:
ProfileWorkflowViewModel.createProfilerunscolprof, thenapplycalwhen Apply Calibration is on (Sources/ICCery/ProfileWorkflowViewModel.swiftlines 221–227), then callsrunner.runIccgamut(config: IccgamutConfig(profileURL: finalProfileURL)).IccgamutConfigdefaults todensity: 10(Packages/ICCeryCore/Sources/ICCeryCore/Profile/IccgamutConfig.swift), soIccgamutArgs.buildproducesiccgamut -v -d 10 {profilePath}(IccgamutArgs.swiftlines 22–27).ArgyllRunner.runIccgamutcomputescwd = profileURL.deletingLastPathComponent()and writes{stem}.gamnext to the resolved profile (ArgyllRunner.swiftlines 502–525).Failure path:
iccgamutnon-zero or missing.gamis caught, shows an info banner, and the wizard still advances to Stage 5 withcreatedProfileURLset (ProfileWorkflowViewModel.swiftlines 231–246).applycalfailure is caught by the outerdo, setslastError, shows an error banner, and does NOT advance (ProfileWorkflowViewModel.swiftlines 252–258).Closing as the code matches this policy.